From 117de2382d1e8299f968f455a41656c031ed0489 Mon Sep 17 00:00:00 2001
From: Jon Chambers <jon@signal.org>
Date: Mon, 24 May 2021 16:03:43 -0400
Subject: [PATCH] Verify that API consumers can skip/clear VOIP tokens.

---
 .../controllers/AccountControllerTest.java    | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/AccountControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/AccountControllerTest.java
index dec54c034..bf2055782 100644
--- a/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/AccountControllerTest.java
+++ b/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/AccountControllerTest.java
@@ -266,6 +266,8 @@ class AccountControllerTest {
         apnSender,
         usernamesManager,
         verifyExperimentEnrollmentManager);
+
+    clearInvocations(AuthHelper.DISABLED_DEVICE);
   }
 
   @Test
@@ -1387,6 +1389,23 @@ class AccountControllerTest {
     verify(directoryQueue, never()).refreshRegisteredUser(any(Account.class));
   }
 
+  @Test
+  void testSetApnIdNoVoip() throws Exception {
+    Response response =
+        resources.getJerseyTest()
+            .target("/v1/accounts/apn/")
+            .request()
+            .header("Authorization", AuthHelper.getAuthHeader(AuthHelper.DISABLED_NUMBER, AuthHelper.DISABLED_PASSWORD))
+            .put(Entity.json(new ApnRegistrationId("first", null)));
+
+    assertThat(response.getStatus()).isEqualTo(204);
+
+    verify(AuthHelper.DISABLED_DEVICE, times(1)).setApnId(eq("first"));
+    verify(AuthHelper.DISABLED_DEVICE, times(1)).setVoipApnId(null);
+    verify(accountsManager, times(1)).update(eq(AuthHelper.DISABLED_ACCOUNT));
+    verify(directoryQueue, never()).refreshRegisteredUser(any(Account.class));
+  }
+
   @Test
   void testSetApnIdByUuid() throws Exception {
     Response response =
-- 
GitLab