mirror of
https://github.com/signalapp/Signal-Server
synced 2026-04-21 00:28:02 +01:00
Instrument registration recovery password modifications
This commit is contained in:
@@ -22,6 +22,7 @@ import static org.mockito.Mockito.when;
|
||||
import jakarta.ws.rs.WebApplicationException;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.stream.Stream;
|
||||
import javax.annotation.Nullable;
|
||||
@@ -94,6 +95,8 @@ class RegistrationLockVerificationManagerTest {
|
||||
when(account.hasLockedCredentials()).thenReturn(alreadyLocked);
|
||||
doThrow(new NotPushRegisteredException()).when(pushNotificationManager).sendAttemptLoginNotification(any(), any());
|
||||
|
||||
when(registrationRecoveryPasswordsManager.remove(any())).thenReturn(CompletableFuture.completedFuture(true));
|
||||
|
||||
final Pair<Class<? extends Exception>, Consumer<Exception>> exceptionType = switch (error) {
|
||||
case MISMATCH -> {
|
||||
when(existingRegistrationLock.verify(clientRegistrationLock)).thenReturn(false);
|
||||
|
||||
@@ -802,6 +802,8 @@ class AccountControllerTest {
|
||||
void testAccountsAttributesUpdateRecoveryPassword() {
|
||||
final byte[] recoveryPassword = TestRandomUtil.nextBytes(32);
|
||||
|
||||
when(registrationRecoveryPasswordsManager.store(any(), any()))
|
||||
.thenReturn(CompletableFuture.completedFuture(true));
|
||||
try (final Response response = resources.getJerseyTest()
|
||||
.target("/v1/accounts/attributes/")
|
||||
.request()
|
||||
|
||||
@@ -1394,6 +1394,8 @@ class VerificationControllerTest {
|
||||
.thenReturn(CompletableFuture.completedFuture(
|
||||
Optional.of(new VerificationSession(null, null, Collections.emptyList(), Collections.emptyList(), null, null, true,
|
||||
clock.millis(), clock.millis(), registrationServiceSession.expiration()))));
|
||||
when(registrationRecoveryPasswordsManager.remove(any()))
|
||||
.thenReturn(CompletableFuture.completedFuture(true));
|
||||
|
||||
final RegistrationServiceSession verifiedSession = new RegistrationServiceSession(SESSION_ID, NUMBER, true, null,
|
||||
null, 0L,
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.whispersystems.textsecuregcm.storage;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
@@ -61,7 +60,7 @@ public class RegistrationRecoveryTest {
|
||||
|
||||
@Test
|
||||
public void testLookupAfterWrite() throws Exception {
|
||||
registrationRecoveryPasswords.addOrReplace(PNI, ORIGINAL_HASH).get();
|
||||
assertTrue(registrationRecoveryPasswords.addOrReplace(PNI, ORIGINAL_HASH).get());
|
||||
final long initialExp = fetchTimestamp(PNI);
|
||||
final long expectedExpiration = CLOCK.instant().getEpochSecond() + EXPIRATION.getSeconds();
|
||||
assertEquals(expectedExpiration, initialExp);
|
||||
@@ -90,8 +89,8 @@ public class RegistrationRecoveryTest {
|
||||
|
||||
@Test
|
||||
public void testReplace() throws Exception {
|
||||
registrationRecoveryPasswords.addOrReplace(PNI, ORIGINAL_HASH).get();
|
||||
registrationRecoveryPasswords.addOrReplace(PNI, ANOTHER_HASH).get();
|
||||
assertTrue(registrationRecoveryPasswords.addOrReplace(PNI, ORIGINAL_HASH).get());
|
||||
assertFalse(registrationRecoveryPasswords.addOrReplace(PNI, ANOTHER_HASH).get());
|
||||
|
||||
final Optional<SaltedTokenHash> saltedTokenHashByPni = registrationRecoveryPasswords.lookup(PNI).get();
|
||||
assertTrue(saltedTokenHashByPni.isPresent());
|
||||
@@ -101,12 +100,12 @@ public class RegistrationRecoveryTest {
|
||||
|
||||
@Test
|
||||
public void testRemove() throws Exception {
|
||||
assertDoesNotThrow(() -> registrationRecoveryPasswords.removeEntry(PNI).join());
|
||||
assertFalse(registrationRecoveryPasswords.removeEntry(PNI).join());
|
||||
|
||||
registrationRecoveryPasswords.addOrReplace(PNI, ORIGINAL_HASH).get();
|
||||
assertTrue(registrationRecoveryPasswords.lookup(PNI).get().isPresent());
|
||||
|
||||
registrationRecoveryPasswords.removeEntry(PNI).get();
|
||||
assertTrue(registrationRecoveryPasswords.removeEntry(PNI).get());
|
||||
assertTrue(registrationRecoveryPasswords.lookup(PNI).get().isEmpty());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user