From 15ae242cfe6f08d9d5a36e305b5bc37a56510d24 Mon Sep 17 00:00:00 2001 From: Roland Shoemaker Date: Sun, 22 Nov 2015 17:17:56 -0800 Subject: [PATCH] Add tests for new error --- wfe/web-front-end_test.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/wfe/web-front-end_test.go b/wfe/web-front-end_test.go index 0ab0b4d25..d755e99a0 100644 --- a/wfe/web-front-end_test.go +++ b/wfe/web-front-end_test.go @@ -740,6 +740,24 @@ func TestChallenge(t *testing.T) { `{"type":"urn:acme:error:malformed","detail":"Expired authorization"}`) } +func TestBadNonce(t *testing.T) { + wfe, _ := setupWFE(t) + + key, err := jose.LoadPrivateKey([]byte(test2KeyPrivatePEM)) + test.AssertNotError(t, err, "Failed to load key") + rsaKey, ok := key.(*rsa.PrivateKey) + test.Assert(t, ok, "Couldn't load RSA key") + signer, err := jose.NewSigner("RS256", rsaKey) + test.AssertNotError(t, err, "Failed to make signer") + + responseWriter := httptest.NewRecorder() + result, err := signer.Sign([]byte(`{"resource":"new-reg","contact":["tel:123456789"],"agreement":"` + agreementURL + `"}`)) + test.AssertNotError(t, err, "Failed to sign body") + wfe.NewRegistration(newRequestEvent(), responseWriter, + makePostRequest(result.FullSerialize())) + test.AssertEquals(t, responseWriter.Body.String(), `{"type":"urn:acme:error:badNonce","detail":"Unable to read/verify body :: JWS has no anti-replay nonce"}`) +} + func TestNewRegistration(t *testing.T) { wfe, _ := setupWFE(t) mux, err := wfe.Handler() @@ -1396,6 +1414,7 @@ func TestStatusCodeFromError(t *testing.T) { {core.SignatureValidationError("foo"), 400}, {core.RateLimitedError("foo"), 429}, {core.LengthRequiredError("foo"), 411}, + {core.BadNonceError("foo"), statusBadNonce}, } for _, c := range testCases { got := statusCodeFromError(c.err)