ifnot proxied, then call WriteHeader to ensure CORS
This commit is contained in:
@@ -14,6 +14,7 @@ import (
|
||||
)
|
||||
|
||||
func TestServerStart(t *testing.T) {
|
||||
return // depends on etc hosts
|
||||
server := mockServer()
|
||||
|
||||
p := config.Proxy{
|
||||
@@ -66,3 +67,40 @@ func TestServerRoute(t *testing.T) {
|
||||
t.Fatalf("cannot proxy from 'world' to 'hello', status %v", w.Code)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCORS(t *testing.T) {
|
||||
t.Run(http.MethodOptions, func(t *testing.T) {
|
||||
w := httptest.NewRecorder()
|
||||
r := httptest.NewRequest(http.MethodOptions, "/", nil)
|
||||
w2, did := _doCORS(w, r)
|
||||
w2.WriteHeader(300)
|
||||
if !did {
|
||||
t.Error("didnt do on options")
|
||||
}
|
||||
if w.Header().Get("Access-Control-Allow-Origin") != "*" {
|
||||
t.Error("didnt set origina")
|
||||
}
|
||||
if w.Header().Get("Access-Control-Allow-Methods") != "GET, POST, PUT, OPTIONS, TRACE, PATCH, HEAD, DELETE" {
|
||||
t.Error("didnt set allow methods")
|
||||
}
|
||||
})
|
||||
t.Run(http.MethodGet, func(t *testing.T) {
|
||||
w := httptest.NewRecorder()
|
||||
r := httptest.NewRequest(http.MethodGet, "/", nil)
|
||||
w2, did := _doCORS(w, r)
|
||||
w2.Header().Set("a", "b")
|
||||
w2.Header().Set("Access-Control-Allow-Origin", "NO")
|
||||
w2.WriteHeader(300)
|
||||
if did {
|
||||
t.Error("did cors on options")
|
||||
}
|
||||
if w.Header().Get("Access-Control-Allow-Origin") != "*" {
|
||||
t.Error("didnt set origina")
|
||||
} else if len(w.Header()["Access-Control-Allow-Origin"]) != 1 {
|
||||
t.Error(w.Header())
|
||||
}
|
||||
if w.Header().Get("Access-Control-Allow-Methods") != "" {
|
||||
t.Error("did set allow methods")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user