summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
Diffstat (limited to 'android')
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/EndToEndTest.kt8
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LeakTest.kt21
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/WebLinkTest.kt4
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/api/relay/RelayApi.kt11
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/Relays.kt20
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/RelayProvider.kt26
6 files changed, 68 insertions, 22 deletions
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/EndToEndTest.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/EndToEndTest.kt
index cbad74981c..8eef6e2086 100644
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/EndToEndTest.kt
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/EndToEndTest.kt
@@ -68,14 +68,6 @@ abstract class EndToEndTest {
)
companion object {
- const val DEFAULT_COUNTRY = "Sweden"
- const val DEFAULT_CITY = "Gothenburg"
- const val DEFAULT_RELAY = "se-got-wg-001"
-
- const val DAITA_COMPATIBLE_COUNTRY = "Relay Software Country"
- const val DAITA_COMPATIBLE_CITY = "Relay Software city"
- const val DAITA_COMPATIBLE_RELAY = "se-got-wg-002"
-
val firewallClient = FirewallClient()
@JvmStatic
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LeakTest.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LeakTest.kt
index 9a2ec22fef..35c6f323f0 100644
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LeakTest.kt
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LeakTest.kt
@@ -23,6 +23,7 @@ import net.mullvad.mullvadvpn.test.e2e.constant.getTrafficGeneratorPort
import net.mullvad.mullvadvpn.test.e2e.misc.AccountTestRule
import net.mullvad.mullvadvpn.test.e2e.misc.NetworkTrafficChecker
import net.mullvad.mullvadvpn.test.e2e.misc.NoTrafficToHostRule
+import net.mullvad.mullvadvpn.test.e2e.misc.RelayProvider
import net.mullvad.mullvadvpn.test.e2e.misc.SomeTrafficToHostRule
import net.mullvad.mullvadvpn.test.e2e.misc.SomeTrafficToOtherHostsRule
import net.mullvad.mullvadvpn.test.e2e.misc.TrafficGenerator
@@ -40,6 +41,8 @@ class LeakTest : EndToEndTest() {
@JvmField
val forgetAllVpnAppsInSettingsTestRule = ForgetAllVpnAppsInSettingsTestRule()
+ val relayProvider = RelayProvider()
+
@BeforeEach
fun setupVPNSettings() {
app.launchAndLogIn(accountTestRule.validAccountNumber)
@@ -76,9 +79,9 @@ class LeakTest : EndToEndTest() {
}
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()
@@ -124,9 +127,9 @@ class LeakTest : EndToEndTest() {
}
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()
@@ -181,9 +184,9 @@ class LeakTest : EndToEndTest() {
on<ConnectPage> { clickSelectLocation() }
on<SelectLocationPage> {
- clickLocationExpandButton(DAITA_COMPATIBLE_COUNTRY)
- clickLocationExpandButton(DAITA_COMPATIBLE_CITY)
- clickLocationCell(DAITA_COMPATIBLE_RELAY)
+ clickLocationExpandButton(relayProvider.getDaitaRelay().country)
+ clickLocationExpandButton(relayProvider.getDaitaRelay().city)
+ clickLocationCell(relayProvider.getDaitaRelay().relay)
}
device.acceptVpnPermissionDialog()
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/WebLinkTest.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/WebLinkTest.kt
index 1c2cbb6a4a..0e23fca54a 100644
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/WebLinkTest.kt
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/WebLinkTest.kt
@@ -1,15 +1,15 @@
package net.mullvad.mullvadvpn.test.e2e
-import net.mullvad.mullvadvpn.test.common.annotation.SkipForFlavors
import net.mullvad.mullvadvpn.test.common.page.LoginPage
import net.mullvad.mullvadvpn.test.common.page.MullvadWebsite
import net.mullvad.mullvadvpn.test.common.page.SettingsPage
import net.mullvad.mullvadvpn.test.common.page.on
+import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.Test
class WebLinkTest : EndToEndTest() {
@Test
- @SkipForFlavors(currentFlavor = BuildConfig.FLAVOR_billing, "play")
+ @Disabled("Disabled due to broken in-browser text detection (DROID-2009)")
fun testOpenFaqFromApp() {
app.launchAndEnsureOnLoginPage()
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/api/relay/RelayApi.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/api/relay/RelayApi.kt
index b09dd9eae4..dafdd38b80 100644
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/api/relay/RelayApi.kt
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/api/relay/RelayApi.kt
@@ -17,10 +17,12 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import kotlinx.serialization.json.Json
import net.mullvad.mullvadvpn.test.e2e.BuildConfig
-import net.mullvad.mullvadvpn.test.e2e.EndToEndTest.Companion.DEFAULT_RELAY
import net.mullvad.mullvadvpn.test.e2e.misc.KermitLogger
+import net.mullvad.mullvadvpn.test.e2e.misc.RelayProvider
class RelayApi {
+ private val relayProvider = RelayProvider()
+
private val client: HttpClient =
HttpClient(CIO) {
install(ContentNegotiation) { json(Json { ignoreUnknownKeys = true }) }
@@ -42,10 +44,13 @@ class RelayApi {
withContext(Dispatchers.IO) {
val body = client.get { url { path(RELAY_PATH) } }.body<String>()
val ipRegex =
- """${DEFAULT_RELAY}.+?ipv4_addr_in":"(.+?)"""".toRegex(RegexOption.DOT_MATCHES_ALL)
+ """${relayProvider.getDefaultRelay().relay}.+?ipv4_addr_in":"(.+?)""""
+ .toRegex(RegexOption.DOT_MATCHES_ALL)
ipRegex.find(body)?.groups?.get(1)?.value
- ?: error("Could not find $DEFAULT_RELAY IP address in relay list")
+ ?: error(
+ "Could not find ${relayProvider.getDefaultRelay().relay} IP address in relay list"
+ )
}
companion object {
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
new file mode 100644
index 0000000000..fb945af9c7
--- /dev/null
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/Relays.kt
@@ -0,0 +1,20 @@
+package net.mullvad.mullvadvpn.test.e2e.constant
+
+import net.mullvad.mullvadvpn.test.e2e.misc.TestRelay
+
+object Stagemole {
+ val DEFAULT_RELAY = Relays.gotWg001
+ val DAITA_RELAY = Relays.gotWg002RelaySoftware
+}
+
+object Production {
+ val DEFAULT_RELAY = Relays.gotWg001
+ val DAITA_RELAY = Relays.gotWg002
+}
+
+private object Relays {
+ val gotWg001 = TestRelay(relay = "se-got-wg-001", country = "Sweden", city = "Gothenburg")
+ val gotWg002 = TestRelay(relay = "se-got-wg-002", country = "Sweden", city = "Gothenburg")
+ val gotWg002RelaySoftware =
+ TestRelay(relay = "se-got-wg-002", country = "Sweden", city = "Gothenburg")
+}
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
new file mode 100644
index 0000000000..6aaafde29f
--- /dev/null
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/RelayProvider.kt
@@ -0,0 +1,26 @@
+package net.mullvad.mullvadvpn.test.e2e.misc
+
+import net.mullvad.mullvadvpn.test.e2e.BuildConfig
+import net.mullvad.mullvadvpn.test.e2e.constant.Production
+import net.mullvad.mullvadvpn.test.e2e.constant.Stagemole
+
+class RelayProvider(val currentFlavor: String = BuildConfig.FLAVOR_billing) {
+
+ fun getDefaultRelay(): TestRelay {
+ return when (currentFlavor) {
+ "play" -> Stagemole.DEFAULT_RELAY
+ "oss" -> Production.DEFAULT_RELAY
+ else -> error("Invalid flavor: $currentFlavor")
+ }
+ }
+
+ fun getDaitaRelay(): TestRelay {
+ return when (currentFlavor) {
+ "play" -> Stagemole.DAITA_RELAY
+ "oss" -> Production.DAITA_RELAY
+ else -> error("Invalid flavor: $currentFlavor")
+ }
+ }
+}
+
+data class TestRelay(val country: String, val city: String, val relay: String)