summaryrefslogtreecommitdiffhomepage
path: root/android/test/e2e
diff options
context:
space:
mode:
Diffstat (limited to 'android/test/e2e')
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/ConnectionTest.kt51
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/Relays.kt4
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/RelayProvider.kt8
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)