From 45dc7459b8300fdcd7298f78645de6a646794ce9 Mon Sep 17 00:00:00 2001 From: Moxie Marlinspike Date: Fri, 3 May 2019 11:49:29 -0700 Subject: [PATCH] Temporarily disable GCM unregistered feedback --- .../textsecuregcm/push/GCMSender.java | 26 +++---- .../tests/push/GCMSenderTest.java | 78 +++++++++---------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/push/GCMSender.java b/service/src/main/java/org/whispersystems/textsecuregcm/push/GCMSender.java index cc69aa8b4..862679ed2 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/push/GCMSender.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/push/GCMSender.java @@ -111,19 +111,19 @@ public class GCMSender implements Managed { GcmMessage message = (GcmMessage)result.getContext(); logger.warn("Got GCM unregistered notice! " + message.getGcmId()); - Optional account = getAccountForEvent(message); - - if (account.isPresent()) { - Device device = account.get().getDevice(message.getDeviceId()).get(); - device.setGcmId(null); - device.setFetchesMessages(false); - - accountsManager.update(account.get()); - - if (!account.get().isActive()) { - directoryQueue.deleteRegisteredUser(account.get().getNumber()); - } - } +// Optional account = getAccountForEvent(message); +// +// if (account.isPresent()) { +// Device device = account.get().getDevice(message.getDeviceId()).get(); +// device.setGcmId(null); +// device.setFetchesMessages(false); +// +// accountsManager.update(account.get()); +// +// if (!account.get().isActive()) { +// directoryQueue.deleteRegisteredUser(account.get().getNumber()); +// } +// } unregistered.mark(); } diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/tests/push/GCMSenderTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/push/GCMSenderTest.java index 1d84ba5a3..8e3d43dba 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/tests/push/GCMSenderTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/tests/push/GCMSenderTest.java @@ -48,45 +48,45 @@ public class GCMSenderTest { verify(sender, times(1)).send(any(Message.class), eq(message)); } - @Test - public void testSendError() { - String destinationNumber = "+12223334444"; - String gcmId = "foo"; - - AccountsManager accountsManager = mock(AccountsManager.class); - Sender sender = mock(Sender.class ); - Result invalidResult = mock(Result.class ); - DirectoryQueue directoryQueue = mock(DirectoryQueue.class ); - SynchronousExecutorService executorService = new SynchronousExecutorService(); - - Account destinationAccount = mock(Account.class); - Device destinationDevice = mock(Device.class ); - - when(destinationAccount.getDevice(1)).thenReturn(Optional.of(destinationDevice)); - when(accountsManager.get(destinationNumber)).thenReturn(Optional.of(destinationAccount)); - when(destinationDevice.getGcmId()).thenReturn(gcmId); - - when(invalidResult.isInvalidRegistrationId()).thenReturn(true); - when(invalidResult.isUnregistered()).thenReturn(false); - when(invalidResult.hasCanonicalRegistrationId()).thenReturn(false); - when(invalidResult.isSuccess()).thenReturn(true); - - GcmMessage message = new GcmMessage(gcmId, destinationNumber, 1, false); - GCMSender gcmSender = new GCMSender(accountsManager, sender, directoryQueue, executorService); - - SettableFuture invalidFuture = SettableFuture.create(); - invalidFuture.set(invalidResult); - - when(sender.send(any(Message.class), Matchers.anyObject())).thenReturn(invalidFuture); - when(invalidResult.getContext()).thenReturn(message); - - gcmSender.sendMessage(message); - - verify(sender, times(1)).send(any(Message.class), eq(message)); - verify(accountsManager, times(1)).get(eq(destinationNumber)); - verify(accountsManager, times(1)).update(eq(destinationAccount)); - verify(destinationDevice, times(1)).setGcmId(eq((String)null)); - } +// @Test +// public void testSendError() { +// String destinationNumber = "+12223334444"; +// String gcmId = "foo"; +// +// AccountsManager accountsManager = mock(AccountsManager.class); +// Sender sender = mock(Sender.class ); +// Result invalidResult = mock(Result.class ); +// DirectoryQueue directoryQueue = mock(DirectoryQueue.class ); +// SynchronousExecutorService executorService = new SynchronousExecutorService(); +// +// Account destinationAccount = mock(Account.class); +// Device destinationDevice = mock(Device.class ); +// +// when(destinationAccount.getDevice(1)).thenReturn(Optional.of(destinationDevice)); +// when(accountsManager.get(destinationNumber)).thenReturn(Optional.of(destinationAccount)); +// when(destinationDevice.getGcmId()).thenReturn(gcmId); +// +// when(invalidResult.isInvalidRegistrationId()).thenReturn(true); +// when(invalidResult.isUnregistered()).thenReturn(false); +// when(invalidResult.hasCanonicalRegistrationId()).thenReturn(false); +// when(invalidResult.isSuccess()).thenReturn(true); +// +// GcmMessage message = new GcmMessage(gcmId, destinationNumber, 1, false); +// GCMSender gcmSender = new GCMSender(accountsManager, sender, directoryQueue, executorService); +// +// SettableFuture invalidFuture = SettableFuture.create(); +// invalidFuture.set(invalidResult); +// +// when(sender.send(any(Message.class), Matchers.anyObject())).thenReturn(invalidFuture); +// when(invalidResult.getContext()).thenReturn(message); +// +// gcmSender.sendMessage(message); +// +// verify(sender, times(1)).send(any(Message.class), eq(message)); +// verify(accountsManager, times(1)).get(eq(destinationNumber)); +// verify(accountsManager, times(1)).update(eq(destinationAccount)); +// verify(destinationDevice, times(1)).setGcmId(eq((String)null)); +// } @Test public void testCanonicalId() {