diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2023-07-03 15:29:20 +0200 |
|---|---|---|
| committer | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2023-07-13 13:19:29 +0200 |
| commit | 9cdbb9c78f1682cc9b9c3c78bef314ba12dbac28 (patch) | |
| tree | a7f8f26af194304e1a3967f9d64db051e01a3e8e /android/app/src/androidTest | |
| parent | 80a0705ab69dea7041fbc9176f2b7f2dd5c139e5 (diff) | |
| download | mullvadvpn-9cdbb9c78f1682cc9b9c3c78bef314ba12dbac28.tar.xz mullvadvpn-9cdbb9c78f1682cc9b9c3c78bef314ba12dbac28.zip | |
Add the ability to set a custom wireguard port
Diffstat (limited to 'android/app/src/androidTest')
| -rw-r--r-- | android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/VpnSettingsScreenTest.kt | 125 |
1 files changed, 123 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 1b97a47914..47f7d8280c 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,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_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 import net.mullvad.mullvadvpn.model.Constraint import net.mullvad.mullvadvpn.model.Port @@ -623,6 +625,8 @@ class VpnSettingsScreenTest { toastMessagesSharedFlow = MutableSharedFlow<String>().asSharedFlow() ) } + + // Act composeTestRule .onNodeWithTag(LAZY_LIST_TEST_TAG) .performScrollToNode( @@ -653,19 +657,21 @@ class VpnSettingsScreenTest { toastMessagesSharedFlow = MutableSharedFlow<String>().asSharedFlow() ) } + + // Act composeTestRule .onNodeWithTag(LAZY_LIST_TEST_TAG) .performScrollToNode( hasTestTag(String.format(LAZY_LIST_WIREGUARD_PORT_ITEM_X_TEST_TAG, 53)) ) - - // Assert composeTestRule .onNodeWithTagAndText( testTag = String.format(LAZY_LIST_WIREGUARD_PORT_ITEM_X_TEST_TAG, 51820), text = "51820" ) .performClick() + + // Assert verify(exactly = 1) { mockSelectWireguardPortSelectionListener.invoke(Constraint.Only(Port(51820))) } @@ -692,6 +698,121 @@ class VpnSettingsScreenTest { .assertExists() } + @Test + fun testShowWireguardCustomPortDialog() { + // Arrange + composeTestRule.setContent { + VpnSettingsScreen( + uiState = + VpnSettingsUiState.CustomPortDialogUiState( + availablePortRanges = listOf(PortRange(53, 53), PortRange(120, 121)) + ), + toastMessagesSharedFlow = MutableSharedFlow<String>().asSharedFlow() + ) + } + + // Assert + composeTestRule.onNodeWithText("Valid ranges: 53, 120-121").assertExists() + } + + @Test + fun testShowWireguardCustomPort() { + // Arrange + composeTestRule.setContent { + VpnSettingsScreen( + uiState = + VpnSettingsUiState.DefaultUiState( + selectedWireguardPort = Constraint.Only(Port(4000)) + ), + toastMessagesSharedFlow = MutableSharedFlow<String>().asSharedFlow() + ) + } + + // Act + composeTestRule + .onNodeWithTag(LAZY_LIST_TEST_TAG) + .performScrollToNode(hasTestTag(LAZY_LIST_WIREGUARD_CUSTOM_PORT_TEXT_TEST_TAG)) + + // Assert + composeTestRule.onNodeWithText("4000").assertExists() + } + + @Test + fun testClickWireguardCustomPortMainCell() { + // Arrange + val mockOnShowCustomPortDialog: () -> Unit = mockk(relaxed = true) + composeTestRule.setContent { + VpnSettingsScreen( + uiState = VpnSettingsUiState.DefaultUiState(), + onShowCustomPortDialog = mockOnShowCustomPortDialog, + toastMessagesSharedFlow = MutableSharedFlow<String>().asSharedFlow() + ) + } + + // Act + composeTestRule + .onNodeWithTag(LAZY_LIST_TEST_TAG) + .performScrollToNode(hasTestTag(LAZY_LIST_WIREGUARD_CUSTOM_PORT_TEXT_TEST_TAG)) + composeTestRule.onNodeWithTag(LAZY_LIST_WIREGUARD_CUSTOM_PORT_TEXT_TEST_TAG).performClick() + + // Assert + verify { mockOnShowCustomPortDialog.invoke() } + } + + @Test + fun testClickWireguardCustomPortNumberCell() { + // Arrange + val mockOnShowCustomPortDialog: () -> Unit = mockk(relaxed = true) + composeTestRule.setContent { + VpnSettingsScreen( + uiState = + VpnSettingsUiState.DefaultUiState( + selectedWireguardPort = Constraint.Only(Port(4000)) + ), + onShowCustomPortDialog = mockOnShowCustomPortDialog, + toastMessagesSharedFlow = MutableSharedFlow<String>().asSharedFlow() + ) + } + + // Act + composeTestRule + .onNodeWithTag(LAZY_LIST_TEST_TAG) + .performScrollToNode(hasTestTag(LAZY_LIST_WIREGUARD_CUSTOM_PORT_TEXT_TEST_TAG)) + composeTestRule + .onNodeWithTag(testTag = LAZY_LIST_WIREGUARD_CUSTOM_PORT_NUMBER_TEST_TAG) + .performClick() + + // Assert + verify { mockOnShowCustomPortDialog.invoke() } + } + + @Test + fun testSelectWireguardCustomPort() { + // Arrange + val onWireguardPortSelected: (Constraint<Port>) -> Unit = mockk(relaxed = true) + composeTestRule.setContent { + VpnSettingsScreen( + uiState = + VpnSettingsUiState.DefaultUiState( + selectedWireguardPort = Constraint.Only(Port(4000)) + ), + onWireguardPortSelected = onWireguardPortSelected, + toastMessagesSharedFlow = MutableSharedFlow<String>().asSharedFlow() + ) + } + + // Act + composeTestRule + .onNodeWithTag(LAZY_LIST_TEST_TAG) + .performScrollToNode(hasTestTag(LAZY_LIST_WIREGUARD_CUSTOM_PORT_TEXT_TEST_TAG)) + composeTestRule + .onNodeWithTag(testTag = LAZY_LIST_WIREGUARD_CUSTOM_PORT_TEXT_TEST_TAG) + .performClick() + + // Assert + verify { onWireguardPortSelected.invoke(Constraint.Only(Port(4000))) } + } + companion object { private const val LOCAL_DNS_SERVER_WARNING = "The local DNS server will not work unless you enable " + |
