diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2024-02-15 23:32:01 +0100 |
|---|---|---|
| committer | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2024-02-15 23:32:01 +0100 |
| commit | 5c993e2e04e91cc29d4ec67546ac699da832b0de (patch) | |
| tree | 0b0c70a94ce30384bdf54a298145a02ae29387d1 /android/app/src/test | |
| parent | bf4fc6d570e6ef468c040dadeaabb1b943124f41 (diff) | |
| parent | 4a9f3b1f059c638dce7c8d1a8e1cf26d8916c3f1 (diff) | |
| download | mullvadvpn-5c993e2e04e91cc29d4ec67546ac699da832b0de.tar.xz mullvadvpn-5c993e2e04e91cc29d4ec67546ac699da832b0de.zip | |
Merge branch 'implement-split-tunneling-toggle-button-droid-458'
Diffstat (limited to 'android/app/src/test')
| -rw-r--r-- | android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SplitTunnelingViewModelTest.kt | 51 |
1 files changed, 47 insertions, 4 deletions
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SplitTunnelingViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SplitTunnelingViewModelTest.kt index 7b2b4cacd5..c0d349e1da 100644 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SplitTunnelingViewModelTest.kt +++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SplitTunnelingViewModelTest.kt @@ -57,7 +57,7 @@ class SplitTunnelingViewModelTest { initTestSubject(emptyList()) val actualState: SplitTunnelingUiState = testSubject.uiState.value - val initialExpectedState = SplitTunnelingUiState.Loading + val initialExpectedState = SplitTunnelingUiState.Loading(enabled = false) assertEquals(initialExpectedState, actualState) @@ -70,9 +70,14 @@ class SplitTunnelingViewModelTest { { lambda<(Set<String>) -> Unit>().invoke(emptySet()) } + every { mockedSplitTunneling.enabledChange = captureLambda() } answers + { + lambda<(Boolean) -> Unit>().invoke(true) + } initTestSubject(emptyList()) val expectedState = SplitTunnelingUiState.ShowAppList( + enabled = true, excludedApps = emptyList(), includedApps = emptyList(), showSystemApps = false @@ -88,11 +93,16 @@ class SplitTunnelingViewModelTest { { lambda<(Set<String>) -> Unit>().invoke(setOf(appExcluded.packageName)) } + every { mockedSplitTunneling.enabledChange = captureLambda() } answers + { + lambda<(Boolean) -> Unit>().invoke(true) + } initTestSubject(listOf(appExcluded, appNotExcluded)) val expectedState = SplitTunnelingUiState.ShowAppList( + enabled = true, excludedApps = listOf(appExcluded), includedApps = listOf(appNotExcluded), showSystemApps = false @@ -102,7 +112,7 @@ class SplitTunnelingViewModelTest { val actualState = awaitItem() assertEquals(expectedState, actualState) verifyAll { - mockedSplitTunneling.enabled + mockedSplitTunneling.enabledChange = any() mockedSplitTunneling.excludedAppsChange = any() } } @@ -118,17 +128,23 @@ class SplitTunnelingViewModelTest { excludedAppsCallback = lambda() excludedAppsCallback.invoke(setOf(app.packageName)) } + every { mockedSplitTunneling.enabledChange = captureLambda() } answers + { + lambda<(Boolean) -> Unit>().invoke(true) + } initTestSubject(listOf(app)) val expectedStateBeforeAction = SplitTunnelingUiState.ShowAppList( + enabled = true, excludedApps = listOf(app), includedApps = emptyList(), showSystemApps = false ) val expectedStateAfterAction = SplitTunnelingUiState.ShowAppList( + enabled = true, excludedApps = emptyList(), includedApps = listOf(app), showSystemApps = false @@ -141,7 +157,7 @@ class SplitTunnelingViewModelTest { assertEquals(expectedStateAfterAction, awaitItem()) verifyAll { - mockedSplitTunneling.enabled + mockedSplitTunneling.enabledChange = any() mockedSplitTunneling.excludedAppsChange = any() mockedSplitTunneling.includeApp(app.packageName) } @@ -158,11 +174,16 @@ class SplitTunnelingViewModelTest { excludedAppsCallback = lambda() excludedAppsCallback.invoke(emptySet()) } + every { mockedSplitTunneling.enabledChange = captureLambda() } answers + { + lambda<(Boolean) -> Unit>().invoke(true) + } initTestSubject(listOf(app)) val expectedStateBeforeAction = SplitTunnelingUiState.ShowAppList( + enabled = true, excludedApps = emptyList(), includedApps = listOf(app), showSystemApps = false @@ -170,6 +191,7 @@ class SplitTunnelingViewModelTest { val expectedStateAfterAction = SplitTunnelingUiState.ShowAppList( + enabled = true, excludedApps = listOf(app), includedApps = emptyList(), showSystemApps = false @@ -182,13 +204,34 @@ class SplitTunnelingViewModelTest { assertEquals(expectedStateAfterAction, awaitItem()) verifyAll { - mockedSplitTunneling.enabled + mockedSplitTunneling.enabledChange = any() mockedSplitTunneling.excludedAppsChange = any() mockedSplitTunneling.excludeApp(app.packageName) } } } + @Test + fun test_disabled_state() = runTest { + every { mockedSplitTunneling.excludedAppsChange = captureLambda() } answers + { + lambda<(Set<String>) -> Unit>().invoke(emptySet()) + } + every { mockedSplitTunneling.enabledChange = captureLambda() } answers + { + lambda<(Boolean) -> Unit>().invoke(false) + } + + initTestSubject(emptyList()) + + val expectedState = SplitTunnelingUiState.ShowAppList(enabled = false) + + testSubject.uiState.test { + val actualState = awaitItem() + assertEquals(expectedState, actualState) + } + } + private fun initTestSubject(appList: List<AppData>) { every { mockedApplicationsProvider.getAppsList() } returns appList every { mockedServiceConnectionManager.connectionState } returns |
