mirror of
https://github.com/signalapp/Signal-Server
synced 2026-04-22 08:48:05 +01:00
Remove GCMSender
This commit is contained in:
committed by
Jon Chambers
parent
8956e1e0cf
commit
0a6d724f2c
@@ -37,7 +37,7 @@ class MessageSenderTest {
|
||||
|
||||
private ClientPresenceManager clientPresenceManager;
|
||||
private MessagesManager messagesManager;
|
||||
private GCMSender gcmSender;
|
||||
private FcmSender fcmSender;
|
||||
private APNSender apnSender;
|
||||
private MessageSender messageSender;
|
||||
|
||||
@@ -53,12 +53,12 @@ class MessageSenderTest {
|
||||
|
||||
clientPresenceManager = mock(ClientPresenceManager.class);
|
||||
messagesManager = mock(MessagesManager.class);
|
||||
gcmSender = mock(GCMSender.class);
|
||||
fcmSender = mock(FcmSender.class);
|
||||
apnSender = mock(APNSender.class);
|
||||
messageSender = new MessageSender(mock(ApnFallbackManager.class),
|
||||
clientPresenceManager,
|
||||
messagesManager,
|
||||
gcmSender,
|
||||
fcmSender,
|
||||
apnSender,
|
||||
mock(PushLatencyManager.class));
|
||||
|
||||
@@ -80,7 +80,7 @@ class MessageSenderTest {
|
||||
|
||||
assertTrue(envelopeArgumentCaptor.getValue().getEphemeral());
|
||||
|
||||
verifyNoInteractions(gcmSender);
|
||||
verifyNoInteractions(fcmSender);
|
||||
verifyNoInteractions(apnSender);
|
||||
}
|
||||
|
||||
@@ -92,7 +92,7 @@ class MessageSenderTest {
|
||||
messageSender.sendMessage(account, device, message, true);
|
||||
|
||||
verify(messagesManager, never()).insert(any(), anyLong(), any());
|
||||
verifyNoInteractions(gcmSender);
|
||||
verifyNoInteractions(fcmSender);
|
||||
verifyNoInteractions(apnSender);
|
||||
}
|
||||
|
||||
@@ -110,7 +110,7 @@ class MessageSenderTest {
|
||||
|
||||
assertFalse(envelopeArgumentCaptor.getValue().getEphemeral());
|
||||
assertEquals(message, envelopeArgumentCaptor.getValue());
|
||||
verifyNoInteractions(gcmSender);
|
||||
verifyNoInteractions(fcmSender);
|
||||
verifyNoInteractions(apnSender);
|
||||
}
|
||||
|
||||
@@ -122,7 +122,7 @@ class MessageSenderTest {
|
||||
messageSender.sendMessage(account, device, message, false);
|
||||
|
||||
verify(messagesManager).insert(ACCOUNT_UUID, DEVICE_ID, message);
|
||||
verify(gcmSender).sendMessage(any());
|
||||
verify(fcmSender).sendMessage(any());
|
||||
verifyNoInteractions(apnSender);
|
||||
}
|
||||
|
||||
@@ -134,7 +134,7 @@ class MessageSenderTest {
|
||||
messageSender.sendMessage(account, device, message, false);
|
||||
|
||||
verify(messagesManager).insert(ACCOUNT_UUID, DEVICE_ID, message);
|
||||
verifyNoInteractions(gcmSender);
|
||||
verifyNoInteractions(fcmSender);
|
||||
verify(apnSender).sendMessage(any());
|
||||
}
|
||||
|
||||
@@ -146,7 +146,7 @@ class MessageSenderTest {
|
||||
messageSender.sendMessage(account, device, message, false);
|
||||
|
||||
verify(messagesManager).insert(ACCOUNT_UUID, DEVICE_ID, message);
|
||||
verifyNoInteractions(gcmSender);
|
||||
verifyNoInteractions(fcmSender);
|
||||
verifyNoInteractions(apnSender);
|
||||
}
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ import org.whispersystems.textsecuregcm.mappers.NonNormalizedPhoneNumberResponse
|
||||
import org.whispersystems.textsecuregcm.mappers.RateLimitExceededExceptionMapper;
|
||||
import org.whispersystems.textsecuregcm.push.APNSender;
|
||||
import org.whispersystems.textsecuregcm.push.ApnMessage;
|
||||
import org.whispersystems.textsecuregcm.push.GCMSender;
|
||||
import org.whispersystems.textsecuregcm.push.FcmSender;
|
||||
import org.whispersystems.textsecuregcm.push.GcmMessage;
|
||||
import org.whispersystems.textsecuregcm.recaptcha.RecaptchaClient;
|
||||
import org.whispersystems.textsecuregcm.sms.SmsSender;
|
||||
@@ -147,7 +147,7 @@ class AccountControllerTest {
|
||||
private static Account senderHasStorage = mock(Account.class);
|
||||
private static Account senderTransfer = mock(Account.class);
|
||||
private static RecaptchaClient recaptchaClient = mock(RecaptchaClient.class);
|
||||
private static GCMSender gcmSender = mock(GCMSender.class);
|
||||
private static FcmSender fcmSender = mock(FcmSender.class);
|
||||
private static APNSender apnSender = mock(APNSender.class);
|
||||
private static ChangeNumberManager changeNumberManager = mock(ChangeNumberManager.class);
|
||||
|
||||
@@ -179,7 +179,7 @@ class AccountControllerTest {
|
||||
turnTokenGenerator,
|
||||
Map.of(TEST_NUMBER, TEST_VERIFICATION_CODE),
|
||||
recaptchaClient,
|
||||
gcmSender,
|
||||
fcmSender,
|
||||
apnSender,
|
||||
verifyExperimentEnrollmentManager,
|
||||
changeNumberManager,
|
||||
@@ -322,7 +322,7 @@ class AccountControllerTest {
|
||||
senderHasStorage,
|
||||
senderTransfer,
|
||||
recaptchaClient,
|
||||
gcmSender,
|
||||
fcmSender,
|
||||
apnSender,
|
||||
verifyExperimentEnrollmentManager,
|
||||
changeNumberManager);
|
||||
@@ -341,7 +341,7 @@ class AccountControllerTest {
|
||||
|
||||
ArgumentCaptor<GcmMessage> captor = ArgumentCaptor.forClass(GcmMessage.class);
|
||||
|
||||
verify(gcmSender, times(1)).sendMessage(captor.capture());
|
||||
verify(fcmSender, times(1)).sendMessage(captor.capture());
|
||||
assertThat(captor.getValue().getGcmId()).isEqualTo("mytoken");
|
||||
assertThat(captor.getValue().getData().isPresent()).isTrue();
|
||||
assertThat(captor.getValue().getData().get().length()).isEqualTo(32);
|
||||
@@ -360,7 +360,7 @@ class AccountControllerTest {
|
||||
|
||||
ArgumentCaptor<GcmMessage> captor = ArgumentCaptor.forClass(GcmMessage.class);
|
||||
|
||||
verify(gcmSender, times(1)).sendMessage(captor.capture());
|
||||
verify(fcmSender, times(1)).sendMessage(captor.capture());
|
||||
assertThat(captor.getValue().getGcmId()).isEqualTo("mytoken");
|
||||
assertThat(captor.getValue().getData().isPresent()).isTrue();
|
||||
assertThat(captor.getValue().getData().get().length()).isEqualTo(32);
|
||||
@@ -386,7 +386,7 @@ class AccountControllerTest {
|
||||
assertThat(captor.getValue().getMessage()).contains("\"challenge\" : \"" + captor.getValue().getChallengeData().get() + "\"");
|
||||
assertThat(captor.getValue().isVoip()).isTrue();
|
||||
|
||||
verifyNoMoreInteractions(gcmSender);
|
||||
verifyNoMoreInteractions(fcmSender);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -408,7 +408,7 @@ class AccountControllerTest {
|
||||
assertThat(captor.getValue().getMessage()).contains("\"challenge\" : \"" + captor.getValue().getChallengeData().get() + "\"");
|
||||
assertThat(captor.getValue().isVoip()).isTrue();
|
||||
|
||||
verifyNoMoreInteractions(gcmSender);
|
||||
verifyNoMoreInteractions(fcmSender);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -430,7 +430,7 @@ class AccountControllerTest {
|
||||
assertThat(captor.getValue().getMessage()).contains("\"challenge\" : \"" + captor.getValue().getChallengeData().get() + "\"");
|
||||
assertThat(captor.getValue().isVoip()).isFalse();
|
||||
|
||||
verifyNoMoreInteractions(gcmSender);
|
||||
verifyNoMoreInteractions(fcmSender);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -443,7 +443,7 @@ class AccountControllerTest {
|
||||
assertThat(response.getStatus()).isEqualTo(400);
|
||||
assertThat(response.readEntity(String.class)).isBlank();
|
||||
|
||||
verifyNoMoreInteractions(gcmSender);
|
||||
verifyNoMoreInteractions(fcmSender);
|
||||
verifyNoMoreInteractions(apnSender);
|
||||
}
|
||||
|
||||
@@ -462,7 +462,7 @@ class AccountControllerTest {
|
||||
assertThat(responseEntity.getOriginalNumber()).isEqualTo(number);
|
||||
assertThat(responseEntity.getNormalizedNumber()).isEqualTo("+447700900111");
|
||||
|
||||
verifyNoMoreInteractions(gcmSender);
|
||||
verifyNoMoreInteractions(fcmSender);
|
||||
verifyNoMoreInteractions(apnSender);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,141 +0,0 @@
|
||||
/*
|
||||
* Copyright 2013-2020 Signal Messenger, LLC
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
package org.whispersystems.textsecuregcm.tests.push;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.eq;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.whispersystems.gcm.server.Message;
|
||||
import org.whispersystems.gcm.server.Result;
|
||||
import org.whispersystems.gcm.server.Sender;
|
||||
import org.whispersystems.textsecuregcm.experiment.ExperimentEnrollmentManager;
|
||||
import org.whispersystems.textsecuregcm.push.FcmSender;
|
||||
import org.whispersystems.textsecuregcm.push.GCMSender;
|
||||
import org.whispersystems.textsecuregcm.push.GcmMessage;
|
||||
import org.whispersystems.textsecuregcm.storage.Account;
|
||||
import org.whispersystems.textsecuregcm.storage.AccountsManager;
|
||||
import org.whispersystems.textsecuregcm.storage.Device;
|
||||
import org.whispersystems.textsecuregcm.tests.util.AccountsHelper;
|
||||
import org.whispersystems.textsecuregcm.tests.util.SynchronousExecutorService;
|
||||
import org.whispersystems.textsecuregcm.util.Util;
|
||||
|
||||
class GCMSenderTest {
|
||||
|
||||
@Test
|
||||
void testSendMessage() {
|
||||
AccountsManager accountsManager = mock(AccountsManager.class);
|
||||
Sender sender = mock(Sender.class );
|
||||
Result successResult = mock(Result.class );
|
||||
SynchronousExecutorService executorService = new SynchronousExecutorService();
|
||||
|
||||
when(successResult.isInvalidRegistrationId()).thenReturn(false);
|
||||
when(successResult.isUnregistered()).thenReturn(false);
|
||||
when(successResult.hasCanonicalRegistrationId()).thenReturn(false);
|
||||
when(successResult.isSuccess()).thenReturn(true);
|
||||
|
||||
AccountsHelper.setupMockUpdate(accountsManager);
|
||||
|
||||
GcmMessage message = new GcmMessage("foo", UUID.randomUUID(), 1, GcmMessage.Type.NOTIFICATION, Optional.empty());
|
||||
GCMSender gcmSender = new GCMSender(executorService, accountsManager, sender, mock(ExperimentEnrollmentManager.class), mock(FcmSender.class));
|
||||
|
||||
CompletableFuture<Result> successFuture = CompletableFuture.completedFuture(successResult);
|
||||
|
||||
when(sender.send(any(Message.class))).thenReturn(successFuture);
|
||||
|
||||
gcmSender.sendMessage(message);
|
||||
|
||||
verify(sender, times(1)).send(any(Message.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSendUninstalled() {
|
||||
UUID destinationUuid = UUID.randomUUID();
|
||||
String gcmId = "foo";
|
||||
|
||||
AccountsManager accountsManager = mock(AccountsManager.class);
|
||||
Sender sender = mock(Sender.class );
|
||||
Result invalidResult = mock(Result.class );
|
||||
SynchronousExecutorService executorService = new SynchronousExecutorService();
|
||||
|
||||
Account destinationAccount = mock(Account.class);
|
||||
Device destinationDevice = mock(Device.class );
|
||||
|
||||
AccountsHelper.setupMockUpdate(accountsManager);
|
||||
|
||||
when(destinationAccount.getDevice(1)).thenReturn(Optional.of(destinationDevice));
|
||||
when(accountsManager.getByAccountIdentifier(destinationUuid)).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, destinationUuid, 1, GcmMessage.Type.NOTIFICATION, Optional.empty());
|
||||
GCMSender gcmSender = new GCMSender(executorService, accountsManager, sender, mock(ExperimentEnrollmentManager.class), mock(FcmSender.class));
|
||||
|
||||
CompletableFuture<Result> invalidFuture = CompletableFuture.completedFuture(invalidResult);
|
||||
|
||||
when(sender.send(any(Message.class))).thenReturn(invalidFuture);
|
||||
|
||||
gcmSender.sendMessage(message);
|
||||
|
||||
verify(sender, times(1)).send(any(Message.class));
|
||||
verify(accountsManager, times(1)).getByAccountIdentifier(eq(destinationUuid));
|
||||
verify(accountsManager, times(1)).updateDevice(eq(destinationAccount), eq(1L), any());
|
||||
verify(destinationDevice, times(1)).setUninstalledFeedbackTimestamp(eq(Util.todayInMillis()));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testCanonicalId() {
|
||||
UUID destinationUuid = UUID.randomUUID();
|
||||
String gcmId = "foo";
|
||||
String canonicalId = "bar";
|
||||
|
||||
AccountsManager accountsManager = mock(AccountsManager.class);
|
||||
Sender sender = mock(Sender.class );
|
||||
Result canonicalResult = mock(Result.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.getByAccountIdentifier(destinationUuid)).thenReturn(Optional.of(destinationAccount));
|
||||
when(destinationDevice.getGcmId()).thenReturn(gcmId);
|
||||
|
||||
AccountsHelper.setupMockUpdate(accountsManager);
|
||||
|
||||
when(canonicalResult.isInvalidRegistrationId()).thenReturn(false);
|
||||
when(canonicalResult.isUnregistered()).thenReturn(false);
|
||||
when(canonicalResult.hasCanonicalRegistrationId()).thenReturn(true);
|
||||
when(canonicalResult.isSuccess()).thenReturn(false);
|
||||
when(canonicalResult.getCanonicalRegistrationId()).thenReturn(canonicalId);
|
||||
|
||||
GcmMessage message = new GcmMessage(gcmId, destinationUuid, 1, GcmMessage.Type.NOTIFICATION, Optional.empty());
|
||||
GCMSender gcmSender = new GCMSender(executorService, accountsManager, sender, mock(ExperimentEnrollmentManager.class), mock(FcmSender.class));
|
||||
|
||||
CompletableFuture<Result> invalidFuture = CompletableFuture.completedFuture(canonicalResult);
|
||||
|
||||
when(sender.send(any(Message.class))).thenReturn(invalidFuture);
|
||||
|
||||
gcmSender.sendMessage(message);
|
||||
|
||||
verify(sender, times(1)).send(any(Message.class));
|
||||
verify(accountsManager, times(1)).getByAccountIdentifier(eq(destinationUuid));
|
||||
verify(accountsManager, times(1)).updateDevice(eq(destinationAccount), eq(1L), any());
|
||||
verify(destinationDevice, times(1)).setGcmId(eq(canonicalId));
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user