diff options
| author | Albin <albin@mullvad.net> | 2022-12-28 15:08:19 +0100 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2023-01-10 15:32:43 +0100 |
| commit | aaae3e6c79fc0f684f261b1d607aad69542bf404 (patch) | |
| tree | 11c5a23157bdeef4d28c671dc79cca1de5217f44 | |
| parent | 0976431ed723e635b812f3b3a3d569532d50463b (diff) | |
| download | mullvadvpn-aaae3e6c79fc0f684f261b1d607aad69542bf404.tar.xz mullvadvpn-aaae3e6c79fc0f684f261b1d607aad69542bf404.zip | |
Add test rule to clear device vpns
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 |
