summaryrefslogtreecommitdiffhomepage
path: root/android/test/mockapi/src
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2024-01-23 09:04:27 +0100
committerJonatan Rhodin <jonatan.rhodin@mullvad.net>2024-01-31 15:28:35 +0100
commit1f85f3a1ffd5fe3ba05c5c545f5a116134041670 (patch)
treea98d33e995a02020d15dbadaa9fd8079f2168419 /android/test/mockapi/src
parent5d9f8470a857855dcec276a90926d0a9b8ce4cf0 (diff)
downloadmullvadvpn-1f85f3a1ffd5fe3ba05c5c545f5a116134041670.tar.xz
mullvadvpn-1f85f3a1ffd5fe3ba05c5c545f5a116134041670.zip
Add account expiry mockapi test
Diffstat (limited to 'android/test/mockapi/src')
-rw-r--r--android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/AccountExpiryMockApiTest.kt93
-rw-r--r--android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/LoginMockApiTest.kt3
2 files changed, 94 insertions, 2 deletions
diff --git a/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/AccountExpiryMockApiTest.kt b/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/AccountExpiryMockApiTest.kt
new file mode 100644
index 0000000000..469040c4c4
--- /dev/null
+++ b/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/AccountExpiryMockApiTest.kt
@@ -0,0 +1,93 @@
+package net.mullvad.mullvadvpn.test.mockapi
+
+import androidx.test.uiautomator.By
+import net.mullvad.mullvadvpn.test.common.extension.clickAgreeOnPrivacyDisclaimer
+import net.mullvad.mullvadvpn.test.common.extension.clickAllowOnNotificationPermissionPromptIfApiLevel33AndAbove
+import net.mullvad.mullvadvpn.test.common.extension.dismissChangelogDialogIfShown
+import net.mullvad.mullvadvpn.test.common.extension.findObjectWithTimeout
+import net.mullvad.mullvadvpn.test.mockapi.constant.DEFAULT_DEVICE_LIST
+import net.mullvad.mullvadvpn.test.mockapi.constant.DUMMY_DEVICE_NAME_2
+import net.mullvad.mullvadvpn.test.mockapi.constant.DUMMY_ID_2
+import net.mullvad.mullvadvpn.test.mockapi.util.currentUtcTimeWithOffsetZero
+import net.mullvad.mullvadvpn.util.toExpiryDateString
+import org.junit.jupiter.api.Disabled
+import org.junit.jupiter.api.Test
+
+class AccountExpiryMockApiTest : MockApiTest() {
+
+ @Test
+ fun testAccountExpiryDateUpdated() {
+ // Arrange
+ val validAccountToken = "1234123412341234"
+ val oldAccountExpiry = currentUtcTimeWithOffsetZero().plusMonths(1)
+ apiDispatcher.apply {
+ expectedAccountToken = validAccountToken
+ accountExpiry = oldAccountExpiry
+ devices = DEFAULT_DEVICE_LIST.toMutableMap()
+ devicePendingToGetCreated = DUMMY_ID_2 to DUMMY_DEVICE_NAME_2
+ }
+
+ // Act
+ app.launch(endpoint)
+ device.clickAgreeOnPrivacyDisclaimer()
+ device.clickAllowOnNotificationPermissionPromptIfApiLevel33AndAbove()
+ device.dismissChangelogDialogIfShown()
+ app.waitForLoginPrompt()
+ app.attemptLogin(validAccountToken)
+
+ // Assert logged in
+ app.ensureLoggedIn()
+
+ // Add one month to the account expiry
+ val newAccountExpiry = oldAccountExpiry.plusMonths(1)
+ apiDispatcher.accountExpiry = newAccountExpiry
+
+ // Go to account page to update the account expiry
+ app.clickAccountCog()
+
+ app.ensureAccountScreen()
+ device.findObjectWithTimeout(By.text(newAccountExpiry.toExpiryDateString()))
+ }
+
+ @Test
+ @Disabled(
+ "Disabled since we have a bug in the app that makes it unstable. " +
+ "We can restore it after the bug has been fixed"
+ )
+ fun testAccountTimeExpiredWhileUsingTheAppShouldShowOutOfTimeScreen() {
+ // Arrange
+ val validAccountToken = "1234123412341234"
+ val oldAccountExpiry = currentUtcTimeWithOffsetZero().plusMonths(1)
+ apiDispatcher.apply {
+ expectedAccountToken = validAccountToken
+ accountExpiry = oldAccountExpiry
+ devices = DEFAULT_DEVICE_LIST.toMutableMap()
+ devicePendingToGetCreated = DUMMY_ID_2 to DUMMY_DEVICE_NAME_2
+ }
+
+ // Act
+ app.launch(endpoint)
+ device.clickAgreeOnPrivacyDisclaimer()
+ device.clickAllowOnNotificationPermissionPromptIfApiLevel33AndAbove()
+ device.dismissChangelogDialogIfShown()
+ app.waitForLoginPrompt()
+ app.attemptLogin(validAccountToken)
+
+ // Assert logged in
+ app.ensureLoggedIn()
+
+ // Set account time as expired
+ val newAccountExpiry = oldAccountExpiry.minusMonths(2)
+ apiDispatcher.accountExpiry = newAccountExpiry
+
+ // Go to account page to update the account expiry
+ app.clickAccountCog()
+ app.ensureAccountScreen()
+
+ // Go back to the main screen
+ device.pressBack()
+
+ // Assert that we show the out of time screen
+ app.ensureOutOfTime()
+ }
+}
diff --git a/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/LoginMockApiTest.kt b/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/LoginMockApiTest.kt
index 0dcbc308dc..6b03a65020 100644
--- a/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/LoginMockApiTest.kt
+++ b/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/LoginMockApiTest.kt
@@ -7,7 +7,6 @@ import net.mullvad.mullvadvpn.test.common.constant.DEFAULT_INTERACTION_TIMEOUT
import net.mullvad.mullvadvpn.test.common.extension.clickAgreeOnPrivacyDisclaimer
import net.mullvad.mullvadvpn.test.common.extension.clickAllowOnNotificationPermissionPromptIfApiLevel33AndAbove
import net.mullvad.mullvadvpn.test.common.extension.dismissChangelogDialogIfShown
-import net.mullvad.mullvadvpn.test.common.extension.findObjectWithTimeout
import net.mullvad.mullvadvpn.test.mockapi.constant.DEFAULT_DEVICE_LIST
import net.mullvad.mullvadvpn.test.mockapi.constant.DUMMY_DEVICE_NAME_2
import net.mullvad.mullvadvpn.test.mockapi.constant.DUMMY_ID_2
@@ -85,6 +84,6 @@ class LoginMockApiTest : MockApiTest() {
app.attemptLogin(validAccountToken)
// Assert
- device.findObjectWithTimeout(By.text("Out of time"))
+ app.ensureOutOfTime()
}
}