summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2022-12-28 15:08:19 +0100
committerAlbin <albin@mullvad.net>2023-01-10 15:32:43 +0100
commitaaae3e6c79fc0f684f261b1d607aad69542bf404 (patch)
tree11c5a23157bdeef4d28c671dc79cca1de5217f44
parent0976431ed723e635b812f3b3a3d569532d50463b (diff)
downloadmullvadvpn-aaae3e6c79fc0f684f261b1d607aad69542bf404.tar.xz
mullvadvpn-aaae3e6c79fc0f684f261b1d607aad69542bf404.zip
Add test rule to clear device vpns
-rw-r--r--android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/rule/ForgetAllVpnAppsInSettingsTestRule.kt37
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/ConnectionTest.kt5
2 files changed, 42 insertions, 0 deletions
diff --git a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/rule/ForgetAllVpnAppsInSettingsTestRule.kt b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/rule/ForgetAllVpnAppsInSettingsTestRule.kt
new file mode 100644
index 0000000000..eebdb291ab
--- /dev/null
+++ b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/rule/ForgetAllVpnAppsInSettingsTestRule.kt
@@ -0,0 +1,37 @@
+package net.mullvad.mullvadvpn.test.common.rule
+
+import android.content.Intent
+import android.provider.Settings
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.uiautomator.By
+import androidx.test.uiautomator.UiDevice
+import net.mullvad.mullvadvpn.test.common.extension.findObjectByCaseInsensitiveText
+import net.mullvad.mullvadvpn.test.common.extension.findObjectWithTimeout
+import org.junit.rules.TestWatcher
+import org.junit.runner.Description
+
+class ForgetAllVpnAppsInSettingsTestRule : TestWatcher() {
+ override fun starting(description: Description) {
+ val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
+ val targetContext = InstrumentationRegistry.getInstrumentation().targetContext
+ targetContext.startActivity(
+ Intent(Settings.ACTION_VPN_SETTINGS).apply {
+ flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
+ }
+ )
+ val vpnSettingsButtons =
+ device.findObjects(By.res(SETTINGS_PACKAGE, VPN_SETTINGS_BUTTON_ID))
+ vpnSettingsButtons?.forEach { button ->
+ button.click()
+ device.findObjectWithTimeout(By.text(FORGET_VPN_VPN_BUTTON_TEXT)).click()
+ device.findObjectByCaseInsensitiveText(FORGET_VPN_VPN_CONFIRM_BUTTON_TEXT).click()
+ }
+ }
+
+ companion object {
+ private const val FORGET_VPN_VPN_BUTTON_TEXT = "Forget VPN"
+ private const val FORGET_VPN_VPN_CONFIRM_BUTTON_TEXT = "Forget"
+ private const val SETTINGS_PACKAGE = "com.android.settings"
+ private const val VPN_SETTINGS_BUTTON_ID = "settings_button"
+ }
+}
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 0da55954fb..719aedf641 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
@@ -4,6 +4,7 @@ import androidx.test.uiautomator.By
import junit.framework.Assert.assertEquals
import net.mullvad.mullvadvpn.test.common.extension.findObjectWithTimeout
import net.mullvad.mullvadvpn.test.e2e.interactor.WebViewInteractor
+import net.mullvad.mullvadvpn.test.common.rule.ForgetAllVpnAppsInSettingsTestRule
import net.mullvad.mullvadvpn.test.e2e.misc.CleanupAccountTestRule
import org.junit.Rule
import org.junit.Test
@@ -14,6 +15,10 @@ class ConnectionTest : EndToEndTest() {
@JvmField
val cleanupAccountTestRule = CleanupAccountTestRule()
+ @Rule
+ @JvmField
+ val forgetAllVpnAppsInSettingsTestRule = ForgetAllVpnAppsInSettingsTestRule()
+
@Test
fun testConnectAndVerifyWithConnectionCheck() {
// Given