From 845fc338d7f7acc04febce615e8e01aabe953cb9 Mon Sep 17 00:00:00 2001 From: Jon Chambers Date: Sat, 9 Sep 2023 19:01:52 -0400 Subject: [PATCH] Add a (failing) test for removing primary devices from accounts --- .../controllers/DeviceControllerTest.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/controllers/DeviceControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/controllers/DeviceControllerTest.java index 22981fa2d..0d02c6268 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/controllers/DeviceControllerTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/controllers/DeviceControllerTest.java @@ -13,6 +13,7 @@ import static org.mockito.Mockito.anyString; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -757,6 +758,28 @@ class DeviceControllerTest { verify(keysManager).delete(AuthHelper.VALID_UUID, deviceId); } + @Test + void unlinkPrimaryDevice() { + // this is a static mock, so it might have previous invocations + clearInvocations(AuthHelper.VALID_ACCOUNT); + + try (final Response response = resources + .getJerseyTest() + .target("/v1/devices/" + Device.MASTER_ID) + .request() + .header("Authorization", AuthHelper.getAuthHeader(AuthHelper.VALID_UUID, AuthHelper.VALID_PASSWORD)) + .header(HttpHeaders.USER_AGENT, "Signal-Android/5.42.8675309 Android/30") + .delete()) { + + assertThat(response.getStatus()).isEqualTo(403); + + verify(messagesManager, never()).clear(any(), anyLong()); + verify(accountsManager, never()).update(eq(AuthHelper.VALID_ACCOUNT), any()); + verify(AuthHelper.VALID_ACCOUNT, never()).removeDevice(anyLong()); + verify(keysManager, never()).delete(any(), anyLong()); + } + } + @Test void checkVerificationToken() { final UUID uuid = UUID.randomUUID();