summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorKalle Lindström <karl.lindstrom@mullvad.net>2025-08-14 10:37:25 +0200
committerKalle Lindström <karl.lindstrom@mullvad.net>2025-08-14 10:37:25 +0200
commita4d9c4627ab91bc98d783b5a56f5c72b487ebe5f (patch)
tree4cbbae079b6f14ae2d03842fd31c41d6ef639371 /android
parentfe53ad976eb77fffbc845710804e0abd53e99904 (diff)
parent3c6e9d367e93740dc9483fb3dee2ec3beeefb0ce (diff)
downloadmullvadvpn-a4d9c4627ab91bc98d783b5a56f5c72b487ebe5f.tar.xz
mullvadvpn-a4d9c4627ab91bc98d783b5a56f5c72b487ebe5f.zip
Merge branch 'set-relay-selection-to-current-country-on-first-start-droid-2063'
Diffstat (limited to 'android')
-rw-r--r--android/CHANGELOG.md1
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/DefaultLocationTest.kt44
2 files changed, 45 insertions, 0 deletions
diff --git a/android/CHANGELOG.md b/android/CHANGELOG.md
index 0c6b82b3c8..1afbf7c5e8 100644
--- a/android/CHANGELOG.md
+++ b/android/CHANGELOG.md
@@ -25,6 +25,7 @@ Line wrap the file at 100 chars. Th
### Added
- Add list of recent server selections in the select location view.
- Add support for devices with 16KB page size.
+- Set default server based on the current location when the app is started for the first time.
## [android/2025.6] - 2025-08-12
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/DefaultLocationTest.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/DefaultLocationTest.kt
new file mode 100644
index 0000000000..935e1a28a5
--- /dev/null
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/DefaultLocationTest.kt
@@ -0,0 +1,44 @@
+package net.mullvad.mullvadvpn.test.e2e
+
+import java.io.File
+import net.mullvad.mullvadvpn.test.common.page.ConnectPage
+import net.mullvad.mullvadvpn.test.common.page.LoginPage
+import net.mullvad.mullvadvpn.test.common.page.on
+import net.mullvad.mullvadvpn.test.e2e.misc.AccountTestRule
+import org.json.JSONObject
+import org.junit.jupiter.api.Assertions.assertFalse
+import org.junit.jupiter.api.Test
+import org.junit.jupiter.api.extension.RegisterExtension
+
+class DefaultLocationTest : EndToEndTest() {
+
+ @RegisterExtension @JvmField val accountTestRule = AccountTestRule()
+
+ @Test
+ fun testUpdateDefaultLocationFlag() {
+ app.launchAndEnsureOnLoginPage()
+
+ // The update_default_location flag should be set to true when first starting the app
+ assert(readUpdateDefaultLocationKeyFromSettings())
+
+ on<LoginPage> {
+ enterAccountNumber(accountTestRule.validAccountNumber)
+ clickLoginButton()
+ }
+
+ on<ConnectPage>()
+
+ // After we have logged in the daemon will have set the new default location so the
+ // flag should be false.
+ assertFalse(readUpdateDefaultLocationKeyFromSettings())
+ }
+
+ private fun readUpdateDefaultLocationKeyFromSettings(): Boolean {
+ val settings = File(targetApplication.filesDir, "settings.json")
+ if (!settings.isFile()) error("settings.json does not exist")
+
+ val text = settings.readText()
+ val json = JSONObject(text)
+ return json.getBoolean("update_default_location")
+ }
+}