diff options
| author | Kalle Lindström <karl.lindstrom@mullvad.net> | 2025-04-23 11:26:52 +0200 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2025-04-28 11:20:54 +0200 |
| commit | 3b9add3fca368d32f9a3dce4112853873251e53a (patch) | |
| tree | 4e03c9ce91f3d1da685e4fcdf40a41c4767bd764 /android/test/mockapi/src | |
| parent | 30f142dd2ab096eeb80354690b754a452ba471cd (diff) | |
| download | mullvadvpn-3b9add3fca368d32f9a3dce4112853873251e53a.tar.xz mullvadvpn-3b9add3fca368d32f9a3dce4112853873251e53a.zip | |
Add mock api test for manage devices screen
Diffstat (limited to 'android/test/mockapi/src')
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, + ) |
