summaryrefslogtreecommitdiffhomepage
path: root/android/test/e2e/src
diff options
context:
space:
mode:
authorNiklas Berglund <niklas.berglund@gmail.com>2024-10-18 11:08:01 +0200
committerDavid Göransson <david.goransson@mullvad.net>2024-12-03 08:34:59 +0100
commitf59eb65f21621092ee21c292b7ae1da0518a09ac (patch)
treee3f6a68e2d62e404f2170c8ae2d53fb6ff2c1975 /android/test/e2e/src
parent46ec55fa5a9f249058d999a5c50fc094f4f46930 (diff)
downloadmullvadvpn-f59eb65f21621092ee21c292b7ae1da0518a09ac.tar.xz
mullvadvpn-f59eb65f21621092ee21c292b7ae1da0518a09ac.zip
Implement basic of page object pattern
Diffstat (limited to 'android/test/e2e/src')
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LoginTest.kt44
1 files changed, 26 insertions, 18 deletions
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LoginTest.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LoginTest.kt
index 5a5d70fc9f..bfd78422c0 100644
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LoginTest.kt
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LoginTest.kt
@@ -1,10 +1,9 @@
package net.mullvad.mullvadvpn.test.e2e
-import androidx.test.uiautomator.By
-import net.mullvad.mullvadvpn.test.common.constant.EXTREMELY_LONG_TIMEOUT
-import net.mullvad.mullvadvpn.test.common.extension.clickAgreeOnPrivacyDisclaimer
-import net.mullvad.mullvadvpn.test.common.extension.clickAllowOnNotificationPermissionPromptIfApiLevel33AndAbove
-import net.mullvad.mullvadvpn.test.common.extension.findObjectWithTimeout
+import net.mullvad.mullvadvpn.test.common.page.ConnectPage
+import net.mullvad.mullvadvpn.test.common.page.LoginPage
+import net.mullvad.mullvadvpn.test.common.page.PrivacyPage
+import net.mullvad.mullvadvpn.test.common.page.on
import net.mullvad.mullvadvpn.test.e2e.misc.AccountTestRule
import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.Test
@@ -16,30 +15,39 @@ class LoginTest : EndToEndTest(BuildConfig.FLAVOR_infrastructure) {
@Test
fun testLoginWithValidCredentials() {
- // Given
val validTestAccountNumber = accountTestRule.validAccountNumber
- // When
- app.launchAndEnsureLoggedIn(validTestAccountNumber)
+ app.launch()
+
+ on<PrivacyPage> {
+ clickAgreeOnPrivacyDisclaimer()
+ clickAllowOnNotificationPermissionPromptIfApiLevel33AndAbove()
+ }
- // Then
- app.ensureLoggedIn()
+ on<LoginPage> {
+ enterAccountNumber(validTestAccountNumber)
+ tapLoginButton()
+ }
+
+ on<ConnectPage>()
}
@Test
@Disabled("Failed login attempts are highly rate limited and cause test flakiness")
fun testLoginWithInvalidCredentials() {
- // Given
val invalidDummyAccountNumber = accountTestRule.invalidAccountNumber
- // When
app.launch()
- device.clickAgreeOnPrivacyDisclaimer()
- device.clickAllowOnNotificationPermissionPromptIfApiLevel33AndAbove()
- app.waitForLoginPrompt()
- app.attemptLogin(invalidDummyAccountNumber)
- // Then
- device.findObjectWithTimeout(By.text("Invalid account number"), EXTREMELY_LONG_TIMEOUT)
+ on<PrivacyPage> {
+ clickAgreeOnPrivacyDisclaimer()
+ clickAllowOnNotificationPermissionPromptIfApiLevel33AndAbove()
+ }
+
+ on<LoginPage> {
+ enterAccountNumber(invalidDummyAccountNumber)
+ tapLoginButton()
+ verifyShowingInvalidAccount()
+ }
}
}