From c675cc8b26cc3e13de740aae712bb4cf007860c1 Mon Sep 17 00:00:00 2001 From: Jordan Rose Date: Mon, 15 Nov 2021 09:26:34 -0800 Subject: [PATCH] Test the response code for invalid serialized zkgroup objects Test by Jon, making sure this is consistent even without up-front size checking. --- .../tests/controllers/DonationControllerTest.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/DonationControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/DonationControllerTest.java index 0e11fff2d..99bbbfbbc 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/DonationControllerTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/DonationControllerTest.java @@ -10,6 +10,7 @@ import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.same; import static org.mockito.Mockito.mock; @@ -244,4 +245,17 @@ class DonationControllerTest { assertThat(response.getStatus()).isEqualTo(400); assertThat(response.readEntity(String.class)).isEqualTo("receipt serial is already redeemed"); } + + @Test + void testRedeemReceiptBadCredentialPresentation() throws InvalidInputException { + when(receiptCredentialPresentationFactory.build(any())).thenThrow(new InvalidInputException()); + + final Response response = resources.getJerseyTest() + .target("/v1/donation/redeem-receipt") + .request() + .header("Authorization", AuthHelper.getAuthHeader(AuthHelper.VALID_UUID, AuthHelper.VALID_PASSWORD)) + .post(Entity.entity(new RedeemReceiptRequest(presentation, true, true), MediaType.APPLICATION_JSON_TYPE)); + + assertThat(response.getStatus()).isEqualTo(400); + } }