summaryrefslogtreecommitdiffhomepage
path: root/android/app/src/androidTest
diff options
context:
space:
mode:
Diffstat (limited to 'android/app/src/androidTest')
-rw-r--r--android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogScreenTest.kt (renamed from android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/dialog/ChangelogDialogTest.kt)30
-rw-r--r--android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreenTest.kt34
2 files changed, 53 insertions, 11 deletions
diff --git a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/dialog/ChangelogDialogTest.kt b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogScreenTest.kt
index b811209d1c..968f16eb29 100644
--- a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/dialog/ChangelogDialogTest.kt
+++ b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogScreenTest.kt
@@ -1,8 +1,7 @@
-package net.mullvad.mullvadvpn.compose.dialog
+package net.mullvad.mullvadvpn.compose.screen
import androidx.compose.ui.test.ExperimentalTestApi
import androidx.compose.ui.test.onNodeWithText
-import androidx.compose.ui.test.performClick
import de.mannodermaus.junit5.compose.ComposeContext
import io.mockk.MockKAnnotations
import io.mockk.impl.annotations.MockK
@@ -15,7 +14,7 @@ import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.RegisterExtension
@OptIn(ExperimentalTestApi::class)
-class ChangelogDialogTest {
+class ChangelogScreenTest {
@JvmField @RegisterExtension val composeExtension = createEdgeToEdgeComposeExtension()
@MockK lateinit var mockedViewModel: AppInfoViewModel
@@ -25,29 +24,38 @@ class ChangelogDialogTest {
MockKAnnotations.init(this)
}
- private fun ComposeContext.initDialog(state: ChangelogUiState, onDismiss: () -> Unit = {}) {
- setContentWithTheme { ChangelogDialog(state = state, onDismiss = onDismiss) }
+ private fun ComposeContext.initScreen(
+ state: ChangelogUiState,
+ onSeeFullChangelog: () -> Unit = {},
+ onBackClick: () -> Unit = {},
+ ) {
+ setContentWithTheme {
+ ChangelogScreen(
+ state = state,
+ onSeeFullChangelog = onSeeFullChangelog,
+ onBackClick = onBackClick,
+ )
+ }
}
@Test
fun testShowChangeLogWhenNeeded() =
composeExtension.use {
// Arrange
- initDialog(
+ initScreen(
state =
ChangelogUiState(changes = listOf(CHANGELOG_ITEM), version = CHANGELOG_VERSION),
- onDismiss = {},
+ onBackClick = {},
)
+ // Check changelog version shown
+ onNodeWithText(CHANGELOG_VERSION).assertExists()
+
// Check changelog content showed within dialog
onNodeWithText(CHANGELOG_ITEM).assertExists()
-
- // perform click on Got It button to check if dismiss occur
- onNodeWithText(CHANGELOG_BUTTON_TEXT).performClick()
}
companion object {
- private const val CHANGELOG_BUTTON_TEXT = "Got it!"
private const val CHANGELOG_ITEM = "Changelog item"
private const val CHANGELOG_VERSION = "1234.5"
}
diff --git a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreenTest.kt b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreenTest.kt
index 59357d0527..0cdc8b8fe7 100644
--- a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreenTest.kt
+++ b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreenTest.kt
@@ -17,6 +17,7 @@ import net.mullvad.mullvadvpn.compose.test.CIRCULAR_PROGRESS_INDICATOR
import net.mullvad.mullvadvpn.compose.test.CONNECT_BUTTON_TEST_TAG
import net.mullvad.mullvadvpn.compose.test.CONNECT_CARD_HEADER_TEST_TAG
import net.mullvad.mullvadvpn.compose.test.NOTIFICATION_BANNER_ACTION
+import net.mullvad.mullvadvpn.compose.test.NOTIFICATION_BANNER_TEXT_ACTION
import net.mullvad.mullvadvpn.compose.test.RECONNECT_BUTTON_TEST_TAG
import net.mullvad.mullvadvpn.compose.test.SELECT_LOCATION_BUTTON_TEST_TAG
import net.mullvad.mullvadvpn.compose.test.TOP_BAR_ACCOUNT_BUTTON
@@ -53,6 +54,7 @@ class ConnectScreenTest {
unmockkAll()
}
+ @Suppress("LongParameterList")
private fun ComposeContext.initScreen(
state: ConnectUiState = ConnectUiState.INITIAL,
onDisconnectClick: () -> Unit = {},
@@ -65,6 +67,8 @@ class ConnectScreenTest {
onSettingsClick: () -> Unit = {},
onAccountClick: () -> Unit = {},
onDismissNewDeviceClick: () -> Unit = {},
+ onChangelogClick: () -> Unit = {},
+ onDismissChangelogClick: () -> Unit = {},
) {
setContentWithTheme {
ConnectScreen(
@@ -79,6 +83,8 @@ class ConnectScreenTest {
onSettingsClick = onSettingsClick,
onAccountClick = onAccountClick,
onDismissNewDeviceClick = onDismissNewDeviceClick,
+ onChangelogClick = onChangelogClick,
+ onDismissChangelogClick = onDismissChangelogClick,
)
}
}
@@ -632,6 +638,34 @@ class ConnectScreenTest {
}
@Test
+ fun testOnNewChangelogMessageClick() {
+ composeExtension.use {
+ // Arrange
+ val mockedClickHandler: () -> Unit = mockk(relaxed = true)
+ initScreen(
+ onChangelogClick = mockedClickHandler,
+ state =
+ ConnectUiState(
+ location = null,
+ selectedRelayItemTitle = null,
+ tunnelState = TunnelState.Connecting(null, null, emptyList()),
+ showLocation = false,
+ deviceName = "",
+ daysLeftUntilExpiry = null,
+ inAppNotification = InAppNotification.NewVersionChangelog,
+ isPlayBuild = false,
+ ),
+ )
+
+ // Act
+ onNodeWithTag(NOTIFICATION_BANNER_TEXT_ACTION).performClick()
+
+ // Assert
+ verify { mockedClickHandler.invoke() }
+ }
+ }
+
+ @Test
fun testOpenAccountView() {
composeExtension.use {
// Arrange