diff options
Diffstat (limited to 'android/test/mockapi')
| -rw-r--r-- | android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/AccountExpiryMockApiTest.kt | 61 |
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) + } } |
