summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2023-03-16 16:29:51 +0100
committerAlbin <albin@mullvad.net>2023-03-16 16:29:58 +0100
commitc7d71aa52d1ec70c399fa0cd9125940def86e66c (patch)
treeb0448868d7a25b4fd8b5c2c39bff0e39f357ea86 /android
parent38a9c3d9b706173e0a3bbfabc5bf9da5a6e205c9 (diff)
downloadmullvadvpn-c7d71aa52d1ec70c399fa0cd9125940def86e66c.tar.xz
mullvadvpn-c7d71aa52d1ec70c399fa0cd9125940def86e66c.zip
Fix notification permission behavior and test
Diffstat (limited to 'android')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt2
-rw-r--r--android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/extension/UiAutomatorExtensions.kt4
-rw-r--r--android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/LoginMockApiTest.kt4
3 files changed, 9 insertions, 1 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt
index 7852d0b9f6..7401ed9f68 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/MainActivity.kt
@@ -114,7 +114,6 @@ open class MainActivity : FragmentActivity() {
initializeStateHandlerAndServiceConnection(
apiEndpointConfiguration = intent?.getApiEndpointConfigurationExtras()
)
- checkForNotificationPermission()
} else {
openPrivacyDisclaimerFragment()
}
@@ -124,6 +123,7 @@ open class MainActivity : FragmentActivity() {
apiEndpointConfiguration: ApiEndpointConfiguration?
) {
launchDeviceStateHandler()
+ checkForNotificationPermission()
serviceConnectionManager.bind(
vpnPermissionRequestHandler = ::requestVpnPermission,
apiEndpointConfiguration = apiEndpointConfiguration
diff --git a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/extension/UiAutomatorExtensions.kt b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/extension/UiAutomatorExtensions.kt
index cb953b920e..59905d72e2 100644
--- a/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/extension/UiAutomatorExtensions.kt
+++ b/android/test/common/src/main/kotlin/net/mullvad/mullvadvpn/test/common/extension/UiAutomatorExtensions.kt
@@ -36,6 +36,10 @@ fun UiDevice.findObjectWithTimeout(
}
}
+fun UiDevice.clickAgreeOnPrivacyDisclaimer() {
+ findObjectWithTimeout(By.text("Agree and continue")).click()
+}
+
fun UiDevice.clickAllowOnNotificationPermissionPromptIfApiLevel31AndAbove(
timeout: Long = DEFAULT_INTERACTION_TIMEOUT
) {
diff --git a/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/LoginMockApiTest.kt b/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/LoginMockApiTest.kt
index ef118d35e2..c6a9c3478a 100644
--- a/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/LoginMockApiTest.kt
+++ b/android/test/mockapi/src/main/kotlin/net/mullvad/mullvadvpn/test/mockapi/LoginMockApiTest.kt
@@ -2,6 +2,7 @@ package net.mullvad.mullvadvpn.test.mockapi
import androidx.test.runner.AndroidJUnit4
import androidx.test.uiautomator.By
+import net.mullvad.mullvadvpn.test.common.extension.clickAgreeOnPrivacyDisclaimer
import net.mullvad.mullvadvpn.test.common.extension.clickAllowOnNotificationPermissionPromptIfApiLevel31AndAbove
import net.mullvad.mullvadvpn.test.common.extension.findObjectWithTimeout
import net.mullvad.mullvadvpn.test.mockapi.util.currentUtcTimeWithOffsetZero
@@ -21,6 +22,7 @@ class LoginMockApiTest : MockApiTest() {
app.launch(endpoint)
// Act
+ device.clickAgreeOnPrivacyDisclaimer()
device.clickAllowOnNotificationPermissionPromptIfApiLevel31AndAbove()
app.waitForLoginPrompt()
app.attemptLogin(validAccountToken)
@@ -40,6 +42,7 @@ class LoginMockApiTest : MockApiTest() {
// Act
app.launch(endpoint)
+ device.clickAgreeOnPrivacyDisclaimer()
device.clickAllowOnNotificationPermissionPromptIfApiLevel31AndAbove()
app.waitForLoginPrompt()
app.attemptLogin(validAccountToken)
@@ -59,6 +62,7 @@ class LoginMockApiTest : MockApiTest() {
// Act
app.launch(endpoint)
+ device.clickAgreeOnPrivacyDisclaimer()
device.clickAllowOnNotificationPermissionPromptIfApiLevel31AndAbove()
app.waitForLoginPrompt()
app.attemptLogin(validAccountToken)