diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2023-07-14 11:37:24 +0200 |
|---|---|---|
| committer | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2023-07-14 11:37:24 +0200 |
| commit | 0836eb0babb61baa95b2cb5bd3bdb12647fc5df7 (patch) | |
| tree | 4d3b43e32de8277d3f2eb3ae43e2cf8a4be4a041 /android/app/src/test | |
| parent | 50a01d641fe081fafb648132e56476e9a320053e (diff) | |
| parent | b82f65d4b19f4e534cdd69e8ead7f79aa176c6b2 (diff) | |
| download | mullvadvpn-0836eb0babb61baa95b2cb5bd3bdb12647fc5df7.tar.xz mullvadvpn-0836eb0babb61baa95b2cb5bd3bdb12647fc5df7.zip | |
Merge branch 'migrate-connect-fragment-main-screen-to-compose-droid-188'
Diffstat (limited to 'android/app/src/test')
| -rw-r--r-- | android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModelTest.kt | 57 |
1 files changed, 49 insertions, 8 deletions
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 8e2bd28c52..5b1ee8e7e1 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 @@ -7,6 +7,7 @@ import io.mockk.mockk import io.mockk.mockkStatic import io.mockk.slot import io.mockk.unmockkAll +import io.mockk.verify import kotlin.test.assertEquals import kotlinx.coroutines.cancel import kotlinx.coroutines.flow.MutableStateFlow @@ -25,6 +26,7 @@ import net.mullvad.mullvadvpn.ui.serviceconnection.RelayListListener import net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnectionContainer import net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnectionManager import net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnectionState +import net.mullvad.mullvadvpn.ui.serviceconnection.connectionProxy import net.mullvad.mullvadvpn.util.appVersionCallbackFlow import net.mullvad.talpid.util.EventNotifier import org.junit.After @@ -68,6 +70,7 @@ class ConnectViewModelTest { @Before fun setup() { mockkStatic(CACHE_EXTENSION_CLASS) + mockkStatic(SERVICE_CONNECTION_MANAGER_EXTENSIONS) mockAppVersionInfoCache = mockk<AppVersionInfoCache>().apply { @@ -110,7 +113,7 @@ class ConnectViewModelTest { assertEquals(ConnectUiState.INITIAL, awaitItem()) serviceConnectionState.value = ServiceConnectionState.ConnectedReady(mockServiceConnectionContainer) - locationSlot.captured.invoke(mockk()) + locationSlot.captured.invoke(mockk(relaxed = true)) relaySlot.captured.invoke(mockk(), mockk()) viewModel.toggleTunnelInfoExpansion() val result = awaitItem() @@ -121,13 +124,13 @@ class ConnectViewModelTest { @Test fun testTunnelRealStateUpdate() = runTest(testCoroutineRule.testDispatcher) { - val tunnelRealStateTestItem = TunnelState.Connected(mockk(), mockk()) + val tunnelRealStateTestItem = TunnelState.Connected(mockk(relaxed = true), mockk()) viewModel.uiState.test { assertEquals(ConnectUiState.INITIAL, awaitItem()) serviceConnectionState.value = ServiceConnectionState.ConnectedReady(mockServiceConnectionContainer) - locationSlot.captured.invoke(mockk()) + locationSlot.captured.invoke(mockk(relaxed = true)) relaySlot.captured.invoke(mockk(), mockk()) eventNotifierTunnelRealState.notify(tunnelRealStateTestItem) val result = awaitItem() @@ -144,7 +147,7 @@ class ConnectViewModelTest { assertEquals(ConnectUiState.INITIAL, awaitItem()) serviceConnectionState.value = ServiceConnectionState.ConnectedReady(mockServiceConnectionContainer) - locationSlot.captured.invoke(mockk()) + locationSlot.captured.invoke(mockk(relaxed = true)) relaySlot.captured.invoke(mockk(), mockk()) eventNotifierTunnelUiState.notify(tunnelUiStateTestItem) val result = awaitItem() @@ -167,7 +170,7 @@ class ConnectViewModelTest { assertEquals(ConnectUiState.INITIAL, awaitItem()) serviceConnectionState.value = ServiceConnectionState.ConnectedReady(mockServiceConnectionContainer) - locationSlot.captured.invoke(mockk()) + locationSlot.captured.invoke(mockk(relaxed = true)) relaySlot.captured.invoke(mockk(), mockk()) versionInfo.value = versionInfoTestItem val result = awaitItem() @@ -185,7 +188,7 @@ class ConnectViewModelTest { assertEquals(ConnectUiState.INITIAL, awaitItem()) serviceConnectionState.value = ServiceConnectionState.ConnectedReady(mockServiceConnectionContainer) - locationSlot.captured.invoke(mockk()) + locationSlot.captured.invoke(mockk(relaxed = true)) relaySlot.captured.invoke(mockk(), relayTestItem) val result = awaitItem() assertEquals(relayTestItem, result.relayLocation) @@ -197,8 +200,8 @@ class ConnectViewModelTest { runTest(testCoroutineRule.testDispatcher) { val locationTestItem = GeoIpLocation( - ipv4 = mockk(), - ipv6 = mockk(), + ipv4 = mockk(relaxed = true), + ipv6 = mockk(relaxed = true), country = "Sweden", city = "Gothenburg", hostname = "Host" @@ -215,7 +218,45 @@ class ConnectViewModelTest { } } + @Test + fun testOnDisconnectClick() = + runTest(testCoroutineRule.testDispatcher) { + val mockConnectionProxy: ConnectionProxy = mockk(relaxed = true) + every { mockServiceConnectionManager.connectionProxy() } returns mockConnectionProxy + viewModel.onDisconnectClick() + verify { mockConnectionProxy.disconnect() } + } + + @Test + fun testOnReconnectClick() = + runTest(testCoroutineRule.testDispatcher) { + val mockConnectionProxy: ConnectionProxy = mockk(relaxed = true) + every { mockServiceConnectionManager.connectionProxy() } returns mockConnectionProxy + viewModel.onReconnectClick() + verify { mockConnectionProxy.reconnect() } + } + + @Test + fun testOnConnectClick() = + runTest(testCoroutineRule.testDispatcher) { + val mockConnectionProxy: ConnectionProxy = mockk(relaxed = true) + every { mockServiceConnectionManager.connectionProxy() } returns mockConnectionProxy + viewModel.onConnectClick() + verify { mockConnectionProxy.connect() } + } + + @Test + fun testOnCancelClick() = + runTest(testCoroutineRule.testDispatcher) { + val mockConnectionProxy: ConnectionProxy = mockk(relaxed = true) + every { mockServiceConnectionManager.connectionProxy() } returns mockConnectionProxy + viewModel.onCancelClick() + verify { mockConnectionProxy.disconnect() } + } + companion object { private const val CACHE_EXTENSION_CLASS = "net.mullvad.mullvadvpn.util.CacheExtensionsKt" + private const val SERVICE_CONNECTION_MANAGER_EXTENSIONS = + "net.mullvad.mullvadvpn.ui.serviceconnection.ServiceConnectionManagerExtensionsKt" } } |
