mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-26 03:40:56 +01:00
Clarify networking call order during registration flow.
This commit is contained in:
committed by
Greyson Parrelli
parent
a3d72fc06c
commit
8e32592218
@@ -1,10 +1,10 @@
|
||||
package org.thoughtcrime.securesms.registration.viewmodel;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.thoughtcrime.securesms.registration.service.RegistrationCodeRequest;
|
||||
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.thoughtcrime.securesms.registration.VerifyAccountRepository.Mode;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
public final class LocalCodeRequestRateLimiterTest {
|
||||
|
||||
@@ -12,63 +12,63 @@ public final class LocalCodeRequestRateLimiterTest {
|
||||
public void initially_can_request() {
|
||||
LocalCodeRequestRateLimiter limiter = new LocalCodeRequestRateLimiter(60_000);
|
||||
|
||||
assertTrue(limiter.canRequest(RegistrationCodeRequest.Mode.SMS_WITHOUT_LISTENER, "+155512345678", 1000));
|
||||
assertTrue(limiter.canRequest(Mode.SMS_WITHOUT_LISTENER, "+155512345678", 1000));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void cant_request_within_same_time_period() {
|
||||
LocalCodeRequestRateLimiter limiter = new LocalCodeRequestRateLimiter(60_000);
|
||||
|
||||
assertTrue(limiter.canRequest(RegistrationCodeRequest.Mode.SMS_WITHOUT_LISTENER, "+155512345678", 1000));
|
||||
assertTrue(limiter.canRequest(Mode.SMS_WITHOUT_LISTENER, "+155512345678", 1000));
|
||||
|
||||
limiter.onSuccessfulRequest(RegistrationCodeRequest.Mode.SMS_WITHOUT_LISTENER, "+155512345678", 1000);
|
||||
limiter.onSuccessfulRequest(Mode.SMS_WITHOUT_LISTENER, "+155512345678", 1000);
|
||||
|
||||
assertFalse(limiter.canRequest(RegistrationCodeRequest.Mode.SMS_WITHOUT_LISTENER, "+155512345678", 1000 + 59_000));
|
||||
assertFalse(limiter.canRequest(Mode.SMS_WITHOUT_LISTENER, "+155512345678", 1000 + 59_000));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void can_request_within_same_time_period_if_different_number() {
|
||||
LocalCodeRequestRateLimiter limiter = new LocalCodeRequestRateLimiter(60_000);
|
||||
|
||||
assertTrue(limiter.canRequest(RegistrationCodeRequest.Mode.SMS_WITHOUT_LISTENER, "+155512345678", 1000));
|
||||
assertTrue(limiter.canRequest(Mode.SMS_WITHOUT_LISTENER, "+155512345678", 1000));
|
||||
|
||||
limiter.onSuccessfulRequest(RegistrationCodeRequest.Mode.SMS_WITHOUT_LISTENER, "+155512345678", 1000);
|
||||
limiter.onSuccessfulRequest(Mode.SMS_WITHOUT_LISTENER, "+155512345678", 1000);
|
||||
|
||||
assertTrue(limiter.canRequest(RegistrationCodeRequest.Mode.SMS_WITHOUT_LISTENER, "+15559874566", 1000 + 59_000));
|
||||
assertTrue(limiter.canRequest(Mode.SMS_WITHOUT_LISTENER, "+15559874566", 1000 + 59_000));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void can_request_within_same_time_period_if_different_mode() {
|
||||
LocalCodeRequestRateLimiter limiter = new LocalCodeRequestRateLimiter(60_000);
|
||||
|
||||
assertTrue(limiter.canRequest(RegistrationCodeRequest.Mode.SMS_WITH_LISTENER, "+155512345678", 1000));
|
||||
assertTrue(limiter.canRequest(Mode.SMS_WITH_LISTENER, "+155512345678", 1000));
|
||||
|
||||
limiter.onSuccessfulRequest(RegistrationCodeRequest.Mode.SMS_WITH_LISTENER, "+155512345678", 1000);
|
||||
limiter.onSuccessfulRequest(Mode.SMS_WITH_LISTENER, "+155512345678", 1000);
|
||||
|
||||
assertTrue(limiter.canRequest(RegistrationCodeRequest.Mode.SMS_WITHOUT_LISTENER, "+155512345678", 1000 + 59_000));
|
||||
assertTrue(limiter.canRequest(Mode.SMS_WITHOUT_LISTENER, "+155512345678", 1000 + 59_000));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void can_request_after_time_period() {
|
||||
LocalCodeRequestRateLimiter limiter = new LocalCodeRequestRateLimiter(60_000);
|
||||
|
||||
assertTrue(limiter.canRequest(RegistrationCodeRequest.Mode.SMS_WITH_LISTENER, "+155512345678", 1000));
|
||||
assertTrue(limiter.canRequest(Mode.SMS_WITH_LISTENER, "+155512345678", 1000));
|
||||
|
||||
limiter.onSuccessfulRequest(RegistrationCodeRequest.Mode.SMS_WITH_LISTENER, "+155512345678", 1000);
|
||||
limiter.onSuccessfulRequest(Mode.SMS_WITH_LISTENER, "+155512345678", 1000);
|
||||
|
||||
assertTrue(limiter.canRequest(RegistrationCodeRequest.Mode.SMS_WITH_LISTENER, "+155512345678", 1000 + 60_001));
|
||||
assertTrue(limiter.canRequest(Mode.SMS_WITH_LISTENER, "+155512345678", 1000 + 60_001));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void can_request_within_same_time_period_if_an_unsuccessful_request_is_seen() {
|
||||
LocalCodeRequestRateLimiter limiter = new LocalCodeRequestRateLimiter(60_000);
|
||||
|
||||
assertTrue(limiter.canRequest(RegistrationCodeRequest.Mode.SMS_WITH_LISTENER, "+155512345678", 1000));
|
||||
assertTrue(limiter.canRequest(Mode.SMS_WITH_LISTENER, "+155512345678", 1000));
|
||||
|
||||
limiter.onSuccessfulRequest(RegistrationCodeRequest.Mode.SMS_WITH_LISTENER, "+155512345678", 1000);
|
||||
limiter.onSuccessfulRequest(Mode.SMS_WITH_LISTENER, "+155512345678", 1000);
|
||||
|
||||
limiter.onUnsuccessfulRequest();
|
||||
|
||||
assertTrue(limiter.canRequest(RegistrationCodeRequest.Mode.SMS_WITH_LISTENER, "+155512345678", 1000 + 59_000));
|
||||
assertTrue(limiter.canRequest(Mode.SMS_WITH_LISTENER, "+155512345678", 1000 + 59_000));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user