summaryrefslogtreecommitdiffhomepage
path: root/android/test/mockapi/src
diff options
context:
space:
mode:
authorKalle Lindström <karl.lindstrom@mullvad.net>2025-04-23 11:26:52 +0200
committerAlbin <albin@mullvad.net>2025-04-28 11:20:54 +0200
commit3b9add3fca368d32f9a3dce4112853873251e53a (patch)
tree4e03c9ce91f3d1da685e4fcdf40a41c4767bd764 /android/test/mockapi/src
parent30f142dd2ab096eeb80354690b754a452ba471cd (diff)
downloadmullvadvpn-3b9add3fca368d32f9a3dce4112853873251e53a.tar.xz
mullvadvpn-3b9add3fca368d32f9a3dce4112853873251e53a.zip
Add mock api test for manage devices screen
Diffstat (limited to 'android/test/mockapi/src')
-rw-r--r--android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/ManageDevicesMockApiTest.kt51
-rw-r--r--android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/constant/Constants.kt7
2 files changed, 58 insertions, 0 deletions
diff --git a/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/ManageDevicesMockApiTest.kt b/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/ManageDevicesMockApiTest.kt
new file mode 100644
index 0000000000..5852bb9bb3
--- /dev/null
+++ b/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/ManageDevicesMockApiTest.kt
@@ -0,0 +1,51 @@
+package net.mullvad.mullvadvpn.test.mockapi
+
+import androidx.test.uiautomator.By
+import java.time.ZonedDateTime
+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.constant.ALMOST_FULL_DEVICE_LIST
+import net.mullvad.mullvadvpn.test.mockapi.constant.DUMMY_DEVICE_NAME_1
+import net.mullvad.mullvadvpn.test.mockapi.constant.DUMMY_ID_1
+import org.junit.jupiter.api.Test
+import org.junit.jupiter.api.assertNull
+
+class ManageDevicesMockApiTest : MockApiTest() {
+ @Test
+ fun testManageDevicesRemoveDevice() {
+ // Arrange
+ val validAccountNumber = "1234123412341234"
+ apiDispatcher.apply {
+ expectedAccountNumber = validAccountNumber
+ accountExpiry = ZonedDateTime.now().plusMonths(1)
+ devices = ALMOST_FULL_DEVICE_LIST.toMutableMap()
+ devicePendingToGetCreated = DUMMY_ID_1 to DUMMY_DEVICE_NAME_1
+ }
+
+ // Act - go to devices screen
+ app.launch(endpoint)
+ device.clickAgreeOnPrivacyDisclaimer()
+ device.clickAllowOnNotificationPermissionPromptIfApiLevel33AndAbove()
+ app.waitForLoginPrompt()
+ app.attemptLogin(validAccountNumber)
+ device.waitForIdle()
+ device.dismissChangelogDialogIfShown()
+ app.ensureLoggedIn()
+ app.clickAccountCog()
+ device.findObject(By.res("manage_devices_button_test_tag")).click()
+
+ // Assert - current device is shown but not clickable
+ val current = device.findObjectWithTimeout(By.text("Current device")).parent
+ assertNull(current.findObject(By.clickable(true)))
+
+ // Act - remove another device in the list
+ val secondDevice = device.findObjectWithTimeout(By.text("Yellow Hat")).parent
+ secondDevice.findObject(By.clickable(true)).click()
+ app.clickActionButtonByText("Remove")
+
+ // Assert - the other device is no longer shown
+ assertNull(device.findObject(By.text("Yellow Hat")))
+ }
+}
diff --git a/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/constant/Constants.kt b/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/constant/Constants.kt
index e11e14879e..083fcc1160 100644
--- a/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/constant/Constants.kt
+++ b/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/constant/Constants.kt
@@ -33,3 +33,10 @@ val FULL_DEVICE_LIST =
DUMMY_ID_4 to DUMMY_DEVICE_NAME_4,
DUMMY_ID_5 to DUMMY_DEVICE_NAME_5,
)
+val ALMOST_FULL_DEVICE_LIST =
+ mapOf(
+ DUMMY_ID_1 to DUMMY_DEVICE_NAME_1,
+ DUMMY_ID_2 to DUMMY_DEVICE_NAME_2,
+ DUMMY_ID_3 to DUMMY_DEVICE_NAME_3,
+ DUMMY_ID_4 to DUMMY_DEVICE_NAME_4,
+ )