summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2024-01-17 09:38:30 +0100
committerAlbin <albin@mullvad.net>2024-01-18 17:12:06 +0100
commit2d1936ed2d9ff861c431a97ced0e1827da95292d (patch)
treee581ff620eb3a9dd4266d178dacd0b5a56cb0afc
parent37510634404d59295d1b2cfebd742973d9cfa20b (diff)
downloadmullvadvpn-2d1936ed2d9ff861c431a97ced0e1827da95292d.tar.xz
mullvadvpn-2d1936ed2d9ff861c431a97ced0e1827da95292d.zip
Add flavor support to e2e and mockapi tests
-rw-r--r--android/buildSrc/src/main/kotlin/BuildVariants.kt6
-rw-r--r--android/test/e2e/build.gradle.kts42
-rw-r--r--android/test/mockapi/build.gradle.kts7
3 files changed, 51 insertions, 4 deletions
diff --git a/android/buildSrc/src/main/kotlin/BuildVariants.kt b/android/buildSrc/src/main/kotlin/BuildVariants.kt
index c3ad7c6e76..4595cf5b9d 100644
--- a/android/buildSrc/src/main/kotlin/BuildVariants.kt
+++ b/android/buildSrc/src/main/kotlin/BuildVariants.kt
@@ -46,3 +46,9 @@ val enabledAppVariantTriples =
Triple(PLAY, STAGEMOLE, DEBUG),
Triple(PLAY, STAGEMOLE, RELEASE)
)
+
+val enabledE2eVariantTriples =
+ listOf(
+ Triple(OSS, PROD, DEBUG),
+ Triple(PLAY, STAGEMOLE, DEBUG)
+ )
diff --git a/android/test/e2e/build.gradle.kts b/android/test/e2e/build.gradle.kts
index 946e8effa9..8440967aa9 100644
--- a/android/test/e2e/build.gradle.kts
+++ b/android/test/e2e/build.gradle.kts
@@ -1,5 +1,6 @@
import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties
import java.util.Properties
+import org.gradle.configurationcache.extensions.capitalized
plugins {
id(Dependencies.Plugin.androidTestId)
@@ -19,9 +20,6 @@ android {
"de.mannodermaus.junit5.AndroidJUnit5Builder"
targetProjectPath = ":app"
- missingDimensionStrategy(FlavorDimensions.BILLING, Flavors.OSS)
- missingDimensionStrategy(FlavorDimensions.INFRASTRUCTURE, Flavors.PROD)
-
fun Properties.addRequiredPropertyAsBuildConfigField(name: String) {
val value = getProperty(name) ?: throw GradleException("Missing property: $name")
buildConfigField(type = "String", name = name, value = "\"$value\"")
@@ -29,7 +27,6 @@ android {
Properties().apply {
load(project.file("e2e.properties").inputStream())
- addRequiredPropertyAsBuildConfigField("API_BASE_URL")
addRequiredPropertyAsBuildConfigField("API_VERSION")
}
@@ -51,6 +48,30 @@ android {
}
}
+ flavorDimensions += FlavorDimensions.BILLING
+ flavorDimensions += FlavorDimensions.INFRASTRUCTURE
+
+ productFlavors {
+ create(Flavors.OSS) { dimension = FlavorDimensions.BILLING }
+ create(Flavors.PLAY) { dimension = FlavorDimensions.BILLING }
+ create(Flavors.PROD) {
+ dimension = FlavorDimensions.INFRASTRUCTURE
+ buildConfigField(
+ type = "String",
+ name = "INFRASTRUCTURE_BASE_DOMAIN",
+ value = "\"mullvad.net\""
+ )
+ }
+ create(Flavors.STAGEMOLE) {
+ dimension = FlavorDimensions.INFRASTRUCTURE
+ buildConfigField(
+ type = "String",
+ name = "INFRASTRUCTURE_BASE_DOMAIN",
+ value = "\"stagemole.eu\""
+ )
+ }
+ }
+
testOptions { execution = "ANDROIDX_TEST_ORCHESTRATOR" }
compileOptions {
@@ -78,6 +99,19 @@ android {
}
}
+androidComponents {
+ beforeVariants { variantBuilder ->
+ variantBuilder.enable =
+ variantBuilder.let { currentVariant ->
+ val enabledVariants =
+ enabledE2eVariantTriples.map { (billing, infra, buildType) ->
+ billing + infra.capitalized() + buildType.capitalized()
+ }
+ enabledVariants.contains(currentVariant.name)
+ }
+ }
+}
+
configure<org.owasp.dependencycheck.gradle.extension.DependencyCheckExtension> {
// Skip the lintClassPath configuration, which relies on many dependencies that has been flagged
// to have CVEs, as it's related to the lint tooling rather than the project's compilation class
diff --git a/android/test/mockapi/build.gradle.kts b/android/test/mockapi/build.gradle.kts
index 3fea2d5d60..5c88d90d82 100644
--- a/android/test/mockapi/build.gradle.kts
+++ b/android/test/mockapi/build.gradle.kts
@@ -26,6 +26,13 @@ android {
)
}
+ flavorDimensions += FlavorDimensions.BILLING
+
+ productFlavors {
+ create(Flavors.OSS) { dimension = FlavorDimensions.BILLING }
+ create(Flavors.PLAY) { dimension = FlavorDimensions.BILLING }
+ }
+
testOptions { execution = "ANDROIDX_TEST_ORCHESTRATOR" }
compileOptions {