summaryrefslogtreecommitdiffhomepage
path: root/android/test/common
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2024-01-18 22:36:40 +0100
committerAlbin <albin@mullvad.net>2024-01-18 22:36:40 +0100
commit6e7f6eb0b99b7c1b2bf700f4ea92337065e2903f (patch)
tree253c6af0397a20b46646cfab7f6ac6d9d563f208 /android/test/common
parent8f8e8c4699237ce6f254c0d6b7f02657dc4224ca (diff)
parent9157306570bdb1c11850d5e30222504f86f2ba79 (diff)
downloadmullvadvpn-6e7f6eb0b99b7c1b2bf700f4ea92337065e2903f.tar.xz
mullvadvpn-6e7f6eb0b99b7c1b2bf700f4ea92337065e2903f.zip
Merge branch 'run-stagemole-connect-test-in-firebase-droid-593'
Diffstat (limited to 'android/test/common')
-rw-r--r--android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/annotation/SkipForFlavors.kt25
-rw-r--r--android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/constant/AppConstants.kt6
-rw-r--r--android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/interactor/AppInteractor.kt11
3 files changed, 32 insertions, 10 deletions
diff --git a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/annotation/SkipForFlavors.kt b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/annotation/SkipForFlavors.kt
new file mode 100644
index 0000000000..f1d3a990a1
--- /dev/null
+++ b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/annotation/SkipForFlavors.kt
@@ -0,0 +1,25 @@
+package net.mullvad.mullvadvpn.test.common.annotation
+
+import org.junit.jupiter.api.extension.ConditionEvaluationResult
+import org.junit.jupiter.api.extension.ExecutionCondition
+import org.junit.jupiter.api.extension.ExtendWith
+import org.junit.jupiter.api.extension.ExtensionContext
+
+@Retention(AnnotationRetention.RUNTIME)
+@ExtendWith(SkipForFlavors.FlavorCondition::class)
+annotation class SkipForFlavors(val currentFlavor: String, vararg val skipForFlavors: String) {
+ class FlavorCondition : ExecutionCondition {
+ override fun evaluateExecutionCondition(p0: ExtensionContext?): ConditionEvaluationResult {
+ val annotation = p0?.element?.get()?.getAnnotation(SkipForFlavors::class.java)
+ return if (annotation?.skipForFlavors?.contains(annotation.currentFlavor) == true) {
+ ConditionEvaluationResult.disabled(
+ "Skipping test for flavor: ${annotation.currentFlavor}"
+ )
+ } else {
+ ConditionEvaluationResult.enabled(
+ "Running test for flavor: ${annotation?.currentFlavor}"
+ )
+ }
+ }
+ }
+}
diff --git a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/constant/AppConstants.kt b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/constant/AppConstants.kt
deleted file mode 100644
index 05b47ef99b..0000000000
--- a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/constant/AppConstants.kt
+++ /dev/null
@@ -1,6 +0,0 @@
-package net.mullvad.mullvadvpn.test.common.constant
-
-const val MULLVAD_PACKAGE = "net.mullvad.mullvadvpn"
-const val SETTINGS_COG_ID = "net.mullvad.mullvadvpn:id/settings"
-const val TUNNEL_INFO_ID = "net.mullvad.mullvadvpn:id/tunnel_info"
-const val TUNNEL_OUT_ADDRESS_ID = "net.mullvad.mullvadvpn:id/out_address"
diff --git a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/interactor/AppInteractor.kt b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/interactor/AppInteractor.kt
index 1608f28bcf..fd976887ce 100644
--- a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/interactor/AppInteractor.kt
+++ b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/interactor/AppInteractor.kt
@@ -13,12 +13,15 @@ import net.mullvad.mullvadvpn.test.common.constant.CONNECTION_TIMEOUT
import net.mullvad.mullvadvpn.test.common.constant.DEFAULT_INTERACTION_TIMEOUT
import net.mullvad.mullvadvpn.test.common.constant.LOGIN_PROMPT_TIMEOUT
import net.mullvad.mullvadvpn.test.common.constant.LOGIN_TIMEOUT
-import net.mullvad.mullvadvpn.test.common.constant.MULLVAD_PACKAGE
import net.mullvad.mullvadvpn.test.common.extension.clickAgreeOnPrivacyDisclaimer
import net.mullvad.mullvadvpn.test.common.extension.clickAllowOnNotificationPermissionPromptIfApiLevel33AndAbove
import net.mullvad.mullvadvpn.test.common.extension.findObjectWithTimeout
-class AppInteractor(private val device: UiDevice, private val targetContext: Context) {
+class AppInteractor(
+ private val device: UiDevice,
+ private val targetContext: Context,
+ private val targetPackageName: String
+) {
fun launch(customApiEndpointConfiguration: CustomApiEndpointConfiguration? = null) {
device.pressHome()
// Wait for launcher
@@ -28,7 +31,7 @@ class AppInteractor(private val device: UiDevice, private val targetContext: Con
)
val intent =
- targetContext.packageManager.getLaunchIntentForPackage(MULLVAD_PACKAGE)?.apply {
+ targetContext.packageManager.getLaunchIntentForPackage(targetPackageName)?.apply {
// Clear out any previous instances
addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
if (customApiEndpointConfiguration != null) {
@@ -36,7 +39,7 @@ class AppInteractor(private val device: UiDevice, private val targetContext: Con
}
}
targetContext.startActivity(intent)
- device.wait(Until.hasObject(By.pkg(MULLVAD_PACKAGE).depth(0)), APP_LAUNCH_TIMEOUT)
+ device.wait(Until.hasObject(By.pkg(targetPackageName).depth(0)), APP_LAUNCH_TIMEOUT)
}
fun launchAndEnsureLoggedIn(accountToken: String) {