diff options
Diffstat (limited to 'android/test/e2e')
3 files changed, 61 insertions, 2 deletions
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 e9c503e5b6..7c4a6534a8 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 @@ -292,6 +292,57 @@ class ConnectionTest : EndToEndTest() { @Test @HasDependencyOnLocalAPI @ClearFirewallRules + fun testLwo() = runTest { + app.launchAndLogIn(accountTestRule.validAccountNumber) + on<ConnectPage> { enableLocalNetworkSharingStory() } + + on<ConnectPage> { clickSelectLocation() } + + on<SelectLocationPage> { + val lwoRelay = relayProvider.getLwoRelay() + clickLocationExpandButton(lwoRelay.country) + clickLocationExpandButton(lwoRelay.city) + scrollUntilCell(lwoRelay.relay) + clickLocationCell(lwoRelay.relay) + } + + device.acceptVpnPermissionDialog() + + var relayIpAddress: String? = null + + on<ConnectPage> { + waitForConnectedLabel() + relayIpAddress = extractInIpv4Address() + clickDisconnect() + } + + // Block UDP traffic to the relay + val firewallRule = DropRule.blockWireGuardTrafficRule(relayIpAddress!!) + firewallClient.createRule(firewallRule) + + // Enable QUIC + on<ConnectPage> { clickSettings() } + + on<SettingsPage> { clickVpnSettings() } + + on<VpnSettingsPage> { + scrollUntilWireGuardObfuscationLwoCell() + clickWireguardObfuscationLwoCell() + } + + device.pressBack() + device.pressBack() + + on<ConnectPage> { + clickConnect() + waitForConnectedLabel(timeout = EXTREMELY_LONG_TIMEOUT) + clickDisconnect() + } + } + + @Test + @HasDependencyOnLocalAPI + @ClearFirewallRules fun testShadowsocks() = runTest { app.launchAndLogIn(accountTestRule.validAccountNumber) on<ConnectPage> { enableLocalNetworkSharingStory() } diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/Relays.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/Relays.kt index 7d098fff8f..1bb20564de 100644 --- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/Relays.kt +++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/Relays.kt @@ -5,15 +5,15 @@ import net.mullvad.mullvadvpn.test.e2e.misc.TestRelay object Stagemole { val DEFAULT_RELAY = Relays.gotWg001 val DAITA_RELAY = Relays.gotWg002RelaySoftware - val QUIC_RELAY = Relays.stoWg001 + val LWO_RELAY = Relays.stoWg001 } object Production { val DEFAULT_RELAY = Relays.gotWg001 val DAITA_RELAY = Relays.gotWg002 - val QUIC_RELAY = Relays.stoWg204 + val LWO_RELAY = Relays.stoWg204 } private object Relays { diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/RelayProvider.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/RelayProvider.kt index ee27f95148..953aa7164d 100644 --- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/RelayProvider.kt +++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/RelayProvider.kt @@ -29,6 +29,14 @@ class RelayProvider(val currentFlavor: String = BuildConfig.FLAVOR_billing) { else -> error("Invalid flavor: $currentFlavor") } } + + fun getLwoRelay(): TestRelay { + return when (currentFlavor) { + "play" -> Stagemole.LWO_RELAY + "oss" -> Production.LWO_RELAY + else -> error("Invalid flavor: $currentFlavor") + } + } } data class TestRelay(val country: String, val city: String, val relay: String) |
