|
@@ -1239,6 +1239,32 @@ func TestDeleteContainers(t *testing.T) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+func TestOptionsRoute(t *testing.T) {
|
|
|
|
+ runtime, err := newTestRuntime()
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Fatal(err)
|
|
|
|
+ }
|
|
|
|
+ defer nuke(runtime)
|
|
|
|
+
|
|
|
|
+ srv := &Server{runtime: runtime, enableCors: true}
|
|
|
|
+
|
|
|
|
+ r := httptest.NewRecorder()
|
|
|
|
+ router, err := createRouter(srv, false)
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Fatal(err)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ req, err := http.NewRequest("OPTIONS", "/", nil)
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Fatal(err)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ router.ServeHTTP(r, req)
|
|
|
|
+ if r.Code != 200 {
|
|
|
|
+ t.Errorf("Expected response for OPTIONS request to be \"200\", %v found.", r.Code)
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
func TestGetEnabledCors(t *testing.T) {
|
|
func TestGetEnabledCors(t *testing.T) {
|
|
runtime, err := newTestRuntime()
|
|
runtime, err := newTestRuntime()
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -1250,12 +1276,24 @@ func TestGetEnabledCors(t *testing.T) {
|
|
|
|
|
|
r := httptest.NewRecorder()
|
|
r := httptest.NewRecorder()
|
|
|
|
|
|
- if err := getVersion(srv, API_VERSION, r, nil, nil); err != nil {
|
|
|
|
|
|
+ router, err := createRouter(srv, false)
|
|
|
|
+ if err != nil {
|
|
t.Fatal(err)
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ req, err := http.NewRequest("GET", "/version", nil)
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Fatal(err)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ router.ServeHTTP(r, req)
|
|
|
|
+ if r.Code != 200 {
|
|
|
|
+ t.Errorf("Expected response for OPTIONS request to be \"200\", %v found.", r.Code)
|
|
|
|
+ }
|
|
|
|
+
|
|
allowOrigin := r.Header().Get("Access-Control-Allow-Origin")
|
|
allowOrigin := r.Header().Get("Access-Control-Allow-Origin")
|
|
allowHeaders := r.Header().Get("Access-Control-Allow-Headers")
|
|
allowHeaders := r.Header().Get("Access-Control-Allow-Headers")
|
|
|
|
+ allowMethods := r.Header().Get("Access-Control-Allow-Methods")
|
|
|
|
|
|
if allowOrigin != "*" {
|
|
if allowOrigin != "*" {
|
|
t.Errorf("Expected header Access-Control-Allow-Origin to be \"*\", %s found.", allowOrigin)
|
|
t.Errorf("Expected header Access-Control-Allow-Origin to be \"*\", %s found.", allowOrigin)
|
|
@@ -1263,6 +1301,9 @@ func TestGetEnabledCors(t *testing.T) {
|
|
if allowHeaders != "Origin, X-Requested-With, Content-Type, Accept" {
|
|
if allowHeaders != "Origin, X-Requested-With, Content-Type, Accept" {
|
|
t.Errorf("Expected header Access-Control-Allow-Headers to be \"Origin, X-Requested-With, Content-Type, Accept\", %s found.", allowHeaders)
|
|
t.Errorf("Expected header Access-Control-Allow-Headers to be \"Origin, X-Requested-With, Content-Type, Accept\", %s found.", allowHeaders)
|
|
}
|
|
}
|
|
|
|
+ if allowMethods != "GET, POST, DELETE, PUT, OPTIONS" {
|
|
|
|
+ t.Errorf("Expected hearder Access-Control-Allow-Methods to be \"GET, POST, DELETE, PUT, OPTIONS\", %s found.", allowMethods)
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
func TestDeleteImages(t *testing.T) {
|
|
func TestDeleteImages(t *testing.T) {
|