summaryrefslogtreecommitdiffhomepage
path: root/android/test/common/src
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2024-01-17 09:32:09 +0100
committerAlbin <albin@mullvad.net>2024-01-18 17:12:06 +0100
commitd0b0cdc8814334fc9ae008a44901e7a8c3de826c (patch)
treecbedc95e1c72fb61157e3bdf5b3a87ad27c8ae85 /android/test/common/src
parent8f8e8c4699237ce6f254c0d6b7f02657dc4224ca (diff)
downloadmullvadvpn-d0b0cdc8814334fc9ae008a44901e7a8c3de826c.tar.xz
mullvadvpn-d0b0cdc8814334fc9ae008a44901e7a8c3de826c.zip
Add annotation to skip test for certain flavors
This makes it possible to skip certain tests that might not be supported across all flavors. For example tests that relate to whether a flavor is targeted to Google Play and therefore either include or exclude certain functionality of the app.
Diffstat (limited to 'android/test/common/src')
-rw-r--r--android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/annotation/SkipForFlavors.kt25
1 files changed, 25 insertions, 0 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}"
+ )
+ }
+ }
+ }
+}