diff options
| author | saber safavi <saber.safavi@codic.se> | 2023-12-29 11:03:00 +0100 |
|---|---|---|
| committer | saber safavi <saber.safavi@codic.se> | 2023-12-29 12:54:39 +0100 |
| commit | 0e061a388609e9d9b82fe8bd840a3c2640320384 (patch) | |
| tree | 0774add6d4f169edde92eb4dee74a325ee5a98d3 /android | |
| parent | 2e540a642b9701166dd9b795d1d3c8620e804638 (diff) | |
| download | mullvadvpn-0e061a388609e9d9b82fe8bd840a3c2640320384.tar.xz mullvadvpn-0e061a388609e9d9b82fe8bd840a3c2640320384.zip | |
Add automate logout ui tests using mockApi
Diffstat (limited to 'android')
2 files changed, 44 insertions, 0 deletions
diff --git a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/interactor/AppInteractor.kt b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/interactor/AppInteractor.kt index 85f90d2270..2909b4edd0 100644 --- a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/interactor/AppInteractor.kt +++ b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/interactor/AppInteractor.kt @@ -73,6 +73,10 @@ class AppInteractor(private val device: UiDevice, private val targetContext: Con device.findObjectWithTimeout(By.res(SETTINGS_COG_ID)).click() } + fun clickAccountCog() { + device.findObjectWithTimeout(By.res("top_bar_account_button")).click() + } + fun clickListItemByText(text: String) { device.findObjectWithTimeout(By.text(text)).click() } diff --git a/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/LogoutMockApiTest.kt b/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/LogoutMockApiTest.kt new file mode 100644 index 0000000000..e13a728296 --- /dev/null +++ b/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/LogoutMockApiTest.kt @@ -0,0 +1,40 @@ +package net.mullvad.mullvadvpn.test.mockapi + +import androidx.test.runner.AndroidJUnit4 +import androidx.test.uiautomator.By +import junit.framework.TestCase.assertNotNull +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.util.currentUtcTimeWithOffsetZero +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +class LogoutMockApiTest : MockApiTest() { + + @Test + fun testLoginWithValidCredentialsToUnexpiredAccountAndLogout() { + // Arrange + val validAccountToken = "1234123412341234" + apiDispatcher.apply { + expectedAccountToken = validAccountToken + accountExpiry = currentUtcTimeWithOffsetZero().plusMonths(1) + } + + // Act + app.launch(endpoint) + device.clickAgreeOnPrivacyDisclaimer() + device.clickAllowOnNotificationPermissionPromptIfApiLevel33AndAbove() + device.dismissChangelogDialogIfShown() + app.waitForLoginPrompt() + app.attemptLogin(validAccountToken) + device.findObjectWithTimeout(By.text("UNSECURED CONNECTION")) + app.clickAccountCog() + app.clickActionButtonByText("Log out") + + // Assert + assertNotNull(device.findObjectWithTimeout(By.text("Login"))) + } +} |
