diff options
-rw-r--r-- | handler_test.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/handler_test.go b/handler_test.go index 6a2e7d8..e1805fc 100644 --- a/handler_test.go +++ b/handler_test.go @@ -130,6 +130,36 @@ func TestPostHandlersRejectGet(t *testing.T) { } } +func TestGetAnchors(t *testing.T) { + th := newTestHandler(t, nil) + defer th.mockCtrl.Finish() + + url := "http://example.com" + th.instance.LogParameters.Prefix + "/get-anchors" + req, err := http.NewRequest("GET", url, nil) + if err != nil { + t.Fatalf("failed creating http request: %v", err) + } + + w := httptest.NewRecorder() + th.getHandler(t, "get-anchors").ServeHTTP(w, req) + if w.Code != http.StatusOK { + t.Errorf("GET(%s)=%d, want http status code %d", url, w.Code, http.StatusOK) + return + } + + var derAnchors [][]byte + if err := json.Unmarshal([]byte(w.Body.String()), &derAnchors); err != nil { + t.Errorf("failed unmarshaling trust anchors response: %v", err) + return + } + if got, want := len(derAnchors), len(th.instance.LogParameters.AnchorList); got != want { + t.Errorf("unexpected trust anchor count %d, want %d", got, want) + } + if _, err := x509util.ParseDerList(derAnchors); err != nil { + t.Errorf("failed decoding trust anchors: %v", err) + } +} + func TestGetSth(t *testing.T) { for _, table := range []struct { description string |