diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2025-05-20 13:25:49 +0200 |
|---|---|---|
| committer | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2025-05-22 15:13:17 +0200 |
| commit | 91f3ef13d0ec4008c83adba131031a86c8386449 (patch) | |
| tree | 7e20bdf1489abb86edfb33cea508d085901e5ee2 /android | |
| parent | d6c9855a1ec79fa775314e9c0e4206a5a4e97f46 (diff) | |
| download | mullvadvpn-91f3ef13d0ec4008c83adba131031a86c8386449.tar.xz mullvadvpn-91f3ef13d0ec4008c83adba131031a86c8386449.zip | |
Add Post quantum connection test
Diffstat (limited to 'android')
3 files changed, 60 insertions, 12 deletions
diff --git a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/Story.kt b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/Story.kt index 7f919ebaf2..c38fcd776b 100644 --- a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/Story.kt +++ b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/page/Story.kt @@ -25,6 +25,16 @@ fun ConnectPage.disablePostQuantumStory() { uiDevice.pressBackTwice() } +fun ConnectPage.enablePostQuantumStory() { + clickSettings() + on<SettingsPage> { clickVpnSettings() } + on<VpnSettingsPage> { + scrollUntilPostQuantumOnCell() + clickPostQuantumOnCell() + } + uiDevice.pressBackTwice() +} + fun ConnectPage.enableShadowsocksStory() { clickSettings() on<SettingsPage> { clickVpnSettings() } 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 fbd05f483b..8232369cdb 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 @@ -4,6 +4,7 @@ import androidx.test.uiautomator.By import androidx.test.uiautomator.Direction import androidx.test.uiautomator.Until import net.mullvad.mullvadvpn.lib.ui.tag.LAZY_LIST_QUANTUM_ITEM_OFF_TEST_TAG +import net.mullvad.mullvadvpn.lib.ui.tag.LAZY_LIST_QUANTUM_ITEM_ON_TEST_TAG import net.mullvad.mullvadvpn.lib.ui.tag.LAZY_LIST_VPN_SETTINGS_TEST_TAG import net.mullvad.mullvadvpn.lib.ui.tag.LAZY_LIST_WIREGUARD_CUSTOM_PORT_TEXT_TEST_TAG import net.mullvad.mullvadvpn.lib.ui.tag.SWITCH_TEST_TAG @@ -42,6 +43,10 @@ class VpnSettingsPage internal constructor() : Page() { scrollUntilCell(LAZY_LIST_QUANTUM_ITEM_OFF_TEST_TAG) } + fun scrollUntilPostQuantumOnCell() { + scrollUntilCell(LAZY_LIST_QUANTUM_ITEM_ON_TEST_TAG) + } + fun scrollUntilWireGuardObfuscationShadowsocksCell() { scrollUntilCell(WIREGUARD_OBFUSCATION_SHADOWSOCKS_CELL_TEST_TAG) } @@ -58,6 +63,10 @@ class VpnSettingsPage internal constructor() : Page() { uiDevice.clickObjectAwaitIsChecked(By.res(LAZY_LIST_QUANTUM_ITEM_OFF_TEST_TAG)) } + fun clickPostQuantumOnCell() { + uiDevice.clickObjectAwaitIsChecked(By.res(LAZY_LIST_QUANTUM_ITEM_ON_TEST_TAG)) + } + fun clickWireGuardObfuscationShadowsocksCell() { uiDevice.clickObjectAwaitIsChecked(By.res(WIREGUARD_OBFUSCATION_SHADOWSOCKS_CELL_TEST_TAG)) } diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/ConnectionTest.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/ConnectionTest.kt index f23f74dd6a..2d7757ace1 100644 --- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/ConnectionTest.kt +++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/ConnectionTest.kt @@ -11,6 +11,7 @@ import net.mullvad.mullvadvpn.test.common.page.SettingsPage import net.mullvad.mullvadvpn.test.common.page.VpnSettingsPage import net.mullvad.mullvadvpn.test.common.page.disableObfuscationStory import net.mullvad.mullvadvpn.test.common.page.enableLocalNetworkSharingStory +import net.mullvad.mullvadvpn.test.common.page.enablePostQuantumStory import net.mullvad.mullvadvpn.test.common.page.enableShadowsocksStory import net.mullvad.mullvadvpn.test.common.page.on import net.mullvad.mullvadvpn.test.common.rule.ForgetAllVpnAppsInSettingsTestRule @@ -19,6 +20,7 @@ import net.mullvad.mullvadvpn.test.e2e.api.connectioncheck.ConnectionCheckApi import net.mullvad.mullvadvpn.test.e2e.api.relay.RelayApi import net.mullvad.mullvadvpn.test.e2e.misc.AccountTestRule import net.mullvad.mullvadvpn.test.e2e.misc.ClearFirewallRules +import net.mullvad.mullvadvpn.test.e2e.misc.RelayProvider import net.mullvad.mullvadvpn.test.e2e.router.firewall.DropRule import net.mullvad.mullvadvpn.test.e2e.router.firewall.FirewallClient import org.junit.jupiter.api.Assertions.assertEquals @@ -36,6 +38,7 @@ class ConnectionTest : EndToEndTest() { private val connCheckClient = ConnectionCheckApi() private val relayClient = RelayApi() private val firewallClient by lazy { FirewallClient() } + private val relayProvider = RelayProvider() @Test fun testConnect() { @@ -72,6 +75,32 @@ class ConnectionTest : EndToEndTest() { } @Test + fun testConnectUsingPostQuantum() = runTest { + // Given + app.launchAndLogIn(accountTestRule.validAccountNumber) + + // Enable post quantum + on<ConnectPage> { enablePostQuantumStory() } + + // Connect + on<ConnectPage> { clickConnect() } + + device.acceptVpnPermissionDialog() + + var outIpv4Address = "" + + on<ConnectPage> { + waitForConnectedLabel() + outIpv4Address = extractOutIpv4Address() + } + + val result = connCheckClient.connectionCheck() + + // Verify connection + assertEquals(result.ip, outIpv4Address) + } + + @Test @HasDependencyOnLocalAPI @ClearFirewallRules fun testWireGuardObfuscationAutomatic() = runTest { @@ -81,9 +110,9 @@ class ConnectionTest : EndToEndTest() { on<ConnectPage> { clickSelectLocation() } on<SelectLocationPage> { - clickLocationExpandButton(DEFAULT_COUNTRY) - clickLocationExpandButton(DEFAULT_CITY) - clickLocationCell(DEFAULT_RELAY) + clickLocationExpandButton(relayProvider.getDefaultRelay().country) + clickLocationExpandButton(relayProvider.getDefaultRelay().city) + clickLocationCell(relayProvider.getDefaultRelay().relay) } device.acceptVpnPermissionDialog() @@ -118,9 +147,9 @@ class ConnectionTest : EndToEndTest() { on<ConnectPage> { clickSelectLocation() } on<SelectLocationPage> { - clickLocationExpandButton(DEFAULT_COUNTRY) - clickLocationExpandButton(DEFAULT_CITY) - clickLocationCell(DEFAULT_RELAY) + clickLocationExpandButton(relayProvider.getDefaultRelay().country) + clickLocationExpandButton(relayProvider.getDefaultRelay().city) + clickLocationCell(relayProvider.getDefaultRelay().relay) } device.acceptVpnPermissionDialog() @@ -170,9 +199,9 @@ class ConnectionTest : EndToEndTest() { on<ConnectPage> { clickSelectLocation() } on<SelectLocationPage> { - clickLocationExpandButton(DEFAULT_COUNTRY) - clickLocationExpandButton(DEFAULT_CITY) - clickLocationCell(DEFAULT_RELAY) + clickLocationExpandButton(relayProvider.getDefaultRelay().country) + clickLocationExpandButton(relayProvider.getDefaultRelay().city) + clickLocationCell(relayProvider.getDefaultRelay().relay) } device.acceptVpnPermissionDialog() @@ -263,9 +292,9 @@ class ConnectionTest : EndToEndTest() { on<ConnectPage> { clickSelectLocation() } on<SelectLocationPage> { - clickLocationExpandButton(DEFAULT_COUNTRY) - clickLocationExpandButton(DEFAULT_CITY) - clickLocationCell(DEFAULT_RELAY) + clickLocationExpandButton(relayProvider.getDefaultRelay().country) + clickLocationExpandButton(relayProvider.getDefaultRelay().city) + clickLocationCell(relayProvider.getDefaultRelay().relay) } device.acceptVpnPermissionDialog() |
