diff options
| author | David Göransson <david.goransson@mullvad.net> | 2024-11-18 11:47:19 +0100 |
|---|---|---|
| committer | David Göransson <david.goransson@mullvad.net> | 2024-11-18 11:47:19 +0100 |
| commit | 7d76afdaaf12b3fa7f8bd7930a8d105379d165f1 (patch) | |
| tree | 73cb9eab1305d8d0a8cd06a492e6f070e53e0f59 /android/test/e2e | |
| parent | 13762774687abf4d68c17e36d1cbb105b0a098d2 (diff) | |
| parent | b14b0bf4dead7538af5f04409318e282ed06e1af (diff) | |
| download | mullvadvpn-7d76afdaaf12b3fa7f8bd7930a8d105379d165f1.tar.xz mullvadvpn-7d76afdaaf12b3fa7f8bd7930a8d105379d165f1.zip | |
Merge branch 'verify-that-leak-test-catch-leaks-droid-1458'
Diffstat (limited to 'android/test/e2e')
6 files changed, 32 insertions, 17 deletions
diff --git a/android/test/e2e/build.gradle.kts b/android/test/e2e/build.gradle.kts index e8c5cae6d5..4b1b2b9d60 100644 --- a/android/test/e2e/build.gradle.kts +++ b/android/test/e2e/build.gradle.kts @@ -24,15 +24,17 @@ android { targetProjectPath = ":app" fun Properties.addRequiredPropertyAsBuildConfigField(name: String) { - val value = getProperty(name) ?: throw GradleException("Missing property: $name") + val value = + System.getenv(name) + ?: getProperty(name) + ?: throw GradleException("Missing property: $name") + buildConfigField(type = "String", name = name, value = "\"$value\"") } Properties().apply { load(project.file("e2e.properties").inputStream()) addRequiredPropertyAsBuildConfigField("API_VERSION") - addRequiredPropertyAsBuildConfigField("ENABLE_HIGHLY_RATE_LIMITED_TESTS") - addRequiredPropertyAsBuildConfigField("ENABLE_ACCESS_TO_LOCAL_API_TESTS") addRequiredPropertyAsBuildConfigField("TRAFFIC_GENERATION_IP_ADDRESS") addRequiredPropertyAsBuildConfigField("PACKET_CAPTURE_API_HOST") } @@ -50,6 +52,8 @@ android { testInstrumentationRunnerArguments += mutableMapOf<String, String>().apply { put("clearPackageData", "true") + addOptionalPropertyAsArgument("enable_access_to_local_api_tests") + addOptionalPropertyAsArgument("enable_highly_rate_limited_tests") addOptionalPropertyAsArgument("valid_test_account_number") addOptionalPropertyAsArgument("invalid_test_account_number") } diff --git a/android/test/e2e/e2e.properties b/android/test/e2e/e2e.properties index 5f880bd2c1..db9bdd29a5 100644 --- a/android/test/e2e/e2e.properties +++ b/android/test/e2e/e2e.properties @@ -1,5 +1,3 @@ API_VERSION=v1 -ENABLE_HIGHLY_RATE_LIMITED_TESTS=false -ENABLE_ACCESS_TO_LOCAL_API_TESTS=false TRAFFIC_GENERATION_IP_ADDRESS=45.83.223.209 PACKET_CAPTURE_API_HOST=192.168.105.1 diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LeakTest.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LeakTest.kt index df2c3c0e15..406671d346 100644 --- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LeakTest.kt +++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LeakTest.kt @@ -62,9 +62,9 @@ class LeakTest : EndToEndTest(BuildConfig.FLAVOR_infrastructure) { val targetPort = 80 device.findObjectWithTimeout(By.res(SELECT_LOCATION_BUTTON_TEST_TAG)).click() - clickLocationExpandButton((EndToEndTest.DEFAULT_COUNTRY)) - clickLocationExpandButton((EndToEndTest.DEFAULT_CITY)) - device.findObjectWithTimeout(By.text(EndToEndTest.DEFAULT_RELAY)).click() + clickLocationExpandButton(DEFAULT_COUNTRY) + clickLocationExpandButton(DEFAULT_CITY) + device.findObjectWithTimeout(By.text(DEFAULT_RELAY)).click() device.findObjectWithTimeout(By.text("OK")).click() device.findObjectWithTimeout(By.text("CONNECTED"), VERY_LONG_TIMEOUT) @@ -100,9 +100,9 @@ class LeakTest : EndToEndTest(BuildConfig.FLAVOR_infrastructure) { device.findObjectWithTimeout(By.res(SELECT_LOCATION_BUTTON_TEST_TAG)).click() delay(1000.milliseconds) - clickLocationExpandButton((EndToEndTest.DEFAULT_COUNTRY)) - clickLocationExpandButton((EndToEndTest.DEFAULT_CITY)) - device.findObjectWithTimeout(By.text(EndToEndTest.DEFAULT_RELAY)).click() + clickLocationExpandButton(DEFAULT_COUNTRY) + clickLocationExpandButton(DEFAULT_CITY) + device.findObjectWithTimeout(By.text(DEFAULT_RELAY)).click() device.findObjectWithTimeout(By.text("OK")).click() device.findObjectWithTimeout(By.text("CONNECTED"), VERY_LONG_TIMEOUT) diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/annotations/HasDependencyOnLocalAPI.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/annotations/HasDependencyOnLocalAPI.kt index 9aa876abcd..c6c9a70ee9 100644 --- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/annotations/HasDependencyOnLocalAPI.kt +++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/annotations/HasDependencyOnLocalAPI.kt @@ -1,6 +1,8 @@ package net.mullvad.mullvadvpn.test.e2e.annotations -import net.mullvad.mullvadvpn.test.e2e.BuildConfig +import androidx.test.platform.app.InstrumentationRegistry +import net.mullvad.mullvadvpn.test.e2e.constant.ENABLE_ACCESS_TO_LOCAL_API_TESTS +import net.mullvad.mullvadvpn.test.e2e.extension.getRequiredArgument import org.junit.jupiter.api.extension.ConditionEvaluationResult import org.junit.jupiter.api.extension.ExecutionCondition import org.junit.jupiter.api.extension.ExtendWith @@ -17,7 +19,11 @@ annotation class HasDependencyOnLocalAPI { override fun evaluateExecutionCondition( context: ExtensionContext? ): ConditionEvaluationResult { - val enable = BuildConfig.ENABLE_ACCESS_TO_LOCAL_API_TESTS.toBoolean() ?: false + + val enable = + InstrumentationRegistry.getArguments() + .getRequiredArgument(ENABLE_ACCESS_TO_LOCAL_API_TESTS) + .toBoolean() return if (enable) { ConditionEvaluationResult.enabled( diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/annotations/HighlyRateLimited.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/annotations/HighlyRateLimited.kt index 27b139a5a8..12280fcaf1 100644 --- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/annotations/HighlyRateLimited.kt +++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/annotations/HighlyRateLimited.kt @@ -1,6 +1,8 @@ package net.mullvad.mullvadvpn.test.e2e.annotations -import net.mullvad.mullvadvpn.test.e2e.BuildConfig +import androidx.test.platform.app.InstrumentationRegistry +import net.mullvad.mullvadvpn.test.e2e.constant.ENABLE_HIGHLY_RATE_LIMITED_TESTS +import net.mullvad.mullvadvpn.test.e2e.extension.getRequiredArgument import org.junit.jupiter.api.extension.ConditionEvaluationResult import org.junit.jupiter.api.extension.ExecutionCondition import org.junit.jupiter.api.extension.ExtendWith @@ -17,10 +19,12 @@ annotation class HighlyRateLimited { override fun evaluateExecutionCondition( context: ExtensionContext? ): ConditionEvaluationResult { - val enableHighlyRateLimited = - BuildConfig.ENABLE_HIGHLY_RATE_LIMITED_TESTS.toBoolean() ?: false + val enable = + InstrumentationRegistry.getArguments() + .getRequiredArgument(ENABLE_HIGHLY_RATE_LIMITED_TESTS) + .toBoolean() - return if (enableHighlyRateLimited) { + return if (enable) { ConditionEvaluationResult.enabled("Running test highly affected by rate limiting.") } else { ConditionEvaluationResult.disabled( diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/Constants.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/Constants.kt index baf3dcae3d..0c221f8ddf 100644 --- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/Constants.kt +++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/Constants.kt @@ -4,3 +4,6 @@ const val LOG_TAG = "mullvad-e2e" const val PARTNER_AUTH = "partner_auth" const val VALID_TEST_ACCOUNT_NUMBER_ARGUMENT_KEY = "valid_test_account_number" const val INVALID_TEST_ACCOUNT_NUMBER_ARGUMENT_KEY = "invalid_test_account_number" + +const val ENABLE_ACCESS_TO_LOCAL_API_TESTS = "enable_access_to_local_api_tests" +const val ENABLE_HIGHLY_RATE_LIMITED_TESTS = "enable_highly_rate_limited_tests" |
