diff options
Diffstat (limited to 'android/test/common/src')
7 files changed, 81 insertions, 1 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 ea9b761ea1..41fe28b68c 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 @@ -39,11 +39,15 @@ class AppInteractor( device.wait(Until.hasObject(By.pkg(targetPackageName).depth(0)), LONG_TIMEOUT) } - fun launchAndEnsureLoggedIn(accountNumber: String) { + fun launchAndEnsureOnLoginPage() { launch() device.clickAgreeOnPrivacyDisclaimer() device.clickAllowOnNotificationPermissionPromptIfApiLevel33AndAbove() waitForLoginPrompt() + } + + fun launchAndEnsureLoggedIn(accountNumber: String) { + launchAndEnsureOnLoginPage() attemptLogin(accountNumber) device.dismissChangelogDialogIfShown() ensureLoggedIn() diff --git a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/AccountPage.kt b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/AccountPage.kt new file mode 100644 index 0000000000..db4a963648 --- /dev/null +++ b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/AccountPage.kt @@ -0,0 +1,16 @@ +package net.mullvad.mullvadvpn.test.common.page + +import androidx.test.uiautomator.By +import net.mullvad.mullvadvpn.test.common.extension.findObjectWithTimeout + +class AccountPage internal constructor() : Page() { + private val logOutSelector = By.text("Log out") + + override fun assertIsDisplayed() { + uiDevice.findObjectWithTimeout(By.text("Account")) + } + + fun clickLogOut() { + uiDevice.findObjectWithTimeout(logOutSelector).click() + } +} diff --git a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/ConnectPage.kt b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/ConnectPage.kt index 320c01d7aa..552fc17ee4 100644 --- a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/ConnectPage.kt +++ b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/ConnectPage.kt @@ -9,6 +9,7 @@ class ConnectPage internal constructor() : Page() { private val cancelSelector = By.text("Cancel") private val connectedSelector = By.text("CONNECTED") private val connectingSelector = By.text("CONNECTING...") + private val disconnectedSelector = By.text("DISCONNECTED") override fun assertIsDisplayed() { uiDevice.findObjectWithTimeout(By.res(CONNECT_CARD_HEADER_TEST_TAG)) @@ -34,6 +35,10 @@ class ConnectPage internal constructor() : Page() { uiDevice.findObjectWithTimeout(connectedSelector, timeout) } + fun waitForDisconnectedLabel(timeout: Long = VERY_LONG_TIMEOUT) { + uiDevice.findObjectWithTimeout(disconnectedSelector, timeout) + } + fun waitForConnectingLabel() { uiDevice.findObjectWithTimeout(connectingSelector) } diff --git a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/MullvadWebsite.kt b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/MullvadWebsite.kt new file mode 100644 index 0000000000..a9de089b24 --- /dev/null +++ b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/MullvadWebsite.kt @@ -0,0 +1,14 @@ +package net.mullvad.mullvadvpn.test.common.page + +import androidx.test.uiautomator.By +import net.mullvad.mullvadvpn.test.common.constant.VERY_LONG_TIMEOUT +import net.mullvad.mullvadvpn.test.common.extension.findObjectWithTimeout + +class MullvadWebsite internal constructor() : Page() { + override fun assertIsDisplayed() { + uiDevice.findObjectWithTimeout( + selector = By.text("Mullvad help center"), + timeout = VERY_LONG_TIMEOUT, + ) + } +} diff --git a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/SettingsPage.kt b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/SettingsPage.kt index 86a317d153..ebeb8eea4a 100644 --- a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/SettingsPage.kt +++ b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/SettingsPage.kt @@ -5,6 +5,7 @@ import net.mullvad.mullvadvpn.test.common.extension.findObjectWithTimeout class SettingsPage internal constructor() : Page() { private val settingsSelector = By.text("Settings") + private val faqAndGuidesSelector = By.text("FAQs & Guides") override fun assertIsDisplayed() { uiDevice.findObjectWithTimeout(settingsSelector) @@ -14,6 +15,10 @@ class SettingsPage internal constructor() : Page() { uiDevice.findObjectWithTimeout(By.res(VPN_SETTINGS_CELL_TEST_TAG)).click() } + fun clickFaqAndGuides() { + uiDevice.findObjectWithTimeout(faqAndGuidesSelector).click() + } + companion object { const val VPN_SETTINGS_CELL_TEST_TAG = "vpn_settings_cell_test_tag" } diff --git a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/VpnSettingsPage.kt b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/VpnSettingsPage.kt index 698c84aa6b..1a74b80232 100644 --- a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/VpnSettingsPage.kt +++ b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/VpnSettingsPage.kt @@ -45,12 +45,18 @@ class VpnSettingsPage internal constructor() : Page() { scrollView2.scrollUntil(Direction.DOWN, Until.hasObject(By.res(testTag))) } + fun clickWireguardCustomPort() { + uiDevice.findObjectWithTimeout(By.res(WIREGUARD_CUSTOM_PORT_CELL_TEST_TAG)).click() + } + companion object { const val SETTINGS_SCROLL_VIEW_TEST_TAG = "lazy_list_vpn_settings_test_tag" const val WIREGUARD_OBFUSCATION_UDP_OVER_TCP_CELL_TEST_TAG = "wireguard_obfuscation_udp_over_tcp_cell_test_tag" const val WIREGUARD_OBFUSCATION_OFF_CELL_TEST_TAG = "wireguard_obfuscation_off_cell_test_tag" + const val WIREGUARD_CUSTOM_PORT_CELL_TEST_TAG = + "lazy_list_wireguard_custom_port_text_test_tag" const val SWITCH_TEST_TAG = "switch_test_tag" } } diff --git a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/WireGuardCustomPortDialog.kt b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/WireGuardCustomPortDialog.kt new file mode 100644 index 0000000000..ee112a5d46 --- /dev/null +++ b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/WireGuardCustomPortDialog.kt @@ -0,0 +1,30 @@ +package net.mullvad.mullvadvpn.test.common.page + +import androidx.test.uiautomator.By +import net.mullvad.mullvadvpn.test.common.extension.findObjectWithTimeout + +class WireGuardCustomPortDialog internal constructor() : Page() { + private val textFieldLabelSelector = By.text("Enter port") + private val setPortSelector = By.text("Set port") + private val cancelSelector = By.text("Cancel") + + override fun assertIsDisplayed() { + uiDevice.findObjectWithTimeout(textFieldLabelSelector) + } + + fun enterCustomPort(port: String) { + uiDevice.findObjectWithTimeout(textFieldLabelSelector).parent.text = port + } + + fun clickSetPort() { + uiDevice.findObjectWithTimeout(setPortSelector).click() + } + + fun clickCancel() { + uiDevice.findObjectWithTimeout(cancelSelector).click() + } + + companion object { + const val TEXT_FIELD_TEST_TAG = "custom_port_dialog_input_test_tag" + } +} |
