mirror of https://github.com/dexidp/dex.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.3 KiB
50 lines
1.3 KiB
package server |
|
|
|
import ( |
|
"net/http" |
|
"net/http/httptest" |
|
"testing" |
|
|
|
schema "github.com/coreos/dex/schema/workerschema" |
|
) |
|
|
|
func TestDiscoveryInvalidMethods(t *testing.T) { |
|
for _, verb := range []string{"POST", "PUT", "DELETE"} { |
|
res := &discoveryResource{} |
|
w := httptest.NewRecorder() |
|
r, err := http.NewRequest(verb, "http://example.com/discovery", nil) |
|
if err != nil { |
|
t.Fatalf("Failed creating http.Request: %v", err) |
|
} |
|
res.ServeHTTP(w, r) |
|
if w.Code != http.StatusMethodNotAllowed { |
|
t.Errorf("invalid response code for method=%s, want=%d, got=%d", verb, http.StatusMethodNotAllowed, w.Code) |
|
} |
|
} |
|
} |
|
|
|
func TestDiscoveryBody(t *testing.T) { |
|
res := &discoveryResource{} |
|
w := httptest.NewRecorder() |
|
req, err := http.NewRequest("GET", "http://example.com/discovery", nil) |
|
if err != nil { |
|
t.Fatalf("Failed creating http.Request: %v", err) |
|
} |
|
res.ServeHTTP(w, req) |
|
if w.Code != http.StatusOK { |
|
t.Errorf("Expected 200, got %d", w.Code) |
|
} |
|
ct := w.HeaderMap["Content-Type"] |
|
if len(ct) != 1 { |
|
t.Errorf("Response has wrong number of Content-Type values: %v", ct) |
|
} else if ct[0] != "application/json" { |
|
t.Errorf("Expected application/json, got %s", ct) |
|
} |
|
if w.Body == nil { |
|
t.Error("Received nil response body") |
|
} else { |
|
if w.Body.String() != schema.DiscoveryJSON { |
|
t.Error("Received unexpected body!") |
|
} |
|
} |
|
}
|
|
|