summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Caitlin Shkuratov <caitlinshk@google.com> 2023-02-10 19:32:24 +0000
committer Caitlin Shkuratov <caitlinshk@google.com> 2023-02-10 20:49:30 +0000
commit0beef1ec01a059fe518ded080c13570bc81f2b6b (patch)
tree84226f2a763da467c5ab9940757f067d9ead922c
parentf38ff6c1b7c8f3a9498d15daa6db5b999ff92755 (diff)
[SB Refactor] Lint all the wifi classes; move network model to shared.
Bug: 238425913 Test: All tests in statusbar.wifi Change-Id: Ib13d844dccfec7985d0f18f830f2c40111c9d089
-rw-r--r--packages/SystemUI/ktfmt_includes.txt10
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/CarrierMergedConnectionRepository.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/WifiRepository.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/WifiRepositorySwitcher.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/demo/DemoWifiRepository.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/DisabledWifiRepository.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImpl.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/domain/interactor/WifiInteractor.kt37
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/shared/model/WifiNetworkModel.kt (renamed from packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/model/WifiNetworkModel.kt)54
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModel.kt102
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/CarrierMergedConnectionRepositoryTest.kt2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/FullMobileConnectionRepositoryTest.kt2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryTest.kt2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/FakeWifiRepository.kt2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/DisabledWifiRepositoryTest.kt2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImplTest.kt1159
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/domain/interactor/WifiInteractorImplTest.kt388
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/shared/model/WifiNetworkModelTest.kt (renamed from packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/model/WifiNetworkModelTest.kt)6
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/view/ModernStatusBarWifiViewTest.kt58
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelIconParameterizedTest.kt2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelTest.kt684
22 files changed, 1198 insertions, 1326 deletions
diff --git a/packages/SystemUI/ktfmt_includes.txt b/packages/SystemUI/ktfmt_includes.txt
index 1a67691e30bf..22158571bcd6 100644
--- a/packages/SystemUI/ktfmt_includes.txt
+++ b/packages/SystemUI/ktfmt_includes.txt
@@ -452,12 +452,6 @@
-packages/SystemUI/src/com/android/systemui/statusbar/phone/userswitcher/StatusBarUserSwitcherFeatureController.kt
-packages/SystemUI/src/com/android/systemui/statusbar/pipeline/dagger/StatusBarPipelineModule.kt
-packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ConnectivityPipelineLogger.kt
--packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/model/WifiActivityModel.kt
--packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/model/WifiNetworkModel.kt
--packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/domain/interactor/WifiInteractor.kt
--packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/shared/WifiConstants.kt
--packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/view/ModernStatusBarWifiView.kt
--packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModel.kt
-packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryStateNotifier.kt
-packages/SystemUI/src/com/android/systemui/statusbar/policy/DeviceControlsController.kt
-packages/SystemUI/src/com/android/systemui/statusbar/policy/DeviceControlsControllerImpl.kt
@@ -743,10 +737,6 @@
-packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/panelstate/ShadeExpansionStateManagerTest.kt
-packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/userswitcher/StatusBarUserSwitcherControllerOldImplTest.kt
-packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/shared/ConnectivityPipelineLoggerTest.kt
--packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImplTest.kt
--packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/domain/interactor/WifiInteractorImplTest.kt
--packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/view/ModernStatusBarWifiViewTest.kt
--packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelTest.kt
-packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryStateNotifierTest.kt
-packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/ClockTest.kt
-packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/DeviceControlsControllerImplTest.kt
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/CarrierMergedConnectionRepository.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/CarrierMergedConnectionRepository.kt
index 938c7346f702..8f6a87b089f2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/CarrierMergedConnectionRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/CarrierMergedConnectionRepository.kt
@@ -28,8 +28,8 @@ import com.android.systemui.statusbar.pipeline.mobile.data.model.ResolvedNetwork
import com.android.systemui.statusbar.pipeline.mobile.data.repository.MobileConnectionRepository
import com.android.systemui.statusbar.pipeline.mobile.data.repository.MobileConnectionRepository.Companion.DEFAULT_NUM_LEVELS
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.data.repository.WifiRepository
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import javax.inject.Inject
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.Flow
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt
index c9049d893f4a..adeed0a75755 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryImpl.kt
@@ -52,8 +52,8 @@ import com.android.systemui.statusbar.pipeline.mobile.data.repository.MobileConn
import com.android.systemui.statusbar.pipeline.mobile.util.MobileMappingsProxy
import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger
import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger.Companion.logInputChange
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.data.repository.WifiRepository
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import com.android.systemui.util.kotlin.pairwise
import javax.inject.Inject
import kotlinx.coroutines.CoroutineDispatcher
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/WifiRepository.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/WifiRepository.kt
index ac4d55c3a29c..08c14e743bb6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/WifiRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/WifiRepository.kt
@@ -17,7 +17,7 @@
package com.android.systemui.statusbar.pipeline.wifi.data.repository
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import kotlinx.coroutines.flow.StateFlow
/** Provides data related to the wifi state. */
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/WifiRepositorySwitcher.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/WifiRepositorySwitcher.kt
index 2cb81c809716..e0e0ed795e4a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/WifiRepositorySwitcher.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/WifiRepositorySwitcher.kt
@@ -23,9 +23,9 @@ import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.demomode.DemoMode
import com.android.systemui.demomode.DemoModeController
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.data.repository.demo.DemoWifiRepository
import com.android.systemui.statusbar.pipeline.wifi.data.repository.prod.WifiRepositoryImpl
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import javax.inject.Inject
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.ExperimentalCoroutinesApi
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/demo/DemoWifiRepository.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/demo/DemoWifiRepository.kt
index a19c3c3e86a6..a4fbc2c93647 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/demo/DemoWifiRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/demo/DemoWifiRepository.kt
@@ -19,9 +19,9 @@ package com.android.systemui.statusbar.pipeline.wifi.data.repository.demo
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
import com.android.systemui.statusbar.pipeline.shared.data.model.toWifiDataActivityModel
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.data.repository.WifiRepository
import com.android.systemui.statusbar.pipeline.wifi.data.repository.demo.model.FakeWifiEventModel
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import javax.inject.Inject
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Job
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/DisabledWifiRepository.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/DisabledWifiRepository.kt
index 5d4a6664a19a..86a668a2e842 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/DisabledWifiRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/DisabledWifiRepository.kt
@@ -18,8 +18,8 @@ package com.android.systemui.statusbar.pipeline.wifi.data.repository.prod
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.data.repository.RealWifiRepository
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import javax.inject.Inject
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImpl.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImpl.kt
index c45b420780b9..7b486c1998cd 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImpl.kt
@@ -43,9 +43,9 @@ import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger
import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger.Companion.logInputChange
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
import com.android.systemui.statusbar.pipeline.shared.data.model.toWifiDataActivityModel
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.data.repository.RealWifiRepository
import com.android.systemui.statusbar.pipeline.wifi.data.repository.WifiRepository
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import java.util.concurrent.Executor
import javax.inject.Inject
import kotlinx.coroutines.CoroutineScope
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/domain/interactor/WifiInteractor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/domain/interactor/WifiInteractor.kt
index 86dcd18c643c..96ab074c6e56 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/domain/interactor/WifiInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/domain/interactor/WifiInteractor.kt
@@ -21,8 +21,8 @@ import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.statusbar.pipeline.shared.data.model.ConnectivitySlot
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
import com.android.systemui.statusbar.pipeline.shared.data.repository.ConnectivityRepository
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.data.repository.WifiRepository
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import javax.inject.Inject
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.StateFlow
@@ -58,25 +58,29 @@ interface WifiInteractor {
}
@SysUISingleton
-class WifiInteractorImpl @Inject constructor(
+class WifiInteractorImpl
+@Inject
+constructor(
connectivityRepository: ConnectivityRepository,
wifiRepository: WifiRepository,
) : WifiInteractor {
- override val ssid: Flow<String?> = wifiRepository.wifiNetwork.map { info ->
- when (info) {
- is WifiNetworkModel.Unavailable -> null
- is WifiNetworkModel.Invalid -> null
- is WifiNetworkModel.Inactive -> null
- is WifiNetworkModel.CarrierMerged -> null
- is WifiNetworkModel.Active -> when {
- info.isPasspointAccessPoint || info.isOnlineSignUpForPasspointAccessPoint ->
- info.passpointProviderFriendlyName
- info.ssid != WifiManager.UNKNOWN_SSID -> info.ssid
- else -> null
+ override val ssid: Flow<String?> =
+ wifiRepository.wifiNetwork.map { info ->
+ when (info) {
+ is WifiNetworkModel.Unavailable -> null
+ is WifiNetworkModel.Invalid -> null
+ is WifiNetworkModel.Inactive -> null
+ is WifiNetworkModel.CarrierMerged -> null
+ is WifiNetworkModel.Active ->
+ when {
+ info.isPasspointAccessPoint || info.isOnlineSignUpForPasspointAccessPoint ->
+ info.passpointProviderFriendlyName
+ info.ssid != WifiManager.UNKNOWN_SSID -> info.ssid
+ else -> null
+ }
}
}
- }
override val isEnabled: Flow<Boolean> = wifiRepository.isWifiEnabled
@@ -86,7 +90,6 @@ class WifiInteractorImpl @Inject constructor(
override val activity: StateFlow<DataActivityModel> = wifiRepository.wifiActivity
- override val isForceHidden: Flow<Boolean> = connectivityRepository.forceHiddenSlots.map {
- it.contains(ConnectivitySlot.WIFI)
- }
+ override val isForceHidden: Flow<Boolean> =
+ connectivityRepository.forceHiddenSlots.map { it.contains(ConnectivitySlot.WIFI) }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/model/WifiNetworkModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/shared/model/WifiNetworkModel.kt
index da2daf2c55ea..0923d7848d8c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/model/WifiNetworkModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/shared/model/WifiNetworkModel.kt
@@ -14,13 +14,13 @@
* limitations under the License.
*/
-package com.android.systemui.statusbar.pipeline.wifi.data.model
+package com.android.systemui.statusbar.pipeline.wifi.shared.model
-import android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID
+import android.telephony.SubscriptionManager
import androidx.annotation.VisibleForTesting
-import com.android.systemui.log.table.TableRowLogger
import com.android.systemui.log.table.Diffable
-import com.android.systemui.statusbar.pipeline.mobile.data.repository.MobileConnectionRepository.Companion.DEFAULT_NUM_LEVELS
+import com.android.systemui.log.table.TableRowLogger
+import com.android.systemui.statusbar.pipeline.mobile.data.repository.MobileConnectionRepository
/** Provides information about the current wifi network. */
sealed class WifiNetworkModel : Diffable<WifiNetworkModel> {
@@ -57,9 +57,7 @@ sealed class WifiNetworkModel : Diffable<WifiNetworkModel> {
}
}
- /**
- * A model representing that the wifi information we received was invalid in some way.
- */
+ /** A model representing that the wifi information we received was invalid in some way. */
data class Invalid(
/** A description of why the wifi information was invalid. */
val invalidReason: String,
@@ -142,21 +140,17 @@ sealed class WifiNetworkModel : Diffable<WifiNetworkModel> {
*/
val subscriptionId: Int,
- /**
- * The signal level, guaranteed to be 0 <= level <= numberOfLevels.
- */
+ /** The signal level, guaranteed to be 0 <= level <= numberOfLevels. */
val level: Int,
- /**
- * The maximum possible level.
- */
- val numberOfLevels: Int = DEFAULT_NUM_LEVELS,
+ /** The maximum possible level. */
+ val numberOfLevels: Int = MobileConnectionRepository.DEFAULT_NUM_LEVELS,
) : WifiNetworkModel() {
init {
require(level in MIN_VALID_LEVEL..numberOfLevels) {
"0 <= wifi level <= $numberOfLevels required; level was $level"
}
- require(subscriptionId != INVALID_SUBSCRIPTION_ID) {
+ require(subscriptionId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
"subscription ID cannot be invalid"
}
}
@@ -208,9 +202,7 @@ sealed class WifiNetworkModel : Diffable<WifiNetworkModel> {
/** See [android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED]. */
val isValidated: Boolean = false,
- /**
- * The wifi signal level, guaranteed to be 0 <= level <= 4.
- */
+ /** The wifi signal level, guaranteed to be 0 <= level <= 4. */
val level: Int,
/** See [android.net.wifi.WifiInfo.ssid]. */
@@ -255,8 +247,10 @@ sealed class WifiNetworkModel : Diffable<WifiNetworkModel> {
if (prevVal.isPasspointAccessPoint != isPasspointAccessPoint) {
row.logChange(COL_PASSPOINT_ACCESS_POINT, isPasspointAccessPoint)
}
- if (prevVal.isOnlineSignUpForPasspointAccessPoint !=
- isOnlineSignUpForPasspointAccessPoint) {
+ if (
+ prevVal.isOnlineSignUpForPasspointAccessPoint !=
+ isOnlineSignUpForPasspointAccessPoint
+ ) {
row.logChange(COL_ONLINE_SIGN_UP, isOnlineSignUpForPasspointAccessPoint)
}
if (prevVal.passpointProviderFriendlyName != passpointProviderFriendlyName) {
@@ -281,29 +275,29 @@ sealed class WifiNetworkModel : Diffable<WifiNetworkModel> {
// Only include the passpoint-related values in the string if we have them. (Most
// networks won't have them so they'll be mostly clutter.)
val passpointString =
- if (isPasspointAccessPoint ||
- isOnlineSignUpForPasspointAccessPoint ||
- passpointProviderFriendlyName != null) {
+ if (
+ isPasspointAccessPoint ||
+ isOnlineSignUpForPasspointAccessPoint ||
+ passpointProviderFriendlyName != null
+ ) {
", isPasspointAp=$isPasspointAccessPoint, " +
"isOnlineSignUpForPasspointAp=$isOnlineSignUpForPasspointAccessPoint, " +
"passpointName=$passpointProviderFriendlyName"
- } else {
- ""
- }
+ } else {
+ ""
+ }
return "WifiNetworkModel.Active(networkId=$networkId, isValidated=$isValidated, " +
"level=$level, ssid=$ssid$passpointString)"
}
companion object {
- @VisibleForTesting
- internal const val MAX_VALID_LEVEL = 4
+ @VisibleForTesting internal const val MAX_VALID_LEVEL = 4
}
}
companion object {
- @VisibleForTesting
- internal const val MIN_VALID_LEVEL = 0
+ @VisibleForTesting internal const val MIN_VALID_LEVEL = 0
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModel.kt
index 95431afb71bb..0f5ff91866fa 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModel.kt
@@ -25,8 +25,6 @@ import com.android.systemui.R
import com.android.systemui.common.shared.model.ContentDescription
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
-import com.android.systemui.statusbar.pipeline.dagger.WifiTableLog
-import com.android.systemui.statusbar.pipeline.wifi.ui.model.WifiIcon
import com.android.systemui.log.table.TableLogBuffer
import com.android.systemui.log.table.logDiffsForTable
import com.android.systemui.statusbar.connectivity.WifiIcons.WIFI_FULL_ICONS
@@ -34,13 +32,15 @@ import com.android.systemui.statusbar.connectivity.WifiIcons.WIFI_NO_INTERNET_IC
import com.android.systemui.statusbar.connectivity.WifiIcons.WIFI_NO_NETWORK
import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags
import com.android.systemui.statusbar.pipeline.airplane.ui.viewmodel.AirplaneModeViewModel
+import com.android.systemui.statusbar.pipeline.dagger.WifiTableLog
import com.android.systemui.statusbar.pipeline.shared.ConnectivityConstants
import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger
import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger.Companion.logOutputChange
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.domain.interactor.WifiInteractor
import com.android.systemui.statusbar.pipeline.wifi.shared.WifiConstants
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
+import com.android.systemui.statusbar.pipeline.wifi.ui.model.WifiIcon
import javax.inject.Inject
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.Flow
@@ -55,15 +55,12 @@ import kotlinx.coroutines.flow.stateIn
/**
* Models the UI state for the status bar wifi icon.
*
- * This class exposes three view models, one per status bar location:
- * - [home]
- * - [keyguard]
- * - [qs]
- * In order to get the UI state for the wifi icon, you must use one of those view models (whichever
- * is correct for your location).
+ * This class exposes three view models, one per status bar location: [home], [keyguard], and [qs].
+ * In order to get the UI state for the wifi icon, you must use one of those view models (whichever
+ * is correct for your location).
*
- * Internally, this class maintains the current state of the wifi icon and notifies those three
- * view models of any changes.
+ * Internally, this class maintains the current state of the wifi icon and notifies those three view
+ * models of any changes.
*/
@SysUISingleton
class WifiViewModel
@@ -85,12 +82,13 @@ constructor(
is WifiNetworkModel.Unavailable -> WifiIcon.Hidden
is WifiNetworkModel.Invalid -> WifiIcon.Hidden
is WifiNetworkModel.CarrierMerged -> WifiIcon.Hidden
- is WifiNetworkModel.Inactive -> WifiIcon.Visible(
- res = WIFI_NO_NETWORK,
- ContentDescription.Loaded(
- "${context.getString(WIFI_NO_CONNECTION)},${context.getString(NO_INTERNET)}"
+ is WifiNetworkModel.Inactive ->
+ WifiIcon.Visible(
+ res = WIFI_NO_NETWORK,
+ ContentDescription.Loaded(
+ "${context.getString(WIFI_NO_CONNECTION)},${context.getString(NO_INTERNET)}"
+ )
)
- )
is WifiNetworkModel.Active -> {
val levelDesc = context.getString(WIFI_CONNECTION_STRENGTH[this.level])
when {
@@ -114,25 +112,25 @@ constructor(
/** The wifi icon that should be displayed. */
private val wifiIcon: StateFlow<WifiIcon> =
combine(
- interactor.isEnabled,
- interactor.isDefault,
- interactor.isForceHidden,
- interactor.wifiNetwork,
- ) { isEnabled, isDefault, isForceHidden, wifiNetwork ->
- if (!isEnabled || isForceHidden || wifiNetwork is WifiNetworkModel.CarrierMerged) {
- return@combine WifiIcon.Hidden
- }
+ interactor.isEnabled,
+ interactor.isDefault,
+ interactor.isForceHidden,
+ interactor.wifiNetwork,
+ ) { isEnabled, isDefault, isForceHidden, wifiNetwork ->
+ if (!isEnabled || isForceHidden || wifiNetwork is WifiNetworkModel.CarrierMerged) {
+ return@combine WifiIcon.Hidden
+ }
- val icon = wifiNetwork.icon()
+ val icon = wifiNetwork.icon()
- return@combine when {
- isDefault -> icon
- wifiConstants.alwaysShowIconIfEnabled -> icon
- !connectivityConstants.hasDataCapabilities -> icon
- wifiNetwork is WifiNetworkModel.Active && wifiNetwork.isValidated -> icon
- else -> WifiIcon.Hidden
+ return@combine when {
+ isDefault -> icon
+ wifiConstants.alwaysShowIconIfEnabled -> icon
+ !connectivityConstants.hasDataCapabilities -> icon
+ wifiNetwork is WifiNetworkModel.Active && wifiNetwork.isValidated -> icon
+ else -> WifiIcon.Hidden
+ }
}
- }
.logDiffsForTable(
wifiTableLogBuffer,
columnPrefix = "",
@@ -147,34 +145,34 @@ constructor(
/** The wifi activity status. Null if we shouldn't display the activity status. */
private val activity: Flow<DataActivityModel?> =
if (!connectivityConstants.shouldShowActivityConfig) {
- flowOf(null)
- } else {
- combine(interactor.activity, interactor.ssid) { activity, ssid ->
- when (ssid) {
- null -> null
- else -> activity
+ flowOf(null)
+ } else {
+ combine(interactor.activity, interactor.ssid) { activity, ssid ->
+ when (ssid) {
+ null -> null
+ else -> activity
+ }
}
}
- }
- .distinctUntilChanged()
- .logOutputChange(logger, "activity")
- .stateIn(scope, started = SharingStarted.WhileSubscribed(), initialValue = null)
+ .distinctUntilChanged()
+ .logOutputChange(logger, "activity")
+ .stateIn(scope, started = SharingStarted.WhileSubscribed(), initialValue = null)
private val isActivityInViewVisible: Flow<Boolean> =
- activity
- .map { it?.hasActivityIn == true }
- .stateIn(scope, started = SharingStarted.WhileSubscribed(), initialValue = false)
+ activity
+ .map { it?.hasActivityIn == true }
+ .stateIn(scope, started = SharingStarted.WhileSubscribed(), initialValue = false)
private val isActivityOutViewVisible: Flow<Boolean> =
- activity
- .map { it?.hasActivityOut == true }
- .stateIn(scope, started = SharingStarted.WhileSubscribed(), initialValue = false)
+ activity
+ .map { it?.hasActivityOut == true }
+ .stateIn(scope, started = SharingStarted.WhileSubscribed(), initialValue = false)
private val isActivityContainerVisible: Flow<Boolean> =
- combine(isActivityInViewVisible, isActivityOutViewVisible) { activityIn, activityOut ->
- activityIn || activityOut
- }
- .stateIn(scope, started = SharingStarted.WhileSubscribed(), initialValue = false)
+ combine(isActivityInViewVisible, isActivityOutViewVisible) { activityIn, activityOut ->
+ activityIn || activityOut
+ }
+ .stateIn(scope, started = SharingStarted.WhileSubscribed(), initialValue = false)
// TODO(b/238425913): It isn't ideal for the wifi icon to need to know about whether the
// airplane icon is visible. Instead, we should have a parent StatusBarSystemIconsViewModel
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/CarrierMergedConnectionRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/CarrierMergedConnectionRepositoryTest.kt
index abb45619e1dd..f0f213bc0d58 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/CarrierMergedConnectionRepositoryTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/CarrierMergedConnectionRepositoryTest.kt
@@ -26,8 +26,8 @@ import com.android.systemui.statusbar.pipeline.mobile.data.model.MobileConnectio
import com.android.systemui.statusbar.pipeline.mobile.data.model.NetworkNameModel
import com.android.systemui.statusbar.pipeline.mobile.data.model.ResolvedNetworkType
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.data.repository.FakeWifiRepository
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import com.android.systemui.util.mockito.whenever
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.ExperimentalCoroutinesApi
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/FullMobileConnectionRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/FullMobileConnectionRepositoryTest.kt
index c02ca01cedc4..cd4d8472763f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/FullMobileConnectionRepositoryTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/FullMobileConnectionRepositoryTest.kt
@@ -32,8 +32,8 @@ import com.android.systemui.statusbar.pipeline.mobile.data.model.NetworkNameMode
import com.android.systemui.statusbar.pipeline.mobile.data.repository.FakeMobileConnectionRepository
import com.android.systemui.statusbar.pipeline.mobile.data.repository.MobileConnectionRepository
import com.android.systemui.statusbar.pipeline.mobile.data.repository.prod.MobileTelephonyHelpers.getTelephonyCallbackForType
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.data.repository.FakeWifiRepository
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.eq
import com.android.systemui.util.mockito.mock
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryTest.kt
index 673e5599fce7..4e2483479e42 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/mobile/data/repository/prod/MobileConnectionsRepositoryTest.kt
@@ -44,8 +44,8 @@ import com.android.systemui.statusbar.pipeline.mobile.data.repository.MobileConn
import com.android.systemui.statusbar.pipeline.mobile.data.repository.prod.FullMobileConnectionRepository.Factory.Companion.tableBufferLogName
import com.android.systemui.statusbar.pipeline.mobile.util.FakeMobileMappingsProxy
import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.data.repository.FakeWifiRepository
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.argumentCaptor
import com.android.systemui.util.mockito.eq
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/FakeWifiRepository.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/FakeWifiRepository.kt
index f5837d698c51..1bf431b4ea13 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/FakeWifiRepository.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/FakeWifiRepository.kt
@@ -17,8 +17,8 @@
package com.android.systemui.statusbar.pipeline.wifi.data.repository
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.data.repository.prod.WifiRepositoryImpl.Companion.ACTIVITY_DEFAULT
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/DisabledWifiRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/DisabledWifiRepositoryTest.kt
index 3c4e85bd231e..9cf08c03b5d1 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/DisabledWifiRepositoryTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/DisabledWifiRepositoryTest.kt
@@ -19,7 +19,7 @@ package com.android.systemui.statusbar.pipeline.wifi.data.repository.prod
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImplTest.kt
index 7099f1f0af2d..db791bbb1f1f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImplTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImplTest.kt
@@ -36,8 +36,8 @@ import com.android.systemui.broadcast.BroadcastDispatcher
import com.android.systemui.log.table.TableLogBuffer
import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.data.repository.prod.WifiRepositoryImpl.Companion.WIFI_NETWORK_DEFAULT
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import com.android.systemui.util.concurrency.FakeExecutor
import com.android.systemui.util.mockito.any
import com.android.systemui.util.mockito.argumentCaptor
@@ -83,13 +83,14 @@ class WifiRepositoryImplTest : SysuiTestCase() {
fun setUp() {
MockitoAnnotations.initMocks(this)
whenever(
- broadcastDispatcher.broadcastFlow(
- any(),
- nullable(),
- anyInt(),
- nullable(),
+ broadcastDispatcher.broadcastFlow(
+ any(),
+ nullable(),
+ anyInt(),
+ nullable(),
+ )
)
- ).thenReturn(flowOf(Unit))
+ .thenReturn(flowOf(Unit))
executor = FakeExecutor(FakeSystemClock())
scope = CoroutineScope(IMMEDIATE)
underTest = createRepo()
@@ -101,150 +102,152 @@ class WifiRepositoryImplTest : SysuiTestCase() {
}
@Test
- fun isWifiEnabled_initiallyGetsWifiManagerValue() = runBlocking(IMMEDIATE) {
- whenever(wifiManager.isWifiEnabled).thenReturn(true)
+ fun isWifiEnabled_initiallyGetsWifiManagerValue() =
+ runBlocking(IMMEDIATE) {
+ whenever(wifiManager.isWifiEnabled).thenReturn(true)
- underTest = createRepo()
+ underTest = createRepo()
- assertThat(underTest.isWifiEnabled.value).isTrue()
- }
+ assertThat(underTest.isWifiEnabled.value).isTrue()
+ }
@Test
- fun isWifiEnabled_networkCapabilitiesChanged_valueUpdated() = runBlocking(IMMEDIATE) {
- // We need to call launch on the flows so that they start updating
- val networkJob = underTest.wifiNetwork.launchIn(this)
- val enabledJob = underTest.isWifiEnabled.launchIn(this)
+ fun isWifiEnabled_networkCapabilitiesChanged_valueUpdated() =
+ runBlocking(IMMEDIATE) {
+ // We need to call launch on the flows so that they start updating
+ val networkJob = underTest.wifiNetwork.launchIn(this)
+ val enabledJob = underTest.isWifiEnabled.launchIn(this)
- whenever(wifiManager.isWifiEnabled).thenReturn(true)
- getNetworkCallback().onCapabilitiesChanged(
- NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO)
- )
+ whenever(wifiManager.isWifiEnabled).thenReturn(true)
+ getNetworkCallback()
+ .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
- assertThat(underTest.isWifiEnabled.value).isTrue()
+ assertThat(underTest.isWifiEnabled.value).isTrue()
- whenever(wifiManager.isWifiEnabled).thenReturn(false)
- getNetworkCallback().onCapabilitiesChanged(
- NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO)
- )
+ whenever(wifiManager.isWifiEnabled).thenReturn(false)
+ getNetworkCallback()
+ .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
- assertThat(underTest.isWifiEnabled.value).isFalse()
+ assertThat(underTest.isWifiEnabled.value).isFalse()
- networkJob.cancel()
- enabledJob.cancel()
- }
+ networkJob.cancel()
+ enabledJob.cancel()
+ }
@Test
- fun isWifiEnabled_networkLost_valueUpdated() = runBlocking(IMMEDIATE) {
- // We need to call launch on the flows so that they start updating
- val networkJob = underTest.wifiNetwork.launchIn(this)
- val enabledJob = underTest.isWifiEnabled.launchIn(this)
+ fun isWifiEnabled_networkLost_valueUpdated() =
+ runBlocking(IMMEDIATE) {
+ // We need to call launch on the flows so that they start updating
+ val networkJob = underTest.wifiNetwork.launchIn(this)
+ val enabledJob = underTest.isWifiEnabled.launchIn(this)
- whenever(wifiManager.isWifiEnabled).thenReturn(true)
- getNetworkCallback().onLost(NETWORK)
+ whenever(wifiManager.isWifiEnabled).thenReturn(true)
+ getNetworkCallback().onLost(NETWORK)
- assertThat(underTest.isWifiEnabled.value).isTrue()
+ assertThat(underTest.isWifiEnabled.value).isTrue()
- whenever(wifiManager.isWifiEnabled).thenReturn(false)
- getNetworkCallback().onLost(NETWORK)
+ whenever(wifiManager.isWifiEnabled).thenReturn(false)
+ getNetworkCallback().onLost(NETWORK)
- assertThat(underTest.isWifiEnabled.value).isFalse()
+ assertThat(underTest.isWifiEnabled.value).isFalse()
- networkJob.cancel()
- enabledJob.cancel()
- }
+ networkJob.cancel()
+ enabledJob.cancel()
+ }
@Test
- fun isWifiEnabled_intentsReceived_valueUpdated() = runBlocking(IMMEDIATE) {
- val intentFlow = MutableSharedFlow<Unit>()
- whenever(
- broadcastDispatcher.broadcastFlow(
- any(),
- nullable(),
- anyInt(),
- nullable(),
- )
- ).thenReturn(intentFlow)
- underTest = createRepo()
+ fun isWifiEnabled_intentsReceived_valueUpdated() =
+ runBlocking(IMMEDIATE) {
+ val intentFlow = MutableSharedFlow<Unit>()
+ whenever(
+ broadcastDispatcher.broadcastFlow(
+ any(),
+ nullable(),
+ anyInt(),
+ nullable(),
+ )
+ )
+ .thenReturn(intentFlow)
+ underTest = createRepo()
- val job = underTest.isWifiEnabled.launchIn(this)
+ val job = underTest.isWifiEnabled.launchIn(this)
- whenever(wifiManager.isWifiEnabled).thenReturn(true)
- intentFlow.emit(Unit)
+ whenever(wifiManager.isWifiEnabled).thenReturn(true)
+ intentFlow.emit(Unit)
- assertThat(underTest.isWifiEnabled.value).isTrue()
+ assertThat(underTest.isWifiEnabled.value).isTrue()
- whenever(wifiManager.isWifiEnabled).thenReturn(false)
- intentFlow.emit(Unit)
+ whenever(wifiManager.isWifiEnabled).thenReturn(false)
+ intentFlow.emit(Unit)
- assertThat(underTest.isWifiEnabled.value).isFalse()
+ assertThat(underTest.isWifiEnabled.value).isFalse()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun isWifiEnabled_bothIntentAndNetworkUpdates_valueAlwaysUpdated() = runBlocking(IMMEDIATE) {
- val intentFlow = MutableSharedFlow<Unit>()
- whenever(
- broadcastDispatcher.broadcastFlow(
- any(),
- nullable(),
- anyInt(),
- nullable(),
- )
- ).thenReturn(intentFlow)
- underTest = createRepo()
-
- val networkJob = underTest.wifiNetwork.launchIn(this)
- val enabledJob = underTest.isWifiEnabled.launchIn(this)
-
- whenever(wifiManager.isWifiEnabled).thenReturn(false)
- intentFlow.emit(Unit)
- assertThat(underTest.isWifiEnabled.value).isFalse()
-
- whenever(wifiManager.isWifiEnabled).thenReturn(true)
- getNetworkCallback().onLost(NETWORK)
- assertThat(underTest.isWifiEnabled.value).isTrue()
-
- whenever(wifiManager.isWifiEnabled).thenReturn(false)
- getNetworkCallback().onCapabilitiesChanged(
- NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO)
- )
- assertThat(underTest.isWifiEnabled.value).isFalse()
+ fun isWifiEnabled_bothIntentAndNetworkUpdates_valueAlwaysUpdated() =
+ runBlocking(IMMEDIATE) {
+ val intentFlow = MutableSharedFlow<Unit>()
+ whenever(
+ broadcastDispatcher.broadcastFlow(
+ any(),
+ nullable(),
+ anyInt(),
+ nullable(),
+ )
+ )
+ .thenReturn(intentFlow)
+ underTest = createRepo()
+
+ val networkJob = underTest.wifiNetwork.launchIn(this)
+ val enabledJob = underTest.isWifiEnabled.launchIn(this)
+
+ whenever(wifiManager.isWifiEnabled).thenReturn(false)
+ intentFlow.emit(Unit)
+ assertThat(underTest.isWifiEnabled.value).isFalse()
+
+ whenever(wifiManager.isWifiEnabled).thenReturn(true)
+ getNetworkCallback().onLost(NETWORK)
+ assertThat(underTest.isWifiEnabled.value).isTrue()
+
+ whenever(wifiManager.isWifiEnabled).thenReturn(false)
+ getNetworkCallback()
+ .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
+ assertThat(underTest.isWifiEnabled.value).isFalse()
- whenever(wifiManager.isWifiEnabled).thenReturn(true)
- intentFlow.emit(Unit)
- assertThat(underTest.isWifiEnabled.value).isTrue()
+ whenever(wifiManager.isWifiEnabled).thenReturn(true)
+ intentFlow.emit(Unit)
+ assertThat(underTest.isWifiEnabled.value).isTrue()
- networkJob.cancel()
- enabledJob.cancel()
- }
+ networkJob.cancel()
+ enabledJob.cancel()
+ }
@Test
- fun isWifiDefault_initiallyGetsDefault() = runBlocking(IMMEDIATE) {
- val job = underTest.isWifiDefault.launchIn(this)
+ fun isWifiDefault_initiallyGetsDefault() =
+ runBlocking(IMMEDIATE) {
+ val job = underTest.isWifiDefault.launchIn(this)
- assertThat(underTest.isWifiDefault.value).isFalse()
+ assertThat(underTest.isWifiDefault.value).isFalse()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun isWifiDefault_wifiNetwork_isTrue() = runBlocking(IMMEDIATE) {
- val job = underTest.isWifiDefault.launchIn(this)
+ fun isWifiDefault_wifiNetwork_isTrue() =
+ runBlocking(IMMEDIATE) {
+ val job = underTest.isWifiDefault.launchIn(this)
- val wifiInfo = mock<WifiInfo>().apply {
- whenever(this.ssid).thenReturn(SSID)
- }
+ val wifiInfo = mock<WifiInfo>().apply { whenever(this.ssid).thenReturn(SSID) }
- getDefaultNetworkCallback().onCapabilitiesChanged(
- NETWORK,
- createWifiNetworkCapabilities(wifiInfo)
- )
+ getDefaultNetworkCallback()
+ .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(wifiInfo))
- assertThat(underTest.isWifiDefault.value).isTrue()
+ assertThat(underTest.isWifiDefault.value).isTrue()
- job.cancel()
- }
+ job.cancel()
+ }
/** Regression test for b/266628069. */
@Test
@@ -252,16 +255,18 @@ class WifiRepositoryImplTest : SysuiTestCase() {
runBlocking(IMMEDIATE) {
val job = underTest.isWifiDefault.launchIn(this)
- val transportInfo = VpnTransportInfo(
- /* type= */ 0,
- /* sessionId= */ "sessionId",
- )
- val networkCapabilities = mock<NetworkCapabilities>().also {
- whenever(it.hasTransport(TRANSPORT_VPN)).thenReturn(true)
- whenever(it.hasTransport(TRANSPORT_WIFI)).thenReturn(false)
- whenever(it.hasTransport(TRANSPORT_CELLULAR)).thenReturn(false)
- whenever(it.transportInfo).thenReturn(transportInfo)
- }
+ val transportInfo =
+ VpnTransportInfo(
+ /* type= */ 0,
+ /* sessionId= */ "sessionId",
+ )
+ val networkCapabilities =
+ mock<NetworkCapabilities>().also {
+ whenever(it.hasTransport(TRANSPORT_VPN)).thenReturn(true)
+ whenever(it.hasTransport(TRANSPORT_WIFI)).thenReturn(false)
+ whenever(it.hasTransport(TRANSPORT_CELLULAR)).thenReturn(false)
+ whenever(it.transportInfo).thenReturn(transportInfo)
+ }
getDefaultNetworkCallback().onCapabilitiesChanged(NETWORK, networkCapabilities)
@@ -276,16 +281,18 @@ class WifiRepositoryImplTest : SysuiTestCase() {
runBlocking(IMMEDIATE) {
val job = underTest.isWifiDefault.launchIn(this)
- val transportInfo = VpnTransportInfo(
- /* type= */ 0,
- /* sessionId= */ "sessionId",
- )
- val networkCapabilities = mock<NetworkCapabilities>().also {
- whenever(it.hasTransport(TRANSPORT_VPN)).thenReturn(true)
- whenever(it.hasTransport(TRANSPORT_WIFI)).thenReturn(true)
- whenever(it.hasTransport(TRANSPORT_CELLULAR)).thenReturn(false)
- whenever(it.transportInfo).thenReturn(transportInfo)
- }
+ val transportInfo =
+ VpnTransportInfo(
+ /* type= */ 0,
+ /* sessionId= */ "sessionId",
+ )
+ val networkCapabilities =
+ mock<NetworkCapabilities>().also {
+ whenever(it.hasTransport(TRANSPORT_VPN)).thenReturn(true)
+ whenever(it.hasTransport(TRANSPORT_WIFI)).thenReturn(true)
+ whenever(it.hasTransport(TRANSPORT_CELLULAR)).thenReturn(false)
+ whenever(it.transportInfo).thenReturn(transportInfo)
+ }
getDefaultNetworkCallback().onCapabilitiesChanged(NETWORK, networkCapabilities)
@@ -295,31 +302,34 @@ class WifiRepositoryImplTest : SysuiTestCase() {
}
@Test
- fun isWifiDefault_cellularVcnNetwork_isTrue() = runBlocking(IMMEDIATE) {
- val job = underTest.isWifiDefault.launchIn(this)
+ fun isWifiDefault_cellularVcnNetwork_isTrue() =
+ runBlocking(IMMEDIATE) {
+ val job = underTest.isWifiDefault.launchIn(this)
- val capabilities = mock<NetworkCapabilities>().apply {
- whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
- whenever(this.transportInfo).thenReturn(VcnTransportInfo(PRIMARY_WIFI_INFO))
- }
+ val capabilities =
+ mock<NetworkCapabilities>().apply {
+ whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
+ whenever(this.transportInfo).thenReturn(VcnTransportInfo(PRIMARY_WIFI_INFO))
+ }
- getDefaultNetworkCallback().onCapabilitiesChanged(NETWORK, capabilities)
+ getDefaultNetworkCallback().onCapabilitiesChanged(NETWORK, capabilities)
- assertThat(underTest.isWifiDefault.value).isTrue()
+ assertThat(underTest.isWifiDefault.value).isTrue()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
fun wifiNetwork_cellularAndWifiTransports_usesCellular_isTrue() =
runBlocking(IMMEDIATE) {
val job = underTest.isWifiDefault.launchIn(this)
- val capabilities = mock<NetworkCapabilities>().apply {
- whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
- whenever(this.hasTransport(TRANSPORT_WIFI)).thenReturn(true)
- whenever(this.transportInfo).thenReturn(VcnTransportInfo(PRIMARY_WIFI_INFO))
- }
+ val capabilities =
+ mock<NetworkCapabilities>().apply {
+ whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
+ whenever(this.hasTransport(TRANSPORT_WIFI)).thenReturn(true)
+ whenever(this.transportInfo).thenReturn(VcnTransportInfo(PRIMARY_WIFI_INFO))
+ }
getDefaultNetworkCallback().onCapabilitiesChanged(NETWORK, capabilities)
@@ -329,117 +339,115 @@ class WifiRepositoryImplTest : SysuiTestCase() {
}
@Test
- fun isWifiDefault_cellularNotVcnNetwork_isFalse() = runBlocking(IMMEDIATE) {
- val job = underTest.isWifiDefault.launchIn(this)
+ fun isWifiDefault_cellularNotVcnNetwork_isFalse() =
+ runBlocking(IMMEDIATE) {
+ val job = underTest.isWifiDefault.launchIn(this)
- val capabilities = mock<NetworkCapabilities>().apply {
- whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
- whenever(this.transportInfo).thenReturn(mock())
- }
+ val capabilities =
+ mock<NetworkCapabilities>().apply {
+ whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
+ whenever(this.transportInfo).thenReturn(mock())
+ }
- getDefaultNetworkCallback().onCapabilitiesChanged(NETWORK, capabilities)
+ getDefaultNetworkCallback().onCapabilitiesChanged(NETWORK, capabilities)
- assertThat(underTest.isWifiDefault.value).isFalse()
+ assertThat(underTest.isWifiDefault.value).isFalse()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun isWifiDefault_wifiNetworkLost_isFalse() = runBlocking(IMMEDIATE) {
- val job = underTest.isWifiDefault.launchIn(this)
+ fun isWifiDefault_wifiNetworkLost_isFalse() =
+ runBlocking(IMMEDIATE) {
+ val job = underTest.isWifiDefault.launchIn(this)
- // First, add a network
- getDefaultNetworkCallback()
- .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
- assertThat(underTest.isWifiDefault.value).isTrue()
+ // First, add a network
+ getDefaultNetworkCallback()
+ .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
+ assertThat(underTest.isWifiDefault.value).isTrue()
- // WHEN the network is lost
- getDefaultNetworkCallback().onLost(NETWORK)
+ // WHEN the network is lost
+ getDefaultNetworkCallback().onLost(NETWORK)
- // THEN we update to false
- assertThat(underTest.isWifiDefault.value).isFalse()
+ // THEN we update to false
+ assertThat(underTest.isWifiDefault.value).isFalse()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun wifiNetwork_initiallyGetsDefault() = runBlocking(IMMEDIATE) {
- var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
+ fun wifiNetwork_initiallyGetsDefault() =
+ runBlocking(IMMEDIATE) {
+ var latest: WifiNetworkModel? = null
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
- assertThat(latest).isEqualTo(WIFI_NETWORK_DEFAULT)
+ assertThat(latest).isEqualTo(WIFI_NETWORK_DEFAULT)
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun wifiNetwork_primaryWifiNetworkAdded_flowHasNetwork() = runBlocking(IMMEDIATE) {
- var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
+ fun wifiNetwork_primaryWifiNetworkAdded_flowHasNetwork() =
+ runBlocking(IMMEDIATE) {
+ var latest: WifiNetworkModel? = null
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
- val wifiInfo = mock<WifiInfo>().apply {
- whenever(this.ssid).thenReturn(SSID)
- whenever(this.isPrimary).thenReturn(true)
- }
- val network = mock<Network>().apply {
- whenever(this.getNetId()).thenReturn(NETWORK_ID)
- }
+ val wifiInfo =
+ mock<WifiInfo>().apply {
+ whenever(this.ssid).thenReturn(SSID)
+ whenever(this.isPrimary).thenReturn(true)
+ }
+ val network = mock<Network>().apply { whenever(this.getNetId()).thenReturn(NETWORK_ID) }
- getNetworkCallback().onCapabilitiesChanged(network, createWifiNetworkCapabilities(wifiInfo))
+ getNetworkCallback()
+ .onCapabilitiesChanged(network, createWifiNetworkCapabilities(wifiInfo))
- assertThat(latest is WifiNetworkModel.Active).isTrue()
- val latestActive = latest as WifiNetworkModel.Active
- assertThat(latestActive.networkId).isEqualTo(NETWORK_ID)
- assertThat(latestActive.ssid).isEqualTo(SSID)
+ assertThat(latest is WifiNetworkModel.Active).isTrue()
+ val latestActive = latest as WifiNetworkModel.Active
+ assertThat(latestActive.networkId).isEqualTo(NETWORK_ID)
+ assertThat(latestActive.ssid).isEqualTo(SSID)
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun wifiNetwork_isCarrierMerged_flowHasCarrierMerged() = runBlocking(IMMEDIATE) {
- var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
+ fun wifiNetwork_isCarrierMerged_flowHasCarrierMerged() =
+ runBlocking(IMMEDIATE) {
+ var latest: WifiNetworkModel? = null
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
- val wifiInfo = mock<WifiInfo>().apply {
- whenever(this.isPrimary).thenReturn(true)
- whenever(this.isCarrierMerged).thenReturn(true)
- }
+ val wifiInfo =
+ mock<WifiInfo>().apply {
+ whenever(this.isPrimary).thenReturn(true)
+ whenever(this.isCarrierMerged).thenReturn(true)
+ }
- getNetworkCallback().onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(wifiInfo))
+ getNetworkCallback()
+ .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(wifiInfo))
- assertThat(latest is WifiNetworkModel.CarrierMerged).isTrue()
+ assertThat(latest is WifiNetworkModel.CarrierMerged).isTrue()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
fun wifiNetwork_carrierMergedButInvalidSubId_flowHasInvalid() =
runBlocking(IMMEDIATE) {
var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
- val wifiInfo = mock<WifiInfo>().apply {
- whenever(this.isPrimary).thenReturn(true)
- whenever(this.isCarrierMerged).thenReturn(true)
- whenever(this.subscriptionId).thenReturn(INVALID_SUBSCRIPTION_ID)
- }
+ val wifiInfo =
+ mock<WifiInfo>().apply {
+ whenever(this.isPrimary).thenReturn(true)
+ whenever(this.isCarrierMerged).thenReturn(true)
+ whenever(this.subscriptionId).thenReturn(INVALID_SUBSCRIPTION_ID)
+ }
- getNetworkCallback().onCapabilitiesChanged(
- NETWORK,
- createWifiNetworkCapabilities(wifiInfo),
- )
+ getNetworkCallback()
+ .onCapabilitiesChanged(
+ NETWORK,
+ createWifiNetworkCapabilities(wifiInfo),
+ )
assertThat(latest).isInstanceOf(WifiNetworkModel.Invalid::class.java)
@@ -450,26 +458,25 @@ class WifiRepositoryImplTest : SysuiTestCase() {
fun wifiNetwork_isCarrierMerged_getsCorrectValues() =
runBlocking(IMMEDIATE) {
var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
val rssi = -57
- val wifiInfo = mock<WifiInfo>().apply {
- whenever(this.isPrimary).thenReturn(true)
- whenever(this.isCarrierMerged).thenReturn(true)
- whenever(this.rssi).thenReturn(rssi)
- whenever(this.subscriptionId).thenReturn(567)
- }
+ val wifiInfo =
+ mock<WifiInfo>().apply {
+ whenever(this.isPrimary).thenReturn(true)
+ whenever(this.isCarrierMerged).thenReturn(true)
+ whenever(this.rssi).thenReturn(rssi)
+ whenever(this.subscriptionId).thenReturn(567)
+ }
whenever(wifiManager.calculateSignalLevel(rssi)).thenReturn(2)
whenever(wifiManager.maxSignalLevel).thenReturn(5)
- getNetworkCallback().onCapabilitiesChanged(
- NETWORK,
- createWifiNetworkCapabilities(wifiInfo),
- )
+ getNetworkCallback()
+ .onCapabilitiesChanged(
+ NETWORK,
+ createWifiNetworkCapabilities(wifiInfo),
+ )
assertThat(latest is WifiNetworkModel.CarrierMerged).isTrue()
val latestCarrierMerged = latest as WifiNetworkModel.CarrierMerged
@@ -483,73 +490,71 @@ class WifiRepositoryImplTest : SysuiTestCase() {
}
@Test
- fun wifiNetwork_notValidated_networkNotValidated() = runBlocking(IMMEDIATE) {
- var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
+ fun wifiNetwork_notValidated_networkNotValidated() =
+ runBlocking(IMMEDIATE) {
+ var latest: WifiNetworkModel? = null
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
- getNetworkCallback().onCapabilitiesChanged(
- NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO, isValidated = false)
- )
+ getNetworkCallback()
+ .onCapabilitiesChanged(
+ NETWORK,
+ createWifiNetworkCapabilities(PRIMARY_WIFI_INFO, isValidated = false)
+ )
- assertThat((latest as WifiNetworkModel.Active).isValidated).isFalse()
+ assertThat((latest as WifiNetworkModel.Active).isValidated).isFalse()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun wifiNetwork_validated_networkValidated() = runBlocking(IMMEDIATE) {
- var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
+ fun wifiNetwork_validated_networkValidated() =
+ runBlocking(IMMEDIATE) {
+ var latest: WifiNetworkModel? = null
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
- getNetworkCallback().onCapabilitiesChanged(
- NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO, isValidated = true)
- )
+ getNetworkCallback()
+ .onCapabilitiesChanged(
+ NETWORK,
+ createWifiNetworkCapabilities(PRIMARY_WIFI_INFO, isValidated = true)
+ )
- assertThat((latest as WifiNetworkModel.Active).isValidated).isTrue()
+ assertThat((latest as WifiNetworkModel.Active).isValidated).isTrue()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun wifiNetwork_nonPrimaryWifiNetworkAdded_flowHasNoNetwork() = runBlocking(IMMEDIATE) {
- var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
+ fun wifiNetwork_nonPrimaryWifiNetworkAdded_flowHasNoNetwork() =
+ runBlocking(IMMEDIATE) {
+ var latest: WifiNetworkModel? = null
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
- val wifiInfo = mock<WifiInfo>().apply {
- whenever(this.ssid).thenReturn(SSID)
- whenever(this.isPrimary).thenReturn(false)
- }
+ val wifiInfo =
+ mock<WifiInfo>().apply {
+ whenever(this.ssid).thenReturn(SSID)
+ whenever(this.isPrimary).thenReturn(false)
+ }
- getNetworkCallback().onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(wifiInfo))
+ getNetworkCallback()
+ .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(wifiInfo))
- assertThat(latest is WifiNetworkModel.Inactive).isTrue()
+ assertThat(latest is WifiNetworkModel.Inactive).isTrue()
- job.cancel()
- }
+ job.cancel()
+ }
/** Regression test for b/266628069. */
@Test
fun wifiNetwork_transportInfoIsNotWifi_flowHasNoNetwork() =
runBlocking(IMMEDIATE) {
var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
-
- val transportInfo = VpnTransportInfo(
- /* type= */ 0,
- /* sessionId= */ "sessionId",
- )
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+
+ val transportInfo =
+ VpnTransportInfo(
+ /* type= */ 0,
+ /* sessionId= */ "sessionId",
+ )
getNetworkCallback()
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(transportInfo))
@@ -559,86 +564,82 @@ class WifiRepositoryImplTest : SysuiTestCase() {
}
@Test
- fun wifiNetwork_cellularVcnNetworkAdded_flowHasNetwork() = runBlocking(IMMEDIATE) {
- var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
+ fun wifiNetwork_cellularVcnNetworkAdded_flowHasNetwork() =
+ runBlocking(IMMEDIATE) {
+ var latest: WifiNetworkModel? = null
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
- val capabilities = mock<NetworkCapabilities>().apply {
- whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
- whenever(this.transportInfo).thenReturn(VcnTransportInfo(PRIMARY_WIFI_INFO))
- }
+ val capabilities =
+ mock<NetworkCapabilities>().apply {
+ whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
+ whenever(this.transportInfo).thenReturn(VcnTransportInfo(PRIMARY_WIFI_INFO))
+ }
- getNetworkCallback().onCapabilitiesChanged(NETWORK, capabilities)
+ getNetworkCallback().onCapabilitiesChanged(NETWORK, capabilities)
- assertThat(latest is WifiNetworkModel.Active).isTrue()
- val latestActive = latest as WifiNetworkModel.Active
- assertThat(latestActive.networkId).isEqualTo(NETWORK_ID)
- assertThat(latestActive.ssid).isEqualTo(SSID)
+ assertThat(latest is WifiNetworkModel.Active).isTrue()
+ val latestActive = latest as WifiNetworkModel.Active
+ assertThat(latestActive.networkId).isEqualTo(NETWORK_ID)
+ assertThat(latestActive.ssid).isEqualTo(SSID)
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun wifiNetwork_nonPrimaryCellularVcnNetworkAdded_flowHasNoNetwork() = runBlocking(IMMEDIATE) {
- var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
-
- val wifiInfo = mock<WifiInfo>().apply {
- whenever(this.ssid).thenReturn(SSID)
- whenever(this.isPrimary).thenReturn(false)
- }
- val capabilities = mock<NetworkCapabilities>().apply {
- whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
- whenever(this.transportInfo).thenReturn(VcnTransportInfo(wifiInfo))
- }
+ fun wifiNetwork_nonPrimaryCellularVcnNetworkAdded_flowHasNoNetwork() =
+ runBlocking(IMMEDIATE) {
+ var latest: WifiNetworkModel? = null
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+
+ val wifiInfo =
+ mock<WifiInfo>().apply {
+ whenever(this.ssid).thenReturn(SSID)
+ whenever(this.isPrimary).thenReturn(false)
+ }
+ val capabilities =
+ mock<NetworkCapabilities>().apply {
+ whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
+ whenever(this.transportInfo).thenReturn(VcnTransportInfo(wifiInfo))
+ }
- getNetworkCallback().onCapabilitiesChanged(NETWORK, capabilities)
+ getNetworkCallback().onCapabilitiesChanged(NETWORK, capabilities)
- assertThat(latest is WifiNetworkModel.Inactive).isTrue()
+ assertThat(latest is WifiNetworkModel.Inactive).isTrue()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun wifiNetwork_cellularNotVcnNetworkAdded_flowHasNoNetwork() = runBlocking(IMMEDIATE) {
- var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
+ fun wifiNetwork_cellularNotVcnNetworkAdded_flowHasNoNetwork() =
+ runBlocking(IMMEDIATE) {
+ var latest: WifiNetworkModel? = null
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
- val capabilities = mock<NetworkCapabilities>().apply {
- whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
- whenever(this.transportInfo).thenReturn(mock())
- }
+ val capabilities =
+ mock<NetworkCapabilities>().apply {
+ whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
+ whenever(this.transportInfo).thenReturn(mock())
+ }
- getNetworkCallback().onCapabilitiesChanged(NETWORK, capabilities)
+ getNetworkCallback().onCapabilitiesChanged(NETWORK, capabilities)
- assertThat(latest is WifiNetworkModel.Inactive).isTrue()
+ assertThat(latest is WifiNetworkModel.Inactive).isTrue()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
fun wifiNetwork_cellularAndWifiTransports_usesCellular() =
runBlocking(IMMEDIATE) {
var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
-
- val capabilities = mock<NetworkCapabilities>().apply {
- whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
- whenever(this.hasTransport(TRANSPORT_WIFI)).thenReturn(true)
- whenever(this.transportInfo).thenReturn(VcnTransportInfo(PRIMARY_WIFI_INFO))
- }
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+
+ val capabilities =
+ mock<NetworkCapabilities>().apply {
+ whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
+ whenever(this.hasTransport(TRANSPORT_WIFI)).thenReturn(true)
+ whenever(this.transportInfo).thenReturn(VcnTransportInfo(PRIMARY_WIFI_INFO))
+ }
getNetworkCallback().onCapabilitiesChanged(NETWORK, capabilities)
@@ -651,309 +652,280 @@ class WifiRepositoryImplTest : SysuiTestCase() {
}
@Test
- fun wifiNetwork_newPrimaryWifiNetwork_flowHasNewNetwork() = runBlocking(IMMEDIATE) {
- var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
-
- // Start with the original network
- getNetworkCallback()
- .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
+ fun wifiNetwork_newPrimaryWifiNetwork_flowHasNewNetwork() =
+ runBlocking(IMMEDIATE) {
+ var latest: WifiNetworkModel? = null
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
- // WHEN we update to a new primary network
- val newNetworkId = 456
- val newNetwork = mock<Network>().apply {
- whenever(this.getNetId()).thenReturn(newNetworkId)
- }
- val newSsid = "CD"
- val newWifiInfo = mock<WifiInfo>().apply {
- whenever(this.ssid).thenReturn(newSsid)
- whenever(this.isPrimary).thenReturn(true)
- }
+ // Start with the original network
+ getNetworkCallback()
+ .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
+
+ // WHEN we update to a new primary network
+ val newNetworkId = 456
+ val newNetwork =
+ mock<Network>().apply { whenever(this.getNetId()).thenReturn(newNetworkId) }
+ val newSsid = "CD"
+ val newWifiInfo =
+ mock<WifiInfo>().apply {
+ whenever(this.ssid).thenReturn(newSsid)
+ whenever(this.isPrimary).thenReturn(true)
+ }
- getNetworkCallback().onCapabilitiesChanged(
- newNetwork, createWifiNetworkCapabilities(newWifiInfo)
- )
+ getNetworkCallback()
+ .onCapabilitiesChanged(newNetwork, createWifiNetworkCapabilities(newWifiInfo))
- // THEN we use the new network
- assertThat(latest is WifiNetworkModel.Active).isTrue()
- val latestActive = latest as WifiNetworkModel.Active
- assertThat(latestActive.networkId).isEqualTo(newNetworkId)
- assertThat(latestActive.ssid).isEqualTo(newSsid)
+ // THEN we use the new network
+ assertThat(latest is WifiNetworkModel.Active).isTrue()
+ val latestActive = latest as WifiNetworkModel.Active
+ assertThat(latestActive.networkId).isEqualTo(newNetworkId)
+ assertThat(latestActive.ssid).isEqualTo(newSsid)
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun wifiNetwork_newNonPrimaryWifiNetwork_flowHasOldNetwork() = runBlocking(IMMEDIATE) {
- var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
-
- // Start with the original network
- getNetworkCallback()
- .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
+ fun wifiNetwork_newNonPrimaryWifiNetwork_flowHasOldNetwork() =
+ runBlocking(IMMEDIATE) {
+ var latest: WifiNetworkModel? = null
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
- // WHEN we notify of a new but non-primary network
- val newNetworkId = 456
- val newNetwork = mock<Network>().apply {
- whenever(this.getNetId()).thenReturn(newNetworkId)
- }
- val newSsid = "EF"
- val newWifiInfo = mock<WifiInfo>().apply {
- whenever(this.ssid).thenReturn(newSsid)
- whenever(this.isPrimary).thenReturn(false)
- }
+ // Start with the original network
+ getNetworkCallback()
+ .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
+
+ // WHEN we notify of a new but non-primary network
+ val newNetworkId = 456
+ val newNetwork =
+ mock<Network>().apply { whenever(this.getNetId()).thenReturn(newNetworkId) }
+ val newSsid = "EF"
+ val newWifiInfo =
+ mock<WifiInfo>().apply {
+ whenever(this.ssid).thenReturn(newSsid)
+ whenever(this.isPrimary).thenReturn(false)
+ }
- getNetworkCallback().onCapabilitiesChanged(
- newNetwork, createWifiNetworkCapabilities(newWifiInfo)
- )
+ getNetworkCallback()
+ .onCapabilitiesChanged(newNetwork, createWifiNetworkCapabilities(newWifiInfo))
- // THEN we still use the original network
- assertThat(latest is WifiNetworkModel.Active).isTrue()
- val latestActive = latest as WifiNetworkModel.Active
- assertThat(latestActive.networkId).isEqualTo(NETWORK_ID)
- assertThat(latestActive.ssid).isEqualTo(SSID)
+ // THEN we still use the original network
+ assertThat(latest is WifiNetworkModel.Active).isTrue()
+ val latestActive = latest as WifiNetworkModel.Active
+ assertThat(latestActive.networkId).isEqualTo(NETWORK_ID)
+ assertThat(latestActive.ssid).isEqualTo(SSID)
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun wifiNetwork_newNetworkCapabilities_flowHasNewData() = runBlocking(IMMEDIATE) {
- var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
-
- val wifiInfo = mock<WifiInfo>().apply {
- whenever(this.ssid).thenReturn(SSID)
- whenever(this.isPrimary).thenReturn(true)
- }
+ fun wifiNetwork_newNetworkCapabilities_flowHasNewData() =
+ runBlocking(IMMEDIATE) {
+ var latest: WifiNetworkModel? = null
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
- // Start with the original network
- getNetworkCallback().onCapabilitiesChanged(
- NETWORK, createWifiNetworkCapabilities(wifiInfo, isValidated = true)
- )
+ val wifiInfo =
+ mock<WifiInfo>().apply {
+ whenever(this.ssid).thenReturn(SSID)
+ whenever(this.isPrimary).thenReturn(true)
+ }
- // WHEN we keep the same network ID but change the SSID
- val newSsid = "CD"
- val newWifiInfo = mock<WifiInfo>().apply {
- whenever(this.ssid).thenReturn(newSsid)
- whenever(this.isPrimary).thenReturn(true)
- }
+ // Start with the original network
+ getNetworkCallback()
+ .onCapabilitiesChanged(
+ NETWORK,
+ createWifiNetworkCapabilities(wifiInfo, isValidated = true)
+ )
+
+ // WHEN we keep the same network ID but change the SSID
+ val newSsid = "CD"
+ val newWifiInfo =
+ mock<WifiInfo>().apply {
+ whenever(this.ssid).thenReturn(newSsid)
+ whenever(this.isPrimary).thenReturn(true)
+ }
- getNetworkCallback().onCapabilitiesChanged(
- NETWORK, createWifiNetworkCapabilities(newWifiInfo, isValidated = false)
- )
+ getNetworkCallback()
+ .onCapabilitiesChanged(
+ NETWORK,
+ createWifiNetworkCapabilities(newWifiInfo, isValidated = false)
+ )
- // THEN we've updated to the new SSID
- assertThat(latest is WifiNetworkModel.Active).isTrue()
- val latestActive = latest as WifiNetworkModel.Active
- assertThat(latestActive.networkId).isEqualTo(NETWORK_ID)
- assertThat(latestActive.ssid).isEqualTo(newSsid)
- assertThat(latestActive.isValidated).isFalse()
+ // THEN we've updated to the new SSID
+ assertThat(latest is WifiNetworkModel.Active).isTrue()
+ val latestActive = latest as WifiNetworkModel.Active
+ assertThat(latestActive.networkId).isEqualTo(NETWORK_ID)
+ assertThat(latestActive.ssid).isEqualTo(newSsid)
+ assertThat(latestActive.isValidated).isFalse()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun wifiNetwork_noCurrentNetwork_networkLost_flowHasNoNetwork() = runBlocking(IMMEDIATE) {
- var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
+ fun wifiNetwork_noCurrentNetwork_networkLost_flowHasNoNetwork() =
+ runBlocking(IMMEDIATE) {
+ var latest: WifiNetworkModel? = null
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
- // WHEN we receive #onLost without any #onCapabilitiesChanged beforehand
- getNetworkCallback().onLost(NETWORK)
+ // WHEN we receive #onLost without any #onCapabilitiesChanged beforehand
+ getNetworkCallback().onLost(NETWORK)
- // THEN there's no crash and we still have no network
- assertThat(latest is WifiNetworkModel.Inactive).isTrue()
+ // THEN there's no crash and we still have no network
+ assertThat(latest is WifiNetworkModel.Inactive).isTrue()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun wifiNetwork_currentNetworkLost_flowHasNoNetwork() = runBlocking(IMMEDIATE) {
- var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
+ fun wifiNetwork_currentNetworkLost_flowHasNoNetwork() =
+ runBlocking(IMMEDIATE) {
+ var latest: WifiNetworkModel? = null
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
- getNetworkCallback()
- .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
- assertThat((latest as WifiNetworkModel.Active).networkId).isEqualTo(NETWORK_ID)
+ getNetworkCallback()
+ .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
+ assertThat((latest as WifiNetworkModel.Active).networkId).isEqualTo(NETWORK_ID)
- // WHEN we lose our current network
- getNetworkCallback().onLost(NETWORK)
+ // WHEN we lose our current network
+ getNetworkCallback().onLost(NETWORK)
- // THEN we update to no network
- assertThat(latest is WifiNetworkModel.Inactive).isTrue()
+ // THEN we update to no network
+ assertThat(latest is WifiNetworkModel.Inactive).isTrue()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun wifiNetwork_unknownNetworkLost_flowHasPreviousNetwork() = runBlocking(IMMEDIATE) {
- var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
+ fun wifiNetwork_unknownNetworkLost_flowHasPreviousNetwork() =
+ runBlocking(IMMEDIATE) {
+ var latest: WifiNetworkModel? = null
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
- getNetworkCallback()
- .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
- assertThat((latest as WifiNetworkModel.Active).networkId).isEqualTo(NETWORK_ID)
+ getNetworkCallback()
+ .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
+ assertThat((latest as WifiNetworkModel.Active).networkId).isEqualTo(NETWORK_ID)
- // WHEN we lose an unknown network
- val unknownNetwork = mock<Network>().apply {
- whenever(this.getNetId()).thenReturn(543)
- }
- getNetworkCallback().onLost(unknownNetwork)
+ // WHEN we lose an unknown network
+ val unknownNetwork = mock<Network>().apply { whenever(this.getNetId()).thenReturn(543) }
+ getNetworkCallback().onLost(unknownNetwork)
- // THEN we still have our previous network
- assertThat(latest is WifiNetworkModel.Active).isTrue()
- val latestActive = latest as WifiNetworkModel.Active
- assertThat(latestActive.networkId).isEqualTo(NETWORK_ID)
- assertThat(latestActive.ssid).isEqualTo(SSID)
+ // THEN we still have our previous network
+ assertThat(latest is WifiNetworkModel.Active).isTrue()
+ val latestActive = latest as WifiNetworkModel.Active
+ assertThat(latestActive.networkId).isEqualTo(NETWORK_ID)
+ assertThat(latestActive.ssid).isEqualTo(SSID)
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun wifiNetwork_notCurrentNetworkLost_flowHasCurrentNetwork() = runBlocking(IMMEDIATE) {
- var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
+ fun wifiNetwork_notCurrentNetworkLost_flowHasCurrentNetwork() =
+ runBlocking(IMMEDIATE) {
+ var latest: WifiNetworkModel? = null
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
- getNetworkCallback()
- .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
- assertThat((latest as WifiNetworkModel.Active).networkId).isEqualTo(NETWORK_ID)
+ getNetworkCallback()
+ .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
+ assertThat((latest as WifiNetworkModel.Active).networkId).isEqualTo(NETWORK_ID)
- // WHEN we update to a new network...
- val newNetworkId = 89
- val newNetwork = mock<Network>().apply {
- whenever(this.getNetId()).thenReturn(newNetworkId)
- }
- getNetworkCallback().onCapabilitiesChanged(
- newNetwork, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO)
- )
- // ...and lose the old network
- getNetworkCallback().onLost(NETWORK)
+ // WHEN we update to a new network...
+ val newNetworkId = 89
+ val newNetwork =
+ mock<Network>().apply { whenever(this.getNetId()).thenReturn(newNetworkId) }
+ getNetworkCallback()
+ .onCapabilitiesChanged(newNetwork, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
+ // ...and lose the old network
+ getNetworkCallback().onLost(NETWORK)
- // THEN we still have the new network
- assertThat((latest as WifiNetworkModel.Active).networkId).isEqualTo(newNetworkId)
+ // THEN we still have the new network
+ assertThat((latest as WifiNetworkModel.Active).networkId).isEqualTo(newNetworkId)
- job.cancel()
- }
+ job.cancel()
+ }
/** Regression test for b/244173280. */
@Test
- fun wifiNetwork_multipleSubscribers_newSubscribersGetCurrentValue() = runBlocking(IMMEDIATE) {
- var latest1: WifiNetworkModel? = null
- val job1 = underTest
- .wifiNetwork
- .onEach { latest1 = it }
- .launchIn(this)
-
- getNetworkCallback()
- .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
-
- assertThat(latest1 is WifiNetworkModel.Active).isTrue()
- val latest1Active = latest1 as WifiNetworkModel.Active
- assertThat(latest1Active.networkId).isEqualTo(NETWORK_ID)
- assertThat(latest1Active.ssid).isEqualTo(SSID)
-
- // WHEN we add a second subscriber after having already emitted a value
- var latest2: WifiNetworkModel? = null
- val job2 = underTest
- .wifiNetwork
- .onEach { latest2 = it }
- .launchIn(this)
-
- // THEN the second subscribe receives the already-emitted value
- assertThat(latest2 is WifiNetworkModel.Active).isTrue()
- val latest2Active = latest2 as WifiNetworkModel.Active
- assertThat(latest2Active.networkId).isEqualTo(NETWORK_ID)
- assertThat(latest2Active.ssid).isEqualTo(SSID)
-
- job1.cancel()
- job2.cancel()
- }
+ fun wifiNetwork_multipleSubscribers_newSubscribersGetCurrentValue() =
+ runBlocking(IMMEDIATE) {
+ var latest1: WifiNetworkModel? = null
+ val job1 = underTest.wifiNetwork.onEach { latest1 = it }.launchIn(this)
+
+ getNetworkCallback()
+ .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
+
+ assertThat(latest1 is WifiNetworkModel.Active).isTrue()
+ val latest1Active = latest1 as WifiNetworkModel.Active
+ assertThat(latest1Active.networkId).isEqualTo(NETWORK_ID)
+ assertThat(latest1Active.ssid).isEqualTo(SSID)
+
+ // WHEN we add a second subscriber after having already emitted a value
+ var latest2: WifiNetworkModel? = null
+ val job2 = underTest.wifiNetwork.onEach { latest2 = it }.launchIn(this)
+
+ // THEN the second subscribe receives the already-emitted value
+ assertThat(latest2 is WifiNetworkModel.Active).isTrue()
+ val latest2Active = latest2 as WifiNetworkModel.Active
+ assertThat(latest2Active.networkId).isEqualTo(NETWORK_ID)
+ assertThat(latest2Active.ssid).isEqualTo(SSID)
+
+ job1.cancel()
+ job2.cancel()
+ }
@Test
- fun wifiActivity_callbackGivesNone_activityFlowHasNone() = runBlocking(IMMEDIATE) {
- var latest: DataActivityModel? = null
- val job = underTest
- .wifiActivity
- .onEach { latest = it }
- .launchIn(this)
+ fun wifiActivity_callbackGivesNone_activityFlowHasNone() =
+ runBlocking(IMMEDIATE) {
+ var latest: DataActivityModel? = null
+ val job = underTest.wifiActivity.onEach { latest = it }.launchIn(this)
- getTrafficStateCallback().onStateChanged(TrafficStateCallback.DATA_ACTIVITY_NONE)
+ getTrafficStateCallback().onStateChanged(TrafficStateCallback.DATA_ACTIVITY_NONE)
- assertThat(latest).isEqualTo(
- DataActivityModel(hasActivityIn = false, hasActivityOut = false)
- )
+ assertThat(latest)
+ .isEqualTo(DataActivityModel(hasActivityIn = false, hasActivityOut = false))
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun wifiActivity_callbackGivesIn_activityFlowHasIn() = runBlocking(IMMEDIATE) {
- var latest: DataActivityModel? = null
- val job = underTest
- .wifiActivity
- .onEach { latest = it }
- .launchIn(this)
+ fun wifiActivity_callbackGivesIn_activityFlowHasIn() =
+ runBlocking(IMMEDIATE) {
+ var latest: DataActivityModel? = null
+ val job = underTest.wifiActivity.onEach { latest = it }.launchIn(this)
- getTrafficStateCallback().onStateChanged(TrafficStateCallback.DATA_ACTIVITY_IN)
+ getTrafficStateCallback().onStateChanged(TrafficStateCallback.DATA_ACTIVITY_IN)
- assertThat(latest).isEqualTo(
- DataActivityModel(hasActivityIn = true, hasActivityOut = false)
- )
+ assertThat(latest)
+ .isEqualTo(DataActivityModel(hasActivityIn = true, hasActivityOut = false))
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun wifiActivity_callbackGivesOut_activityFlowHasOut() = runBlocking(IMMEDIATE) {
- var latest: DataActivityModel? = null
- val job = underTest
- .wifiActivity
- .onEach { latest = it }
- .launchIn(this)
+ fun wifiActivity_callbackGivesOut_activityFlowHasOut() =
+ runBlocking(IMMEDIATE) {
+ var latest: DataActivityModel? = null
+ val job = underTest.wifiActivity.onEach { latest = it }.launchIn(this)
- getTrafficStateCallback().onStateChanged(TrafficStateCallback.DATA_ACTIVITY_OUT)
+ getTrafficStateCallback().onStateChanged(TrafficStateCallback.DATA_ACTIVITY_OUT)
- assertThat(latest).isEqualTo(
- DataActivityModel(hasActivityIn = false, hasActivityOut = true)
- )
+ assertThat(latest)
+ .isEqualTo(DataActivityModel(hasActivityIn = false, hasActivityOut = true))
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun wifiActivity_callbackGivesInout_activityFlowHasInAndOut() = runBlocking(IMMEDIATE) {
- var latest: DataActivityModel? = null
- val job = underTest
- .wifiActivity
- .onEach { latest = it }
- .launchIn(this)
+ fun wifiActivity_callbackGivesInout_activityFlowHasInAndOut() =
+ runBlocking(IMMEDIATE) {
+ var latest: DataActivityModel? = null
+ val job = underTest.wifiActivity.onEach { latest = it }.launchIn(this)
- getTrafficStateCallback().onStateChanged(TrafficStateCallback.DATA_ACTIVITY_INOUT)
+ getTrafficStateCallback().onStateChanged(TrafficStateCallback.DATA_ACTIVITY_INOUT)
- assertThat(latest).isEqualTo(DataActivityModel(hasActivityIn = true, hasActivityOut = true))
+ assertThat(latest)
+ .isEqualTo(DataActivityModel(hasActivityIn = true, hasActivityOut = true))
- job.cancel()
- }
+ job.cancel()
+ }
private fun createRepo(): WifiRepositoryImpl {
return WifiRepositoryImpl(
@@ -998,14 +970,13 @@ class WifiRepositoryImplTest : SysuiTestCase() {
private companion object {
const val NETWORK_ID = 45
- val NETWORK = mock<Network>().apply {
- whenever(this.getNetId()).thenReturn(NETWORK_ID)
- }
+ val NETWORK = mock<Network>().apply { whenever(this.getNetId()).thenReturn(NETWORK_ID) }
const val SSID = "AB"
- val PRIMARY_WIFI_INFO: WifiInfo = mock<WifiInfo>().apply {
- whenever(this.ssid).thenReturn(SSID)
- whenever(this.isPrimary).thenReturn(true)
- }
+ val PRIMARY_WIFI_INFO: WifiInfo =
+ mock<WifiInfo>().apply {
+ whenever(this.ssid).thenReturn(SSID)
+ whenever(this.isPrimary).thenReturn(true)
+ }
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/domain/interactor/WifiInteractorImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/domain/interactor/WifiInteractorImplTest.kt
index 089a170aa2be..fc2277b9c803 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/domain/interactor/WifiInteractorImplTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/domain/interactor/WifiInteractorImplTest.kt
@@ -22,8 +22,8 @@ import com.android.systemui.SysuiTestCase
import com.android.systemui.statusbar.pipeline.shared.data.model.ConnectivitySlot
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
import com.android.systemui.statusbar.pipeline.shared.data.repository.FakeConnectivityRepository
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.data.repository.FakeWifiRepository
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -57,10 +57,7 @@ class WifiInteractorImplTest : SysuiTestCase() {
wifiRepository.setWifiNetwork(WifiNetworkModel.Unavailable)
var latest: String? = "default"
- val job = underTest
- .ssid
- .onEach { latest = it }
- .launchIn(this)
+ val job = underTest.ssid.onEach { latest = it }.launchIn(this)
assertThat(latest).isNull()
@@ -68,238 +65,223 @@ class WifiInteractorImplTest : SysuiTestCase() {
}
@Test
- fun ssid_inactiveNetwork_outputsNull() = runBlocking(IMMEDIATE) {
- wifiRepository.setWifiNetwork(WifiNetworkModel.Inactive)
+ fun ssid_inactiveNetwork_outputsNull() =
+ runBlocking(IMMEDIATE) {
+ wifiRepository.setWifiNetwork(WifiNetworkModel.Inactive)
- var latest: String? = "default"
- val job = underTest
- .ssid
- .onEach { latest = it }
- .launchIn(this)
+ var latest: String? = "default"
+ val job = underTest.ssid.onEach { latest = it }.launchIn(this)
- assertThat(latest).isNull()
+ assertThat(latest).isNull()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun ssid_carrierMergedNetwork_outputsNull() = runBlocking(IMMEDIATE) {
- wifiRepository.setWifiNetwork(
- WifiNetworkModel.CarrierMerged(networkId = 1, subscriptionId = 2, level = 1)
- )
+ fun ssid_carrierMergedNetwork_outputsNull() =
+ runBlocking(IMMEDIATE) {
+ wifiRepository.setWifiNetwork(
+ WifiNetworkModel.CarrierMerged(networkId = 1, subscriptionId = 2, level = 1)
+ )
- var latest: String? = "default"
- val job = underTest
- .ssid
- .onEach { latest = it }
- .launchIn(this)
+ var latest: String? = "default"
+ val job = underTest.ssid.onEach { latest = it }.launchIn(this)
- assertThat(latest).isNull()
+ assertThat(latest).isNull()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun ssid_isPasspointAccessPoint_outputsPasspointName() = runBlocking(IMMEDIATE) {
- wifiRepository.setWifiNetwork(WifiNetworkModel.Active(
- networkId = 1,
- level = 1,
- isPasspointAccessPoint = true,
- passpointProviderFriendlyName = "friendly",
- ))
-
- var latest: String? = null
- val job = underTest
- .ssid
- .onEach { latest = it }
- .launchIn(this)
-
- assertThat(latest).isEqualTo("friendly")
-
- job.cancel()
- }
+ fun ssid_isPasspointAccessPoint_outputsPasspointName() =
+ runBlocking(IMMEDIATE) {
+ wifiRepository.setWifiNetwork(
+ WifiNetworkModel.Active(
+ networkId = 1,
+ level = 1,
+ isPasspointAccessPoint = true,
+ passpointProviderFriendlyName = "friendly",
+ )
+ )
+
+ var latest: String? = null
+ val job = underTest.ssid.onEach { latest = it }.launchIn(this)
+
+ assertThat(latest).isEqualTo("friendly")
+
+ job.cancel()
+ }
@Test
- fun ssid_isOnlineSignUpForPasspoint_outputsPasspointName() = runBlocking(IMMEDIATE) {
- wifiRepository.setWifiNetwork(WifiNetworkModel.Active(
- networkId = 1,
- level = 1,
- isOnlineSignUpForPasspointAccessPoint = true,
- passpointProviderFriendlyName = "friendly",
- ))
-
- var latest: String? = null
- val job = underTest
- .ssid
- .onEach { latest = it }
- .launchIn(this)
-
- assertThat(latest).isEqualTo("friendly")
-
- job.cancel()
- }
+ fun ssid_isOnlineSignUpForPasspoint_outputsPasspointName() =
+ runBlocking(IMMEDIATE) {
+ wifiRepository.setWifiNetwork(
+ WifiNetworkModel.Active(
+ networkId = 1,
+ level = 1,
+ isOnlineSignUpForPasspointAccessPoint = true,
+ passpointProviderFriendlyName = "friendly",
+ )
+ )
+
+ var latest: String? = null
+ val job = underTest.ssid.onEach { latest = it }.launchIn(this)
+
+ assertThat(latest).isEqualTo("friendly")
+
+ job.cancel()
+ }
@Test
- fun ssid_unknownSsid_outputsNull() = runBlocking(IMMEDIATE) {
- wifiRepository.setWifiNetwork(WifiNetworkModel.Active(
- networkId = 1,
- level = 1,
- ssid = WifiManager.UNKNOWN_SSID,
- ))
-
- var latest: String? = "default"
- val job = underTest
- .ssid
- .onEach { latest = it }
- .launchIn(this)
-
- assertThat(latest).isNull()
-
- job.cancel()
- }
+ fun ssid_unknownSsid_outputsNull() =
+ runBlocking(IMMEDIATE) {
+ wifiRepository.setWifiNetwork(
+ WifiNetworkModel.Active(
+ networkId = 1,
+ level = 1,
+ ssid = WifiManager.UNKNOWN_SSID,
+ )
+ )
+
+ var latest: String? = "default"
+ val job = underTest.ssid.onEach { latest = it }.launchIn(this)
+
+ assertThat(latest).isNull()
+
+ job.cancel()
+ }
@Test
- fun ssid_validSsid_outputsSsid() = runBlocking(IMMEDIATE) {
- wifiRepository.setWifiNetwork(WifiNetworkModel.Active(
- networkId = 1,
- level = 1,
- ssid = "MyAwesomeWifiNetwork",
- ))
-
- var latest: String? = null
- val job = underTest
- .ssid
- .onEach { latest = it }
- .launchIn(this)
-
- assertThat(latest).isEqualTo("MyAwesomeWifiNetwork")
-
- job.cancel()
- }
+ fun ssid_validSsid_outputsSsid() =
+ runBlocking(IMMEDIATE) {
+ wifiRepository.setWifiNetwork(
+ WifiNetworkModel.Active(
+ networkId = 1,
+ level = 1,
+ ssid = "MyAwesomeWifiNetwork",
+ )
+ )
+
+ var latest: String? = null
+ val job = underTest.ssid.onEach { latest = it }.launchIn(this)
+
+ assertThat(latest).isEqualTo("MyAwesomeWifiNetwork")
+
+ job.cancel()
+ }
@Test
- fun isEnabled_matchesRepoIsEnabled() = runBlocking(IMMEDIATE) {
- var latest: Boolean? = null
- val job = underTest
- .isEnabled
- .onEach { latest = it }
- .launchIn(this)
-
- wifiRepository.setIsWifiEnabled(true)
- yield()
- assertThat(latest).isTrue()
-
- wifiRepository.setIsWifiEnabled(false)
- yield()
- assertThat(latest).isFalse()
-
- wifiRepository.setIsWifiEnabled(true)
- yield()
- assertThat(latest).isTrue()
-
- job.cancel()
- }
+ fun isEnabled_matchesRepoIsEnabled() =
+ runBlocking(IMMEDIATE) {
+ var latest: Boolean? = null
+ val job = underTest.isEnabled.onEach { latest = it }.launchIn(this)
+
+ wifiRepository.setIsWifiEnabled(true)
+ yield()
+ assertThat(latest).isTrue()
+
+ wifiRepository.setIsWifiEnabled(false)
+ yield()
+ assertThat(latest).isFalse()
+
+ wifiRepository.setIsWifiEnabled(true)
+ yield()
+ assertThat(latest).isTrue()
+
+ job.cancel()
+ }
@Test
- fun isDefault_matchesRepoIsDefault() = runBlocking(IMMEDIATE) {
- var latest: Boolean? = null
- val job = underTest
- .isDefault
- .onEach { latest = it }
- .launchIn(this)
-
- wifiRepository.setIsWifiDefault(true)
- yield()
- assertThat(latest).isTrue()
-
- wifiRepository.setIsWifiDefault(false)
- yield()
- assertThat(latest).isFalse()
-
- wifiRepository.setIsWifiDefault(true)
- yield()
- assertThat(latest).isTrue()
-
- job.cancel()
- }
+ fun isDefault_matchesRepoIsDefault() =
+ runBlocking(IMMEDIATE) {
+ var latest: Boolean? = null
+ val job = underTest.isDefault.onEach { latest = it }.launchIn(this)
+
+ wifiRepository.setIsWifiDefault(true)
+ yield()
+ assertThat(latest).isTrue()
+
+ wifiRepository.setIsWifiDefault(false)
+ yield()
+ assertThat(latest).isFalse()
+
+ wifiRepository.setIsWifiDefault(true)
+ yield()
+ assertThat(latest).isTrue()
+
+ job.cancel()
+ }
@Test
- fun wifiNetwork_matchesRepoWifiNetwork() = runBlocking(IMMEDIATE) {
- val wifiNetwork = WifiNetworkModel.Active(
- networkId = 45,
- isValidated = true,
- level = 3,
- ssid = "AB",
- passpointProviderFriendlyName = "friendly"
- )
- wifiRepository.setWifiNetwork(wifiNetwork)
-
- var latest: WifiNetworkModel? = null
- val job = underTest
- .wifiNetwork
- .onEach { latest = it }
- .launchIn(this)
-
- assertThat(latest).isEqualTo(wifiNetwork)
-
- job.cancel()
- }
+ fun wifiNetwork_matchesRepoWifiNetwork() =
+ runBlocking(IMMEDIATE) {
+ val wifiNetwork =
+ WifiNetworkModel.Active(
+ networkId = 45,
+ isValidated = true,
+ level = 3,
+ ssid = "AB",
+ passpointProviderFriendlyName = "friendly"
+ )
+ wifiRepository.setWifiNetwork(wifiNetwork)
+
+ var latest: WifiNetworkModel? = null
+ val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
+
+ assertThat(latest).isEqualTo(wifiNetwork)
+
+ job.cancel()
+ }
@Test
- fun activity_matchesRepoWifiActivity() = runBlocking(IMMEDIATE) {
- var latest: DataActivityModel? = null
- val job = underTest
- .activity
- .onEach { latest = it }
- .launchIn(this)
-
- val activity1 = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
- wifiRepository.setWifiActivity(activity1)
- yield()
- assertThat(latest).isEqualTo(activity1)
-
- val activity2 = DataActivityModel(hasActivityIn = false, hasActivityOut = false)
- wifiRepository.setWifiActivity(activity2)
- yield()
- assertThat(latest).isEqualTo(activity2)
-
- val activity3 = DataActivityModel(hasActivityIn = true, hasActivityOut = false)
- wifiRepository.setWifiActivity(activity3)
- yield()
- assertThat(latest).isEqualTo(activity3)
-
- job.cancel()
- }
+ fun activity_matchesRepoWifiActivity() =
+ runBlocking(IMMEDIATE) {
+ var latest: DataActivityModel? = null
+ val job = underTest.activity.onEach { latest = it }.launchIn(this)
+
+ val activity1 = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
+ wifiRepository.setWifiActivity(activity1)
+ yield()
+ assertThat(latest).isEqualTo(activity1)
+
+ val activity2 = DataActivityModel(hasActivityIn = false, hasActivityOut = false)
+ wifiRepository.setWifiActivity(activity2)
+ yield()
+ assertThat(latest).isEqualTo(activity2)
+
+ val activity3 = DataActivityModel(hasActivityIn = true, hasActivityOut = false)
+ wifiRepository.setWifiActivity(activity3)
+ yield()
+ assertThat(latest).isEqualTo(activity3)
+
+ job.cancel()
+ }
@Test
- fun isForceHidden_repoHasWifiHidden_outputsTrue() = runBlocking(IMMEDIATE) {
- connectivityRepository.setForceHiddenIcons(setOf(ConnectivitySlot.WIFI))
+ fun isForceHidden_repoHasWifiHidden_outputsTrue() =
+ runBlocking(IMMEDIATE) {
+ connectivityRepository.setForceHiddenIcons(setOf(ConnectivitySlot.WIFI))
- var latest: Boolean? = null
- val job = underTest
- .isForceHidden
- .onEach { latest = it }
- .launchIn(this)
+ var latest: Boolean? = null
+ val job = underTest.isForceHidden.onEach { latest = it }.launchIn(this)
- assertThat(latest).isTrue()
+ assertThat(latest).isTrue()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun isForceHidden_repoDoesNotHaveWifiHidden_outputsFalse() = runBlocking(IMMEDIATE) {
- connectivityRepository.setForceHiddenIcons(setOf())
+ fun isForceHidden_repoDoesNotHaveWifiHidden_outputsFalse() =
+ runBlocking(IMMEDIATE) {
+ connectivityRepository.setForceHiddenIcons(setOf())
- var latest: Boolean? = null
- val job = underTest
- .isForceHidden
- .onEach { latest = it }
- .launchIn(this)
+ var latest: Boolean? = null
+ val job = underTest.isForceHidden.onEach { latest = it }.launchIn(this)
- assertThat(latest).isFalse()
+ assertThat(latest).isFalse()
- job.cancel()
- }
+ job.cancel()
+ }
}
private val IMMEDIATE = Dispatchers.Main.immediate
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/model/WifiNetworkModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/shared/model/WifiNetworkModelTest.kt
index 824cebdc3c08..ab4e93ceee84 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/model/WifiNetworkModelTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/shared/model/WifiNetworkModelTest.kt
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-package com.android.systemui.statusbar.pipeline.wifi.data.model
+package com.android.systemui.statusbar.pipeline.wifi.shared.model
import android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.log.table.TableRowLogger
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel.Active.Companion.MAX_VALID_LEVEL
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel.Companion.MIN_VALID_LEVEL
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel.Active.Companion.MAX_VALID_LEVEL
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel.Companion.MIN_VALID_LEVEL
import com.google.common.truth.Truth.assertThat
import org.junit.Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/view/ModernStatusBarWifiViewTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/view/ModernStatusBarWifiViewTest.kt
index b8ace2f04a61..60f564e5f2dc 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/view/ModernStatusBarWifiViewTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/view/ModernStatusBarWifiViewTest.kt
@@ -38,11 +38,11 @@ import com.android.systemui.statusbar.pipeline.airplane.ui.viewmodel.AirplaneMod
import com.android.systemui.statusbar.pipeline.shared.ConnectivityConstants
import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger
import com.android.systemui.statusbar.pipeline.shared.data.repository.FakeConnectivityRepository
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.data.repository.FakeWifiRepository
import com.android.systemui.statusbar.pipeline.wifi.domain.interactor.WifiInteractor
import com.android.systemui.statusbar.pipeline.wifi.domain.interactor.WifiInteractorImpl
import com.android.systemui.statusbar.pipeline.wifi.shared.WifiConstants
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel.LocationBasedWifiViewModel
import com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel.WifiViewModel
import com.android.systemui.util.mockito.whenever
@@ -62,16 +62,11 @@ class ModernStatusBarWifiViewTest : SysuiTestCase() {
private lateinit var testableLooper: TestableLooper
- @Mock
- private lateinit var statusBarPipelineFlags: StatusBarPipelineFlags
- @Mock
- private lateinit var logger: ConnectivityPipelineLogger
- @Mock
- private lateinit var tableLogBuffer: TableLogBuffer
- @Mock
- private lateinit var connectivityConstants: ConnectivityConstants
- @Mock
- private lateinit var wifiConstants: WifiConstants
+ @Mock private lateinit var statusBarPipelineFlags: StatusBarPipelineFlags
+ @Mock private lateinit var logger: ConnectivityPipelineLogger
+ @Mock private lateinit var tableLogBuffer: TableLogBuffer
+ @Mock private lateinit var connectivityConstants: ConnectivityConstants
+ @Mock private lateinit var wifiConstants: WifiConstants
private lateinit var airplaneModeRepository: FakeAirplaneModeRepository
private lateinit var connectivityRepository: FakeConnectivityRepository
private lateinit var wifiRepository: FakeWifiRepository
@@ -91,25 +86,28 @@ class ModernStatusBarWifiViewTest : SysuiTestCase() {
wifiRepository.setIsWifiEnabled(true)
interactor = WifiInteractorImpl(connectivityRepository, wifiRepository)
scope = CoroutineScope(Dispatchers.Unconfined)
- airplaneModeViewModel = AirplaneModeViewModelImpl(
- AirplaneModeInteractor(
- airplaneModeRepository,
- connectivityRepository,
- ),
- logger,
- scope,
- )
- viewModel = WifiViewModel(
- airplaneModeViewModel,
- connectivityConstants,
- context,
- logger,
- tableLogBuffer,
- interactor,
- scope,
- statusBarPipelineFlags,
- wifiConstants,
- ).home
+ airplaneModeViewModel =
+ AirplaneModeViewModelImpl(
+ AirplaneModeInteractor(
+ airplaneModeRepository,
+ connectivityRepository,
+ ),
+ logger,
+ scope,
+ )
+ viewModel =
+ WifiViewModel(
+ airplaneModeViewModel,
+ connectivityConstants,
+ context,
+ logger,
+ tableLogBuffer,
+ interactor,
+ scope,
+ statusBarPipelineFlags,
+ wifiConstants,
+ )
+ .home
}
// Note: The following tests are more like integration tests, since they stand up a full
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelIconParameterizedTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelIconParameterizedTest.kt
index b9328377772a..648d7a5f0f55 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelIconParameterizedTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelIconParameterizedTest.kt
@@ -36,11 +36,11 @@ import com.android.systemui.statusbar.pipeline.shared.ConnectivityConstants
import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger
import com.android.systemui.statusbar.pipeline.shared.data.model.ConnectivitySlot
import com.android.systemui.statusbar.pipeline.shared.data.repository.FakeConnectivityRepository
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.data.repository.FakeWifiRepository
import com.android.systemui.statusbar.pipeline.wifi.domain.interactor.WifiInteractor
import com.android.systemui.statusbar.pipeline.wifi.domain.interactor.WifiInteractorImpl
import com.android.systemui.statusbar.pipeline.wifi.shared.WifiConstants
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.ui.model.WifiIcon
import com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel.WifiViewModel.Companion.NO_INTERNET
import com.google.common.truth.Truth.assertThat
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelTest.kt
index e5cfec9c08c0..45ebb3903332 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelTest.kt
@@ -29,11 +29,11 @@ import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger
import com.android.systemui.statusbar.pipeline.shared.data.model.ConnectivitySlot
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
import com.android.systemui.statusbar.pipeline.shared.data.repository.FakeConnectivityRepository
-import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.data.repository.FakeWifiRepository
import com.android.systemui.statusbar.pipeline.wifi.domain.interactor.WifiInteractor
import com.android.systemui.statusbar.pipeline.wifi.domain.interactor.WifiInteractorImpl
import com.android.systemui.statusbar.pipeline.wifi.shared.WifiConstants
+import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
import com.android.systemui.statusbar.pipeline.wifi.ui.model.WifiIcon
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.CoroutineScope
@@ -79,14 +79,15 @@ class WifiViewModelTest : SysuiTestCase() {
wifiRepository.setIsWifiEnabled(true)
interactor = WifiInteractorImpl(connectivityRepository, wifiRepository)
scope = CoroutineScope(IMMEDIATE)
- airplaneModeViewModel = AirplaneModeViewModelImpl(
- AirplaneModeInteractor(
- airplaneModeRepository,
- connectivityRepository,
- ),
- logger,
- scope,
- )
+ airplaneModeViewModel =
+ AirplaneModeViewModelImpl(
+ AirplaneModeInteractor(
+ airplaneModeRepository,
+ connectivityRepository,
+ ),
+ logger,
+ scope,
+ )
createAndSetViewModel()
}
@@ -104,451 +105,386 @@ class WifiViewModelTest : SysuiTestCase() {
// instances. There are also some tests that verify all 3 instances received the same data.
@Test
- fun wifiIcon_allLocationViewModelsReceiveSameData() = runBlocking(IMMEDIATE) {
- var latestHome: WifiIcon? = null
- val jobHome = underTest
- .home
- .wifiIcon
- .onEach { latestHome = it }
- .launchIn(this)
-
- var latestKeyguard: WifiIcon? = null
- val jobKeyguard = underTest
- .keyguard
- .wifiIcon
- .onEach { latestKeyguard = it }
- .launchIn(this)
-
- var latestQs: WifiIcon? = null
- val jobQs = underTest
- .qs
- .wifiIcon
- .onEach { latestQs = it }
- .launchIn(this)
-
- wifiRepository.setWifiNetwork(
- WifiNetworkModel.Active(
- NETWORK_ID,
- isValidated = true,
- level = 1
+ fun wifiIcon_allLocationViewModelsReceiveSameData() =
+ runBlocking(IMMEDIATE) {
+ var latestHome: WifiIcon? = null
+ val jobHome = underTest.home.wifiIcon.onEach { latestHome = it }.launchIn(this)
+
+ var latestKeyguard: WifiIcon? = null
+ val jobKeyguard =
+ underTest.keyguard.wifiIcon.onEach { latestKeyguard = it }.launchIn(this)
+
+ var latestQs: WifiIcon? = null
+ val jobQs = underTest.qs.wifiIcon.onEach { latestQs = it }.launchIn(this)
+
+ wifiRepository.setWifiNetwork(
+ WifiNetworkModel.Active(NETWORK_ID, isValidated = true, level = 1)
)
- )
- yield()
+ yield()
- assertThat(latestHome).isInstanceOf(WifiIcon.Visible::class.java)
- assertThat(latestHome).isEqualTo(latestKeyguard)
- assertThat(latestKeyguard).isEqualTo(latestQs)
+ assertThat(latestHome).isInstanceOf(WifiIcon.Visible::class.java)
+ assertThat(latestHome).isEqualTo(latestKeyguard)
+ assertThat(latestKeyguard).isEqualTo(latestQs)
- jobHome.cancel()
- jobKeyguard.cancel()
- jobQs.cancel()
- }
+ jobHome.cancel()
+ jobKeyguard.cancel()
+ jobQs.cancel()
+ }
@Test
- fun activity_showActivityConfigFalse_outputsFalse() = runBlocking(IMMEDIATE) {
- whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(false)
- createAndSetViewModel()
- wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
-
- var activityIn: Boolean? = null
- val activityInJob = underTest
- .home
- .isActivityInViewVisible
- .onEach { activityIn = it }
- .launchIn(this)
-
- var activityOut: Boolean? = null
- val activityOutJob = underTest
- .home
- .isActivityOutViewVisible
- .onEach { activityOut = it }
- .launchIn(this)
-
- var activityContainer: Boolean? = null
- val activityContainerJob = underTest
- .home
- .isActivityContainerVisible
- .onEach { activityContainer = it }
- .launchIn(this)
-
- // Verify that on launch, we receive false.
- assertThat(activityIn).isFalse()
- assertThat(activityOut).isFalse()
- assertThat(activityContainer).isFalse()
-
- activityInJob.cancel()
- activityOutJob.cancel()
- activityContainerJob.cancel()
- }
+ fun activity_showActivityConfigFalse_outputsFalse() =
+ runBlocking(IMMEDIATE) {
+ whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(false)
+ createAndSetViewModel()
+ wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
+
+ var activityIn: Boolean? = null
+ val activityInJob =
+ underTest.home.isActivityInViewVisible.onEach { activityIn = it }.launchIn(this)
+
+ var activityOut: Boolean? = null
+ val activityOutJob =
+ underTest.home.isActivityOutViewVisible.onEach { activityOut = it }.launchIn(this)
+
+ var activityContainer: Boolean? = null
+ val activityContainerJob =
+ underTest.home.isActivityContainerVisible
+ .onEach { activityContainer = it }
+ .launchIn(this)
+
+ // Verify that on launch, we receive false.
+ assertThat(activityIn).isFalse()
+ assertThat(activityOut).isFalse()
+ assertThat(activityContainer).isFalse()
+
+ activityInJob.cancel()
+ activityOutJob.cancel()
+ activityContainerJob.cancel()
+ }
@Test
- fun activity_showActivityConfigFalse_noUpdatesReceived() = runBlocking(IMMEDIATE) {
- whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(false)
- createAndSetViewModel()
- wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
-
- var activityIn: Boolean? = null
- val activityInJob = underTest
- .home
- .isActivityInViewVisible
- .onEach { activityIn = it }
- .launchIn(this)
-
- var activityOut: Boolean? = null
- val activityOutJob = underTest
- .home
- .isActivityOutViewVisible
- .onEach { activityOut = it }
- .launchIn(this)
-
- var activityContainer: Boolean? = null
- val activityContainerJob = underTest
- .home
- .isActivityContainerVisible
- .onEach { activityContainer = it }
- .launchIn(this)
-
- // WHEN we update the repo to have activity
- val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
- wifiRepository.setWifiActivity(activity)
- yield()
-
- // THEN we didn't update to the new activity (because our config is false)
- assertThat(activityIn).isFalse()
- assertThat(activityOut).isFalse()
- assertThat(activityContainer).isFalse()
-
- activityInJob.cancel()
- activityOutJob.cancel()
- activityContainerJob.cancel()
- }
+ fun activity_showActivityConfigFalse_noUpdatesReceived() =
+ runBlocking(IMMEDIATE) {
+ whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(false)
+ createAndSetViewModel()
+ wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
+
+ var activityIn: Boolean? = null
+ val activityInJob =
+ underTest.home.isActivityInViewVisible.onEach { activityIn = it }.launchIn(this)
+
+ var activityOut: Boolean? = null
+ val activityOutJob =
+ underTest.home.isActivityOutViewVisible.onEach { activityOut = it }.launchIn(this)
+
+ var activityContainer: Boolean? = null
+ val activityContainerJob =
+ underTest.home.isActivityContainerVisible
+ .onEach { activityContainer = it }
+ .launchIn(this)
+
+ // WHEN we update the repo to have activity
+ val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
+ wifiRepository.setWifiActivity(activity)
+ yield()
+
+ // THEN we didn't update to the new activity (because our config is false)
+ assertThat(activityIn).isFalse()
+ assertThat(activityOut).isFalse()
+ assertThat(activityContainer).isFalse()
+
+ activityInJob.cancel()
+ activityOutJob.cancel()
+ activityContainerJob.cancel()
+ }
@Test
- fun activity_nullSsid_outputsFalse() = runBlocking(IMMEDIATE) {
- whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
- createAndSetViewModel()
+ fun activity_nullSsid_outputsFalse() =
+ runBlocking(IMMEDIATE) {
+ whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
+ createAndSetViewModel()
- wifiRepository.setWifiNetwork(WifiNetworkModel.Active(NETWORK_ID, ssid = null, level = 1))
-
- var activityIn: Boolean? = null
- val activityInJob = underTest
- .home
- .isActivityInViewVisible
- .onEach { activityIn = it }
- .launchIn(this)
-
- var activityOut: Boolean? = null
- val activityOutJob = underTest
- .home
- .isActivityOutViewVisible
- .onEach { activityOut = it }
- .launchIn(this)
-
- var activityContainer: Boolean? = null
- val activityContainerJob = underTest
- .home
- .isActivityContainerVisible
- .onEach { activityContainer = it }
- .launchIn(this)
-
- // WHEN we update the repo to have activity
- val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
- wifiRepository.setWifiActivity(activity)
- yield()
-
- // THEN we still output false because our network's SSID is null
- assertThat(activityIn).isFalse()
- assertThat(activityOut).isFalse()
- assertThat(activityContainer).isFalse()
-
- activityInJob.cancel()
- activityOutJob.cancel()
- activityContainerJob.cancel()
- }
+ wifiRepository.setWifiNetwork(
+ WifiNetworkModel.Active(NETWORK_ID, ssid = null, level = 1)
+ )
+
+ var activityIn: Boolean? = null
+ val activityInJob =
+ underTest.home.isActivityInViewVisible.onEach { activityIn = it }.launchIn(this)
+
+ var activityOut: Boolean? = null
+ val activityOutJob =
+ underTest.home.isActivityOutViewVisible.onEach { activityOut = it }.launchIn(this)
+
+ var activityContainer: Boolean? = null
+ val activityContainerJob =
+ underTest.home.isActivityContainerVisible
+ .onEach { activityContainer = it }
+ .launchIn(this)
+
+ // WHEN we update the repo to have activity
+ val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
+ wifiRepository.setWifiActivity(activity)
+ yield()
+
+ // THEN we still output false because our network's SSID is null
+ assertThat(activityIn).isFalse()
+ assertThat(activityOut).isFalse()
+ assertThat(activityContainer).isFalse()
+
+ activityInJob.cancel()
+ activityOutJob.cancel()
+ activityContainerJob.cancel()
+ }
@Test
- fun activity_allLocationViewModelsReceiveSameData() = runBlocking(IMMEDIATE) {
- whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
- createAndSetViewModel()
- wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
-
- var latestHome: Boolean? = null
- val jobHome = underTest
- .home
- .isActivityInViewVisible
- .onEach { latestHome = it }
- .launchIn(this)
-
- var latestKeyguard: Boolean? = null
- val jobKeyguard = underTest
- .keyguard
- .isActivityInViewVisible
- .onEach { latestKeyguard = it }
- .launchIn(this)
-
- var latestQs: Boolean? = null
- val jobQs = underTest
- .qs
- .isActivityInViewVisible
- .onEach { latestQs = it }
- .launchIn(this)
-
- val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
- wifiRepository.setWifiActivity(activity)
- yield()
-
- assertThat(latestHome).isTrue()
- assertThat(latestKeyguard).isTrue()
- assertThat(latestQs).isTrue()
-
- jobHome.cancel()
- jobKeyguard.cancel()
- jobQs.cancel()
- }
+ fun activity_allLocationViewModelsReceiveSameData() =
+ runBlocking(IMMEDIATE) {
+ whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
+ createAndSetViewModel()
+ wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
+
+ var latestHome: Boolean? = null
+ val jobHome =
+ underTest.home.isActivityInViewVisible.onEach { latestHome = it }.launchIn(this)
+
+ var latestKeyguard: Boolean? = null
+ val jobKeyguard =
+ underTest.keyguard.isActivityInViewVisible
+ .onEach { latestKeyguard = it }
+ .launchIn(this)
+
+ var latestQs: Boolean? = null
+ val jobQs = underTest.qs.isActivityInViewVisible.onEach { latestQs = it }.launchIn(this)
+
+ val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
+ wifiRepository.setWifiActivity(activity)
+ yield()
+
+ assertThat(latestHome).isTrue()
+ assertThat(latestKeyguard).isTrue()
+ assertThat(latestQs).isTrue()
+
+ jobHome.cancel()
+ jobKeyguard.cancel()
+ jobQs.cancel()
+ }
@Test
- fun activityIn_hasActivityInTrue_outputsTrue() = runBlocking(IMMEDIATE) {
- whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
- createAndSetViewModel()
- wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
+ fun activityIn_hasActivityInTrue_outputsTrue() =
+ runBlocking(IMMEDIATE) {
+ whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
+ createAndSetViewModel()
+ wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
- var latest: Boolean? = null
- val job = underTest
- .home
- .isActivityInViewVisible
- .onEach { latest = it }
- .launchIn(this)
+ var latest: Boolean? = null
+ val job = underTest.home.isActivityInViewVisible.onEach { latest = it }.launchIn(this)
- val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = false)
- wifiRepository.setWifiActivity(activity)
- yield()
+ val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = false)
+ wifiRepository.setWifiActivity(activity)
+ yield()
- assertThat(latest).isTrue()
+ assertThat(latest).isTrue()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun activityIn_hasActivityInFalse_outputsFalse() = runBlocking(IMMEDIATE) {
- whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
- createAndSetViewModel()
- wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
+ fun activityIn_hasActivityInFalse_outputsFalse() =
+ runBlocking(IMMEDIATE) {
+ whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
+ createAndSetViewModel()
+ wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
- var latest: Boolean? = null
- val job = underTest
- .home
- .isActivityInViewVisible
- .onEach { latest = it }
- .launchIn(this)
+ var latest: Boolean? = null
+ val job = underTest.home.isActivityInViewVisible.onEach { latest = it }.launchIn(this)
- val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = true)
- wifiRepository.setWifiActivity(activity)
- yield()
+ val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = true)
+ wifiRepository.setWifiActivity(activity)
+ yield()
- assertThat(latest).isFalse()
+ assertThat(latest).isFalse()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun activityOut_hasActivityOutTrue_outputsTrue() = runBlocking(IMMEDIATE) {
- whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
- createAndSetViewModel()
- wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
+ fun activityOut_hasActivityOutTrue_outputsTrue() =
+ runBlocking(IMMEDIATE) {
+ whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
+ createAndSetViewModel()
+ wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
- var latest: Boolean? = null
- val job = underTest
- .home
- .isActivityOutViewVisible
- .onEach { latest = it }
- .launchIn(this)
+ var latest: Boolean? = null
+ val job = underTest.home.isActivityOutViewVisible.onEach { latest = it }.launchIn(this)
- val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = true)
- wifiRepository.setWifiActivity(activity)
- yield()
+ val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = true)
+ wifiRepository.setWifiActivity(activity)
+ yield()
- assertThat(latest).isTrue()
+ assertThat(latest).isTrue()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun activityOut_hasActivityOutFalse_outputsFalse() = runBlocking(IMMEDIATE) {
- whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
- createAndSetViewModel()
- wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
+ fun activityOut_hasActivityOutFalse_outputsFalse() =
+ runBlocking(IMMEDIATE) {
+ whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
+ createAndSetViewModel()
+ wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
- var latest: Boolean? = null
- val job = underTest
- .home
- .isActivityOutViewVisible
- .onEach { latest = it }
- .launchIn(this)
+ var latest: Boolean? = null
+ val job = underTest.home.isActivityOutViewVisible.onEach { latest = it }.launchIn(this)
- val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = false)
- wifiRepository.setWifiActivity(activity)
- yield()
+ val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = false)
+ wifiRepository.setWifiActivity(activity)
+ yield()
- assertThat(latest).isFalse()
+ assertThat(latest).isFalse()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun activityContainer_hasActivityInTrue_outputsTrue() = runBlocking(IMMEDIATE) {
- whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
- createAndSetViewModel()
- wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
+ fun activityContainer_hasActivityInTrue_outputsTrue() =
+ runBlocking(IMMEDIATE) {
+ whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
+ createAndSetViewModel()
+ wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
- var latest: Boolean? = null
- val job = underTest
- .home
- .isActivityContainerVisible
- .onEach { latest = it }
- .launchIn(this)
+ var latest: Boolean? = null
+ val job =
+ underTest.home.isActivityContainerVisible.onEach { latest = it }.launchIn(this)
- val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = false)
- wifiRepository.setWifiActivity(activity)
- yield()
+ val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = false)
+ wifiRepository.setWifiActivity(activity)
+ yield()
- assertThat(latest).isTrue()
+ assertThat(latest).isTrue()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun activityContainer_hasActivityOutTrue_outputsTrue() = runBlocking(IMMEDIATE) {
- whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
- createAndSetViewModel()
- wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
+ fun activityContainer_hasActivityOutTrue_outputsTrue() =
+ runBlocking(IMMEDIATE) {
+ whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
+ createAndSetViewModel()
+ wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
- var latest: Boolean? = null
- val job = underTest
- .home
- .isActivityContainerVisible
- .onEach { latest = it }
- .launchIn(this)
+ var latest: Boolean? = null
+ val job =
+ underTest.home.isActivityContainerVisible.onEach { latest = it }.launchIn(this)
- val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = true)
- wifiRepository.setWifiActivity(activity)
- yield()
+ val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = true)
+ wifiRepository.setWifiActivity(activity)
+ yield()
- assertThat(latest).isTrue()
+ assertThat(latest).isTrue()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun activityContainer_inAndOutTrue_outputsTrue() = runBlocking(IMMEDIATE) {
- whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
- createAndSetViewModel()
- wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
+ fun activityContainer_inAndOutTrue_outputsTrue() =
+ runBlocking(IMMEDIATE) {
+ whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
+ createAndSetViewModel()
+ wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
- var latest: Boolean? = null
- val job = underTest
- .home
- .isActivityContainerVisible
- .onEach { latest = it }
- .launchIn(this)
+ var latest: Boolean? = null
+ val job =
+ underTest.home.isActivityContainerVisible.onEach { latest = it }.launchIn(this)
- val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
- wifiRepository.setWifiActivity(activity)
- yield()
+ val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
+ wifiRepository.setWifiActivity(activity)
+ yield()
- assertThat(latest).isTrue()
+ assertThat(latest).isTrue()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun activityContainer_inAndOutFalse_outputsFalse() = runBlocking(IMMEDIATE) {
- whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
- createAndSetViewModel()
- wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
+ fun activityContainer_inAndOutFalse_outputsFalse() =
+ runBlocking(IMMEDIATE) {
+ whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
+ createAndSetViewModel()
+ wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
- var latest: Boolean? = null
- val job = underTest
- .home
- .isActivityContainerVisible
- .onEach { latest = it }
- .launchIn(this)
+ var latest: Boolean? = null
+ val job =
+ underTest.home.isActivityContainerVisible.onEach { latest = it }.launchIn(this)
- val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = false)
- wifiRepository.setWifiActivity(activity)
- yield()
+ val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = false)
+ wifiRepository.setWifiActivity(activity)
+ yield()
- assertThat(latest).isFalse()
+ assertThat(latest).isFalse()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun airplaneSpacer_notAirplaneMode_outputsFalse() = runBlocking(IMMEDIATE) {
- var latest: Boolean? = null
- val job = underTest
- .qs
- .isAirplaneSpacerVisible
- .onEach { latest = it }
- .launchIn(this)
+ fun airplaneSpacer_notAirplaneMode_outputsFalse() =
+ runBlocking(IMMEDIATE) {
+ var latest: Boolean? = null
+ val job = underTest.qs.isAirplaneSpacerVisible.onEach { latest = it }.launchIn(this)
- airplaneModeRepository.setIsAirplaneMode(false)
- yield()
+ airplaneModeRepository.setIsAirplaneMode(false)
+ yield()
- assertThat(latest).isFalse()
+ assertThat(latest).isFalse()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun airplaneSpacer_airplaneForceHidden_outputsFalse() = runBlocking(IMMEDIATE) {
- var latest: Boolean? = null
- val job = underTest
- .qs
- .isAirplaneSpacerVisible
- .onEach { latest = it }
- .launchIn(this)
+ fun airplaneSpacer_airplaneForceHidden_outputsFalse() =
+ runBlocking(IMMEDIATE) {
+ var latest: Boolean? = null
+ val job = underTest.qs.isAirplaneSpacerVisible.onEach { latest = it }.launchIn(this)
- airplaneModeRepository.setIsAirplaneMode(true)
- connectivityRepository.setForceHiddenIcons(setOf(ConnectivitySlot.AIRPLANE))
- yield()
+ airplaneModeRepository.setIsAirplaneMode(true)
+ connectivityRepository.setForceHiddenIcons(setOf(ConnectivitySlot.AIRPLANE))
+ yield()
- assertThat(latest).isFalse()
+ assertThat(latest).isFalse()
- job.cancel()
- }
+ job.cancel()
+ }
@Test
- fun airplaneSpacer_airplaneIconVisible_outputsTrue() = runBlocking(IMMEDIATE) {
- var latest: Boolean? = null
- val job = underTest
- .qs
- .isAirplaneSpacerVisible
- .onEach { latest = it }
- .launchIn(this)
+ fun airplaneSpacer_airplaneIconVisible_outputsTrue() =
+ runBlocking(IMMEDIATE) {
+ var latest: Boolean? = null
+ val job = underTest.qs.isAirplaneSpacerVisible.onEach { latest = it }.launchIn(this)
- airplaneModeRepository.setIsAirplaneMode(true)
- yield()
+ airplaneModeRepository.setIsAirplaneMode(true)
+ yield()
- assertThat(latest).isTrue()
+ assertThat(latest).isTrue()
- job.cancel()
- }
+ job.cancel()
+ }
private fun createAndSetViewModel() {
// [WifiViewModel] creates its flows as soon as it's instantiated, and some of those flow
// creations rely on certain config values that we mock out in individual tests. This method
// allows tests to create the view model only after those configs are correctly set up.
- underTest = WifiViewModel(
- airplaneModeViewModel,
- connectivityConstants,
- context,
- logger,
- tableLogBuffer,
- interactor,
- scope,
- statusBarPipelineFlags,
- wifiConstants,
- )
+ underTest =
+ WifiViewModel(
+ airplaneModeViewModel,
+ connectivityConstants,
+ context,
+ logger,
+ tableLogBuffer,
+ interactor,
+ scope,
+ statusBarPipelineFlags,
+ wifiConstants,
+ )
}
companion object {