summaryrefslogtreecommitdiffhomepage
path: root/android/test/e2e
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2024-06-07 18:51:56 +0200
committerAlbin <albin@mullvad.net>2024-06-10 10:36:18 +0200
commitf937ea54f41f947de8ddd606f6071f191fb1cdfb (patch)
treeab5be555271de269a199dcfae85d6050610415b3 /android/test/e2e
parent561c4d8262fde4d70c13fb1de0642bee521fbbe3 (diff)
downloadmullvadvpn-f937ea54f41f947de8ddd606f6071f191fb1cdfb.tar.xz
mullvadvpn-f937ea54f41f947de8ddd606f6071f191fb1cdfb.zip
Unify account number naming
Use variations of "account number" rather than "account token" throughout the kotlin code base.
Diffstat (limited to 'android/test/e2e')
-rw-r--r--android/test/e2e/README.md16
-rw-r--r--android/test/e2e/build.gradle.kts4
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LoginTest.kt8
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/Constants.kt4
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/interactor/MullvadAccountInteractor.kt4
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/AccountTestRule.kt8
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/CleanupAccountTestRule.kt8
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/SimpleMullvadHttpClient.kt10
8 files changed, 31 insertions, 31 deletions
diff --git a/android/test/e2e/README.md b/android/test/e2e/README.md
index 7c1271ad97..be41a83341 100644
--- a/android/test/e2e/README.md
+++ b/android/test/e2e/README.md
@@ -7,14 +7,14 @@ The tests in this module are end-to-end tests that rely on the publicly accessib
Set tokens in the below command and then execute the command in the `android` directory to run the tests on a local device:
```
./gradlew :test:e2e:connectedDebugAndroidTest \
- -Pvalid_test_account_token=XXXX \
- -Pinvalid_test_account_token=XXXX
+ -Pvalid_test_account_number=XXXX \
+ -Pinvalid_test_account_number=XXXX
```
For convenience, the tokens can also be set in `<REPO-ROOT>/android/local.properties` in the following way:
```
-valid_test_account_token=XXXX
-invalid_test_account_token=XXXX
+valid_test_account_number=XXXX
+invalid_test_account_number=XXXX
```
It's also possible to provide the tokens to the test runner during test execution. However note that this requires [the APKs to be installed manually](https://developer.android.com/training/testing/instrumented-tests/androidx-test-libraries/runner#architecture).
@@ -22,8 +22,8 @@ It's also possible to provide the tokens to the test runner during test executio
adb shell 'CLASSPATH=$(pm path androidx.test.services) app_process / \
androidx.test.services.shellexecutor.ShellMain am instrument -w \
-e clearPackageData true \
- -e valid_test_account_token XXXX \
- -e invalid_test_account_token XXXX \
+ -e valid_test_account_number XXXX \
+ -e invalid_test_account_number XXXX \
-e targetInstrumentation net.mullvad.mullvadvpn.test.e2e/androidx.test.runner.AndroidJUnitRunner \
androidx.test.orchestrator/.AndroidTestOrchestrator'
```
@@ -41,7 +41,7 @@ gcloud firebase test android run \
--test ./android/test/e2e/build/outputs/apk/debug/e2e-debug.apk \
--device model=redfin,version=30,locale=en,orientation=portrait \
--use-orchestrator \
- --environment-variables clearPackageData=true,valid_test_account_token=XXXX,invalid_test_account_token=XXXX
+ --environment-variables clearPackageData=true,valid_test_account_number=XXXX,invalid_test_account_number=XXXX
```
If using gcloud via the docker image, the following can be executed in the `android` directory to run the tests (on a Pixel 5e):
@@ -52,5 +52,5 @@ docker run --rm --volumes-from gcloud-config -v ${PWD}:/android gcr.io/google.co
--test ./android/test/e2e/build/outputs/apk/debug/e2e-debug.apk \
--device model=redfin,version=30,locale=en,orientation=portrait \
--use-orchestrator \
- --environment-variables clearPackageData=true,valid_test_account_token=XXXX,invalid_test_account_token=XXXX
+ --environment-variables clearPackageData=true,valid_test_account_number=XXXX,invalid_test_account_number=XXXX
```
diff --git a/android/test/e2e/build.gradle.kts b/android/test/e2e/build.gradle.kts
index 161e73b510..ce80697240 100644
--- a/android/test/e2e/build.gradle.kts
+++ b/android/test/e2e/build.gradle.kts
@@ -43,8 +43,8 @@ android {
testInstrumentationRunnerArguments +=
mutableMapOf<String, String>().apply {
put("clearPackageData", "true")
- addOptionalPropertyAsArgument("valid_test_account_token")
- addOptionalPropertyAsArgument("invalid_test_account_token")
+ addOptionalPropertyAsArgument("valid_test_account_number")
+ addOptionalPropertyAsArgument("invalid_test_account_number")
}
}
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LoginTest.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LoginTest.kt
index 9380589709..2efb299246 100644
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LoginTest.kt
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LoginTest.kt
@@ -17,10 +17,10 @@ class LoginTest : EndToEndTest(BuildConfig.FLAVOR_infrastructure) {
@Test
fun testLoginWithValidCredentials() {
// Given
- val validTestAccountToken = accountTestRule.validAccountNumber
+ val validTestAccountNumber = accountTestRule.validAccountNumber
// When
- app.launchAndEnsureLoggedIn(validTestAccountToken)
+ app.launchAndEnsureLoggedIn(validTestAccountNumber)
// Then
app.ensureLoggedIn()
@@ -30,14 +30,14 @@ class LoginTest : EndToEndTest(BuildConfig.FLAVOR_infrastructure) {
@Disabled("Disabled to avoid getting rate-limited.")
fun testLoginWithInvalidCredentials() {
// Given
- val invalidDummyAccountToken = accountTestRule.invalidAccountNumber
+ val invalidDummyAccountNumber = accountTestRule.invalidAccountNumber
// When
app.launch()
device.clickAgreeOnPrivacyDisclaimer()
device.clickAllowOnNotificationPermissionPromptIfApiLevel33AndAbove()
app.waitForLoginPrompt()
- app.attemptLogin(invalidDummyAccountToken)
+ app.attemptLogin(invalidDummyAccountNumber)
// Then
device.findObjectWithTimeout(By.text("Invalid account number"), LOGIN_FAILURE_TIMEOUT)
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 dec8f1e07f..baf3dcae3d 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
@@ -2,5 +2,5 @@ package net.mullvad.mullvadvpn.test.e2e.constant
const val LOG_TAG = "mullvad-e2e"
const val PARTNER_AUTH = "partner_auth"
-const val VALID_TEST_ACCOUNT_TOKEN_ARGUMENT_KEY = "valid_test_account_token"
-const val INVALID_TEST_ACCOUNT_TOKEN_ARGUMENT_KEY = "invalid_test_account_token"
+const val VALID_TEST_ACCOUNT_NUMBER_ARGUMENT_KEY = "valid_test_account_number"
+const val INVALID_TEST_ACCOUNT_NUMBER_ARGUMENT_KEY = "invalid_test_account_number"
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/interactor/MullvadAccountInteractor.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/interactor/MullvadAccountInteractor.kt
index 8f3f55166f..59c9b49b91 100644
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/interactor/MullvadAccountInteractor.kt
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/interactor/MullvadAccountInteractor.kt
@@ -4,9 +4,9 @@ import net.mullvad.mullvadvpn.test.e2e.misc.SimpleMullvadHttpClient
class MullvadAccountInteractor(
private val httpClient: SimpleMullvadHttpClient,
- private val testAccountToken: String
+ private val testAccountNumber: String
) {
fun cleanupAccount() {
- httpClient.removeAllDevices(testAccountToken)
+ httpClient.removeAllDevices(testAccountNumber)
}
}
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/AccountTestRule.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/AccountTestRule.kt
index bbd59eba9b..333f4cde88 100644
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/AccountTestRule.kt
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/AccountTestRule.kt
@@ -1,9 +1,9 @@
package net.mullvad.mullvadvpn.test.e2e.misc
import androidx.test.platform.app.InstrumentationRegistry
-import net.mullvad.mullvadvpn.test.e2e.constant.INVALID_TEST_ACCOUNT_TOKEN_ARGUMENT_KEY
+import net.mullvad.mullvadvpn.test.e2e.constant.INVALID_TEST_ACCOUNT_NUMBER_ARGUMENT_KEY
import net.mullvad.mullvadvpn.test.e2e.constant.PARTNER_AUTH
-import net.mullvad.mullvadvpn.test.e2e.constant.VALID_TEST_ACCOUNT_TOKEN_ARGUMENT_KEY
+import net.mullvad.mullvadvpn.test.e2e.constant.VALID_TEST_ACCOUNT_NUMBER_ARGUMENT_KEY
import net.mullvad.mullvadvpn.test.e2e.extension.getRequiredArgument
import org.junit.jupiter.api.extension.BeforeEachCallback
import org.junit.jupiter.api.extension.ExtensionContext
@@ -30,12 +30,12 @@ class AccountTestRule : BeforeEachCallback {
)
} else {
validAccountNumber =
- bundle.getRequiredArgument(VALID_TEST_ACCOUNT_TOKEN_ARGUMENT_KEY)
+ bundle.getRequiredArgument(VALID_TEST_ACCOUNT_NUMBER_ARGUMENT_KEY)
client.removeAllDevices(validAccountNumber)
}
invalidAccountNumber =
- bundle.getRequiredArgument(INVALID_TEST_ACCOUNT_TOKEN_ARGUMENT_KEY)
+ bundle.getRequiredArgument(INVALID_TEST_ACCOUNT_NUMBER_ARGUMENT_KEY)
}
}
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/CleanupAccountTestRule.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/CleanupAccountTestRule.kt
index ba42862397..f79f78e03b 100644
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/CleanupAccountTestRule.kt
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/CleanupAccountTestRule.kt
@@ -3,7 +3,7 @@ package net.mullvad.mullvadvpn.test.e2e.misc
import android.util.Log
import androidx.test.platform.app.InstrumentationRegistry
import net.mullvad.mullvadvpn.test.e2e.constant.LOG_TAG
-import net.mullvad.mullvadvpn.test.e2e.constant.VALID_TEST_ACCOUNT_TOKEN_ARGUMENT_KEY
+import net.mullvad.mullvadvpn.test.e2e.constant.VALID_TEST_ACCOUNT_NUMBER_ARGUMENT_KEY
import net.mullvad.mullvadvpn.test.e2e.extension.getRequiredArgument
import net.mullvad.mullvadvpn.test.e2e.interactor.MullvadAccountInteractor
import org.junit.jupiter.api.extension.BeforeEachCallback
@@ -14,10 +14,10 @@ class CleanupAccountTestRule : BeforeEachCallback {
override fun beforeEach(context: ExtensionContext) {
Log.d(LOG_TAG, "Cleaning up account before test: ${context.requiredTestMethod.name}")
val targetContext = InstrumentationRegistry.getInstrumentation().targetContext
- val validTestAccountToken =
+ val validTestAccountNumber =
InstrumentationRegistry.getArguments()
- .getRequiredArgument(VALID_TEST_ACCOUNT_TOKEN_ARGUMENT_KEY)
- MullvadAccountInteractor(SimpleMullvadHttpClient(targetContext), validTestAccountToken)
+ .getRequiredArgument(VALID_TEST_ACCOUNT_NUMBER_ARGUMENT_KEY)
+ MullvadAccountInteractor(SimpleMullvadHttpClient(targetContext), validTestAccountNumber)
.cleanupAccount()
}
}
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/SimpleMullvadHttpClient.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/SimpleMullvadHttpClient.kt
index dff31b6049..78f5e967e0 100644
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/SimpleMullvadHttpClient.kt
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/SimpleMullvadHttpClient.kt
@@ -22,17 +22,17 @@ class SimpleMullvadHttpClient(context: Context) {
private val queue = Volley.newRequestQueue(context)
- fun removeAllDevices(accountToken: String) {
+ fun removeAllDevices(accountNumber: String) {
Log.v(LOG_TAG, "Remove all devices")
- val token = login(accountToken)
+ val token = login(accountNumber)
val devices = getDeviceList(token)
devices.forEach { removeDevice(token, it) }
Log.v(LOG_TAG, "All devices removed")
}
- fun login(accountToken: String): String {
- Log.v(LOG_TAG, "Attempt login with account token: $accountToken")
- val json = JSONObject().apply { put("account_number", accountToken) }
+ fun login(accountNumber: String): String {
+ Log.v(LOG_TAG, "Attempt login with account token: $accountNumber")
+ val json = JSONObject().apply { put("account_number", accountNumber) }
return sendSimpleSynchronousRequest(Request.Method.POST, AUTH_URL, json)!!.let { response ->
response.getString("access_token").also { accessToken ->
Log.v(LOG_TAG, "Successfully logged in and received access token: $accessToken")