summaryrefslogtreecommitdiffhomepage
path: root/android/app/src/androidTest
diff options
context:
space:
mode:
authorDavid Göransson <david.goransson@mullvad.net>2024-06-04 08:27:30 +0200
committerDavid Göransson <david.goransson@mullvad.net>2024-06-04 08:27:30 +0200
commit45c369fe355a5eadc29dd3e6f492ff6d7430ee5d (patch)
tree70925bd8ab3348533ca7217606ac4c2d42356453 /android/app/src/androidTest
parent3ac0f264402e42a16f0bd6c76e1a6a67e01ed4ef (diff)
parent571c620b51cdc6b4338a3244b500f70e79b3ca7d (diff)
downloadmullvadvpn-45c369fe355a5eadc29dd3e6f492ff6d7430ee5d.tar.xz
mullvadvpn-45c369fe355a5eadc29dd3e6f492ff6d7430ee5d.zip
Merge branch 'add-setting-for-udp2tcp-port-droid-249'
Diffstat (limited to 'android/app/src/androidTest')
-rw-r--r--android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreenTest.kt98
1 files changed, 98 insertions, 0 deletions
diff --git a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreenTest.kt b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreenTest.kt
index ca7a01a0a9..650c51d641 100644
--- a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreenTest.kt
+++ b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreenTest.kt
@@ -8,6 +8,7 @@ import androidx.compose.ui.test.onNodeWithText
import androidx.compose.ui.test.performClick
import androidx.compose.ui.test.performScrollToNode
import io.mockk.MockKAnnotations
+import io.mockk.coVerify
import io.mockk.mockk
import io.mockk.verify
import net.mullvad.mullvadvpn.compose.createEdgeToEdgeComposeExtension
@@ -17,6 +18,8 @@ import net.mullvad.mullvadvpn.compose.test.LAZY_LIST_LAST_ITEM_TEST_TAG
import net.mullvad.mullvadvpn.compose.test.LAZY_LIST_QUANTUM_ITEM_OFF_TEST_TAG
import net.mullvad.mullvadvpn.compose.test.LAZY_LIST_QUANTUM_ITEM_ON_TEST_TAG
import net.mullvad.mullvadvpn.compose.test.LAZY_LIST_TEST_TAG
+import net.mullvad.mullvadvpn.compose.test.LAZY_LIST_UDP_OVER_TCP_PORT_ITEM_X_TEST_TAG
+import net.mullvad.mullvadvpn.compose.test.LAZY_LIST_UDP_OVER_TCP_PORT_TEST_TAG
import net.mullvad.mullvadvpn.compose.test.LAZY_LIST_WIREGUARD_CUSTOM_PORT_NUMBER_TEST_TAG
import net.mullvad.mullvadvpn.compose.test.LAZY_LIST_WIREGUARD_CUSTOM_PORT_TEXT_TEST_TAG
import net.mullvad.mullvadvpn.compose.test.LAZY_LIST_WIREGUARD_PORT_ITEM_X_TEST_TAG
@@ -25,6 +28,7 @@ import net.mullvad.mullvadvpn.lib.model.Mtu
import net.mullvad.mullvadvpn.lib.model.Port
import net.mullvad.mullvadvpn.lib.model.PortRange
import net.mullvad.mullvadvpn.lib.model.QuantumResistantState
+import net.mullvad.mullvadvpn.lib.model.SelectedObfuscation
import net.mullvad.mullvadvpn.onNodeWithTagAndText
import net.mullvad.mullvadvpn.viewmodel.CustomDnsItem
import org.junit.jupiter.api.BeforeEach
@@ -207,6 +211,77 @@ class VpnSettingsScreenTest {
}
@Test
+ fun testSelectTcpOverUdpPortOption() =
+ composeExtension.use {
+ // Arrange
+ val onObfuscationPortSelected: (Constraint<Port>) -> Unit = mockk(relaxed = true)
+ setContentWithTheme {
+ VpnSettingsScreen(
+ state =
+ VpnSettingsUiState.createDefault(
+ selectedObfuscation = SelectedObfuscation.Udp2Tcp,
+ selectedObfuscationPort = Constraint.Only(Port(5001))
+ ),
+ onObfuscationPortSelected = onObfuscationPortSelected
+ )
+ }
+
+ // Act
+ onNodeWithTag(LAZY_LIST_TEST_TAG)
+ .performScrollToNode(hasTestTag(LAZY_LIST_UDP_OVER_TCP_PORT_TEST_TAG))
+ onNodeWithText("UDP-over-TCP port").performClick()
+ onNodeWithTag(LAZY_LIST_TEST_TAG)
+ .performScrollToNode(
+ hasTestTag(String.format(LAZY_LIST_UDP_OVER_TCP_PORT_ITEM_X_TEST_TAG, 5001))
+ )
+
+ // Assert
+ onNodeWithTagAndText(
+ testTag = String.format(LAZY_LIST_UDP_OVER_TCP_PORT_ITEM_X_TEST_TAG, 5001),
+ text = "5001"
+ )
+ .assertExists()
+ .performClick()
+
+ coVerify(exactly = 1) { onObfuscationPortSelected.invoke(Constraint.Only(Port(5001))) }
+ }
+
+ @Test
+ fun testAttemptSelectTcpOverUdpPortOption() =
+ composeExtension.use {
+ // Arrange
+ val onObfuscationPortSelected: (Constraint<Port>) -> Unit = mockk(relaxed = true)
+ setContentWithTheme {
+ VpnSettingsScreen(
+ state =
+ VpnSettingsUiState.createDefault(
+ selectedObfuscation = SelectedObfuscation.Off,
+ ),
+ onObfuscationPortSelected = onObfuscationPortSelected
+ )
+ }
+
+ // Act
+ onNodeWithTag(LAZY_LIST_TEST_TAG)
+ .performScrollToNode(hasTestTag(LAZY_LIST_UDP_OVER_TCP_PORT_TEST_TAG))
+ onNodeWithText("UDP-over-TCP port").performClick()
+ onNodeWithTag(LAZY_LIST_TEST_TAG)
+ .performScrollToNode(
+ hasTestTag(String.format(LAZY_LIST_UDP_OVER_TCP_PORT_ITEM_X_TEST_TAG, 5001))
+ )
+
+ // Assert
+ onNodeWithTagAndText(
+ testTag = String.format(LAZY_LIST_UDP_OVER_TCP_PORT_ITEM_X_TEST_TAG, 5001),
+ text = "5001"
+ )
+ .assertExists()
+ .performClick()
+
+ verify(exactly = 0) { onObfuscationPortSelected.invoke(any()) }
+ }
+
+ @Test
fun testShowSelectedTunnelQuantumOption() =
composeExtension.use {
// Arrange
@@ -402,6 +477,29 @@ class VpnSettingsScreenTest {
}
@Test
+ fun testShowObfuscationInfo() =
+ composeExtension.use {
+ val mockedNavigateToObfuscationInfo: () -> Unit = mockk(relaxed = true)
+
+ // Arrange
+ setContentWithTheme {
+ VpnSettingsScreen(
+ state = VpnSettingsUiState.createDefault(),
+ navigateToObfuscationInfo = mockedNavigateToObfuscationInfo
+ )
+ }
+
+ // Act
+
+ onNodeWithTag(LAZY_LIST_TEST_TAG)
+ .performScrollToNode(hasTestTag(LAZY_LIST_UDP_OVER_TCP_PORT_TEST_TAG))
+ onNodeWithText("WireGuard obfuscation").performClick()
+
+ // Assert
+ verify(exactly = 1) { mockedNavigateToObfuscationInfo() }
+ }
+
+ @Test
fun testShowTunnelQuantumInfo() =
composeExtension.use {
val mockedShowTunnelQuantumInfoClick: () -> Unit = mockk(relaxed = true)