diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2023-09-06 12:42:29 +0200 |
|---|---|---|
| committer | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2023-09-06 12:42:29 +0200 |
| commit | 02715c2eb2b011393f4c7ada34d8f70014eb0524 (patch) | |
| tree | c7b7cc423f3297baaef8d48517cf498d219be6d9 /android | |
| parent | cfc1aa9b12de7accc86e7e65606058d11ab76102 (diff) | |
| parent | bf4428f11454f6287535edad4876166286e04c31 (diff) | |
| download | mullvadvpn-02715c2eb2b011393f4c7ada34d8f70014eb0524.tar.xz mullvadvpn-02715c2eb2b011393f4c7ada34d8f70014eb0524.zip | |
Merge branch 'cannot-fold-unfold-the-connection-details-in-certain-droid-298'
Diffstat (limited to 'android')
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt | 3 | ||||
| -rw-r--r-- | android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModelTest.kt | 43 |
2 files changed, 45 insertions, 1 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt index b67cd754c4..3df2ea3a07 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModel.kt @@ -134,7 +134,8 @@ class ConnectViewModel( awaitClose { onNewLocation = null } } // Filter out empty or short-name country representations. - .filter { it?.let { location -> location.country.length > 2 } ?: false } + // We want to keep null location to handle those situations + .filter { it?.let { location -> location.country.length > 2 } ?: true } private fun RelayListListener.relayListCallbackFlow() = callbackFlow { onRelayCountriesChange = { _, item -> this.trySend(item) } diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModelTest.kt index d8ec2b26f7..776136d1c5 100644 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModelTest.kt +++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModelTest.kt @@ -221,6 +221,49 @@ class ConnectViewModelTest { } @Test + fun testLocationUpdateFilteredCountry() = + // Arrange + runTest(testCoroutineRule.testDispatcher) { + val locationTestItem = + GeoIpLocation( + ipv4 = mockk(relaxed = true), + ipv6 = mockk(relaxed = true), + country = "SW", + city = "gb", + hostname = "Ho" + ) + + // Act, Assert + viewModel.uiState.test { + assertEquals(ConnectUiState.INITIAL, awaitItem()) + serviceConnectionState.value = + ServiceConnectionState.ConnectedReady(mockServiceConnectionContainer) + locationSlot.captured.invoke(locationTestItem) + relaySlot.captured.invoke(mockk(), mockk()) + expectNoEvents() + } + } + + @Test + fun testLocationUpdateNullLocation() = + // Arrange + runTest(testCoroutineRule.testDispatcher) { + val locationTestItem = null + + // Act, Assert + viewModel.uiState.test { + assertEquals(ConnectUiState.INITIAL, awaitItem()) + serviceConnectionState.value = + ServiceConnectionState.ConnectedReady(mockServiceConnectionContainer) + locationSlot.captured.invoke(locationTestItem) + relaySlot.captured.invoke(mockk(), mockk()) + expectNoEvents() + val result = awaitItem() + assertEquals(locationTestItem, result.location) + } + } + + @Test fun testOnDisconnectClick() = runTest(testCoroutineRule.testDispatcher) { val mockConnectionProxy: ConnectionProxy = mockk(relaxed = true) |
