summaryrefslogtreecommitdiffhomepage
path: root/android/test/common/src
diff options
context:
space:
mode:
Diffstat (limited to 'android/test/common/src')
-rw-r--r--android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/interactor/AppInteractor.kt6
-rw-r--r--android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/AccountPage.kt16
-rw-r--r--android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/ConnectPage.kt5
-rw-r--r--android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/MullvadWebsite.kt14
-rw-r--r--android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/SettingsPage.kt5
-rw-r--r--android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/VpnSettingsPage.kt6
-rw-r--r--android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/WireGuardCustomPortDialog.kt30
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"
+ }
+}