diff options
| author | Niklas Berglund <niklas.berglund@gmail.com> | 2024-10-18 11:08:01 +0200 |
|---|---|---|
| committer | David Göransson <david.goransson@mullvad.net> | 2024-12-03 08:34:59 +0100 |
| commit | f59eb65f21621092ee21c292b7ae1da0518a09ac (patch) | |
| tree | e3f6a68e2d62e404f2170c8ae2d53fb6ff2c1975 /android/test/e2e/src | |
| parent | 46ec55fa5a9f249058d999a5c50fc094f4f46930 (diff) | |
| download | mullvadvpn-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.kt | 44 |
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() + } } } |
