diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2023-06-21 14:15:56 +0200 |
|---|---|---|
| committer | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2023-07-07 11:12:15 +0200 |
| commit | 9f313d321dd0361545e71688bde320987eed8d48 (patch) | |
| tree | 944fd328f24a5072da6a4512508c90991bdef24b /android/app/src/androidTest | |
| parent | afb24305d9da874b0f20802484411a7879a3d7ca (diff) | |
| download | mullvadvpn-9f313d321dd0361545e71688bde320987eed8d48.tar.xz mullvadvpn-9f313d321dd0361545e71688bde320987eed8d48.zip | |
Add option to change wireguard port to vpn settings
Diffstat (limited to 'android/app/src/androidTest')
| -rw-r--r-- | android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreenTest.kt | 93 |
1 files changed, 91 insertions, 2 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 e66e779313..fd3be6092f 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 @@ -21,6 +21,10 @@ 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_WIREGUARD_PORT_ITEM_X_TEST_TAG +import net.mullvad.mullvadvpn.model.Constraint +import net.mullvad.mullvadvpn.model.Port +import net.mullvad.mullvadvpn.model.PortRange import net.mullvad.mullvadvpn.model.QuantumResistantState import net.mullvad.mullvadvpn.onNodeWithTagAndChildrenText import net.mullvad.mullvadvpn.viewmodel.CustomDnsItem @@ -46,14 +50,18 @@ class VpnSettingsScreenTest { toastMessagesSharedFlow = MutableSharedFlow<String>().asSharedFlow() ) } + + composeTestRule.apply { + onNodeWithText("WireGuard MTU").assertExists() + onNodeWithText("Default").assertExists() + } + composeTestRule .onNodeWithTag(LAZY_LIST_TEST_TAG) .performScrollToNode(hasTestTag(LAZY_LIST_LAST_ITEM_TEST_TAG)) // Assert composeTestRule.apply { - onNodeWithText("WireGuard MTU").assertExists() - onNodeWithText("Default").assertExists() onNodeWithText("Use custom DNS server").assertExists() onNodeWithText("Add a server").assertDoesNotExist() } @@ -603,6 +611,87 @@ class VpnSettingsScreenTest { composeTestRule.onNodeWithText("Got it!").assertExists() } + @Test + fun testShowWireguardPortOptions() { + // Arrange + composeTestRule.setContent { + VpnSettingsScreen( + uiState = + VpnSettingsUiState.DefaultUiState( + selectedWireguardPort = Constraint.Only(Port(53)) + ), + toastMessagesSharedFlow = MutableSharedFlow<String>().asSharedFlow() + ) + } + composeTestRule + .onNodeWithTag(LAZY_LIST_TEST_TAG) + .performScrollToNode( + hasTestTag(String.format(LAZY_LIST_WIREGUARD_PORT_ITEM_X_TEST_TAG, 53)) + ) + + // Assert + composeTestRule + .onNodeWithTagAndChildrenText( + testTag = String.format(LAZY_LIST_WIREGUARD_PORT_ITEM_X_TEST_TAG, 51820), + text = "51820" + ) + .assertExists() + } + + @Test + fun testSelectWireguardPortOption() { + // Arrange + val mockSelectWireguardPortSelectionListener: (Constraint<Port>) -> Unit = + mockk(relaxed = true) + composeTestRule.setContent { + VpnSettingsScreen( + uiState = + VpnSettingsUiState.DefaultUiState( + selectedWireguardPort = Constraint.Only(Port(53)) + ), + onWireguardPortSelected = mockSelectWireguardPortSelectionListener, + toastMessagesSharedFlow = MutableSharedFlow<String>().asSharedFlow() + ) + } + composeTestRule + .onNodeWithTag(LAZY_LIST_TEST_TAG) + .performScrollToNode( + hasTestTag(String.format(LAZY_LIST_WIREGUARD_PORT_ITEM_X_TEST_TAG, 53)) + ) + + // Assert + composeTestRule + .onNodeWithTagAndChildrenText( + testTag = String.format(LAZY_LIST_WIREGUARD_PORT_ITEM_X_TEST_TAG, 51820), + text = "51820" + ) + .performClick() + verify(exactly = 1) { + mockSelectWireguardPortSelectionListener.invoke(Constraint.Only(Port(51820))) + } + } + + @Test + fun testShowWireguardPortInfo() { + // Arrange + composeTestRule.setContent { + VpnSettingsScreen( + uiState = + VpnSettingsUiState.WireguardPortInfoDialogUiState( + availablePortRanges = listOf(PortRange(53, 53), PortRange(120, 121)) + ), + toastMessagesSharedFlow = MutableSharedFlow<String>().asSharedFlow() + ) + } + + // Assert + composeTestRule + .onNodeWithText( + "The automatic setting will randomly choose from the valid port ranges shown below." + ) + .assertExists() + } + companion object { private const val LOCAL_DNS_SERVER_WARNING = "The local DNS server will not work unless you enable " + |
