summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2023-12-29 13:48:27 +0100
committerAlbin <albin@mullvad.net>2023-12-29 13:48:27 +0100
commit6d9b4b160d76fd4dd4db0f63d628e627f68a1537 (patch)
tree0774add6d4f169edde92eb4dee74a325ee5a98d3
parent2e540a642b9701166dd9b795d1d3c8620e804638 (diff)
parent0e061a388609e9d9b82fe8bd840a3c2640320384 (diff)
downloadmullvadvpn-6d9b4b160d76fd4dd4db0f63d628e627f68a1537.tar.xz
mullvadvpn-6d9b4b160d76fd4dd4db0f63d628e627f68a1537.zip
Merge branch 'automate-logout-tests-using-mockapi-droid-590'
-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")))
+ }
+}