summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorsaber safavi <saber.safavi@codic.se>2023-12-29 11:03:00 +0100
committersaber safavi <saber.safavi@codic.se>2023-12-29 12:54:39 +0100
commit0e061a388609e9d9b82fe8bd840a3c2640320384 (patch)
tree0774add6d4f169edde92eb4dee74a325ee5a98d3 /android
parent2e540a642b9701166dd9b795d1d3c8620e804638 (diff)
downloadmullvadvpn-0e061a388609e9d9b82fe8bd840a3c2640320384.tar.xz
mullvadvpn-0e061a388609e9d9b82fe8bd840a3c2640320384.zip
Add automate logout ui tests using mockApi
Diffstat (limited to 'android')
-rw-r--r--android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/interactor/AppInteractor.kt4
-rw-r--r--android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/LogoutMockApiTest.kt40
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")))
+ }
+}