diff options
| author | David Göransson <david.goransson@mullvad.net> | 2024-06-04 08:27:30 +0200 |
|---|---|---|
| committer | David Göransson <david.goransson@mullvad.net> | 2024-06-04 08:27:30 +0200 |
| commit | 45c369fe355a5eadc29dd3e6f492ff6d7430ee5d (patch) | |
| tree | 70925bd8ab3348533ca7217606ac4c2d42356453 /android/app/src/androidTest | |
| parent | 3ac0f264402e42a16f0bd6c76e1a6a67e01ed4ef (diff) | |
| parent | 571c620b51cdc6b4338a3244b500f70e79b3ca7d (diff) | |
| download | mullvadvpn-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.kt | 98 |
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) |
