summaryrefslogtreecommitdiffhomepage
path: root/android/test/mockapi/src
diff options
context:
space:
mode:
Diffstat (limited to 'android/test/mockapi/src')
-rw-r--r--android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/AccountExpiryMockApiTest.kt61
1 files changed, 45 insertions, 16 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
index 7aec8f4725..43020435df 100644
--- 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
@@ -2,6 +2,7 @@ package net.mullvad.mullvadvpn.test.mockapi
import androidx.test.uiautomator.By
import java.time.ZonedDateTime
+import net.mullvad.mullvadvpn.test.common.constant.VERY_LONG_TIMEOUT
import net.mullvad.mullvadvpn.test.common.extension.findObjectWithTimeout
import net.mullvad.mullvadvpn.test.common.page.AccountPage
import net.mullvad.mullvadvpn.test.common.page.ConnectPage
@@ -18,14 +19,7 @@ class AccountExpiryMockApiTest : MockApiTest() {
@Test
fun testAccountExpiryDateUpdated() {
// Arrange
- val validAccountNumber = "1234123412341234"
- val oldAccountExpiry = ZonedDateTime.now().plusMonths(1)
- apiDispatcher.apply {
- expectedAccountNumber = validAccountNumber
- accountExpiry = oldAccountExpiry
- devices = DEFAULT_DEVICE_LIST.toMutableMap()
- devicePendingToGetCreated = DUMMY_ID_2 to DUMMY_DEVICE_NAME_2
- }
+ val (validAccountNumber, oldAccountExpiry) = configureAccount()
// Act
app.launchAndLogIn(validAccountNumber)
@@ -45,14 +39,7 @@ class AccountExpiryMockApiTest : MockApiTest() {
@Test
fun testAccountTimeExpiredWhileUsingTheAppShouldShowOutOfTimeScreen() {
// Arrange
- val validAccountNumber = "1234123412341234"
- val oldAccountExpiry = ZonedDateTime.now().plusMonths(1)
- apiDispatcher.apply {
- expectedAccountNumber = validAccountNumber
- accountExpiry = oldAccountExpiry
- devices = DEFAULT_DEVICE_LIST.toMutableMap()
- devicePendingToGetCreated = DUMMY_ID_2 to DUMMY_DEVICE_NAME_2
- }
+ val (validAccountNumber, oldAccountExpiry) = configureAccount()
// Act
app.launchAndLogIn(validAccountNumber)
@@ -75,4 +62,46 @@ class AccountExpiryMockApiTest : MockApiTest() {
// Assert that we show the out of time screen
on<OutOfTimePage>()
}
+
+ @Test
+ fun testAccountTimeExpiryNotificationIsShown() {
+ // Arrange
+ val (validAccountNumber, _) = configureAccount()
+
+ // Act
+ app.launchAndLogIn(validAccountNumber)
+
+ // Wait for us to be on connect page before changing expiry
+ on<ConnectPage>()
+
+ // Set account time as expired
+ val newAccountExpiry = ZonedDateTime.now().plusDays(3).plusSeconds(5)
+ apiDispatcher.accountExpiry = newAccountExpiry
+
+ on<ConnectPage> { clickAccount() }
+
+ // Go to account page to update the account expiry
+ on<AccountPage>()
+
+ // Go back to the main screen
+ device.openNotification()
+
+ // Make sure the notification is shown
+ device.findObjectWithTimeout(
+ By.text("Account credit expires in 2 days"),
+ timeout = VERY_LONG_TIMEOUT,
+ )
+ }
+
+ private fun configureAccount(): Pair<String, ZonedDateTime> {
+ val validAccountNumber = "1234123412341234"
+ val oldAccountExpiry = ZonedDateTime.now().plusMonths(1)
+ apiDispatcher.apply {
+ expectedAccountNumber = validAccountNumber
+ accountExpiry = oldAccountExpiry
+ devices = DEFAULT_DEVICE_LIST.toMutableMap()
+ devicePendingToGetCreated = DUMMY_ID_2 to DUMMY_DEVICE_NAME_2
+ }
+ return Pair(validAccountNumber, oldAccountExpiry)
+ }
}