Merge "[SB Refactor] Lint all the wifi classes; move network model to shared." into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
7cf6cd8567
@@ -452,12 +452,6 @@
|
|||||||
-packages/SystemUI/src/com/android/systemui/statusbar/phone/userswitcher/StatusBarUserSwitcherFeatureController.kt
|
-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/dagger/StatusBarPipelineModule.kt
|
||||||
-packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ConnectivityPipelineLogger.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/BatteryStateNotifier.kt
|
||||||
-packages/SystemUI/src/com/android/systemui/statusbar/policy/DeviceControlsController.kt
|
-packages/SystemUI/src/com/android/systemui/statusbar/policy/DeviceControlsController.kt
|
||||||
-packages/SystemUI/src/com/android/systemui/statusbar/policy/DeviceControlsControllerImpl.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/panelstate/ShadeExpansionStateManagerTest.kt
|
||||||
-packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/userswitcher/StatusBarUserSwitcherControllerOldImplTest.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/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/BatteryStateNotifierTest.kt
|
||||||
-packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/ClockTest.kt
|
-packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/ClockTest.kt
|
||||||
-packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/DeviceControlsControllerImplTest.kt
|
-packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/DeviceControlsControllerImplTest.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
|
||||||
import com.android.systemui.statusbar.pipeline.mobile.data.repository.MobileConnectionRepository.Companion.DEFAULT_NUM_LEVELS
|
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.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.data.repository.WifiRepository
|
||||||
|
import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
|
|||||||
@@ -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.mobile.util.MobileMappingsProxy
|
||||||
import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger
|
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.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.data.repository.WifiRepository
|
||||||
|
import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
|
||||||
import com.android.systemui.util.kotlin.pairwise
|
import com.android.systemui.util.kotlin.pairwise
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import kotlinx.coroutines.CoroutineDispatcher
|
import kotlinx.coroutines.CoroutineDispatcher
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
package com.android.systemui.statusbar.pipeline.wifi.data.repository
|
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.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
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
|
|
||||||
/** Provides data related to the wifi state. */
|
/** Provides data related to the wifi state. */
|
||||||
|
|||||||
@@ -23,9 +23,9 @@ import com.android.systemui.dagger.qualifiers.Application
|
|||||||
import com.android.systemui.demomode.DemoMode
|
import com.android.systemui.demomode.DemoMode
|
||||||
import com.android.systemui.demomode.DemoModeController
|
import com.android.systemui.demomode.DemoModeController
|
||||||
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
|
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.demo.DemoWifiRepository
|
||||||
import com.android.systemui.statusbar.pipeline.wifi.data.repository.prod.WifiRepositoryImpl
|
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 javax.inject.Inject
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
|
|||||||
@@ -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.dagger.qualifiers.Application
|
||||||
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
|
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.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.WifiRepository
|
||||||
import com.android.systemui.statusbar.pipeline.wifi.data.repository.demo.model.FakeWifiEventModel
|
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 javax.inject.Inject
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.Job
|
import kotlinx.coroutines.Job
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ package com.android.systemui.statusbar.pipeline.wifi.data.repository.prod
|
|||||||
|
|
||||||
import com.android.systemui.dagger.SysUISingleton
|
import com.android.systemui.dagger.SysUISingleton
|
||||||
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
|
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.data.repository.RealWifiRepository
|
||||||
|
import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
|
|||||||
@@ -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.ConnectivityPipelineLogger.Companion.logInputChange
|
||||||
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
|
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.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.RealWifiRepository
|
||||||
import com.android.systemui.statusbar.pipeline.wifi.data.repository.WifiRepository
|
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 java.util.concurrent.Executor
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
|
|||||||
@@ -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.ConnectivitySlot
|
||||||
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
|
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.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.data.repository.WifiRepository
|
||||||
|
import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
@@ -58,18 +58,22 @@ interface WifiInteractor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@SysUISingleton
|
@SysUISingleton
|
||||||
class WifiInteractorImpl @Inject constructor(
|
class WifiInteractorImpl
|
||||||
|
@Inject
|
||||||
|
constructor(
|
||||||
connectivityRepository: ConnectivityRepository,
|
connectivityRepository: ConnectivityRepository,
|
||||||
wifiRepository: WifiRepository,
|
wifiRepository: WifiRepository,
|
||||||
) : WifiInteractor {
|
) : WifiInteractor {
|
||||||
|
|
||||||
override val ssid: Flow<String?> = wifiRepository.wifiNetwork.map { info ->
|
override val ssid: Flow<String?> =
|
||||||
|
wifiRepository.wifiNetwork.map { info ->
|
||||||
when (info) {
|
when (info) {
|
||||||
is WifiNetworkModel.Unavailable -> null
|
is WifiNetworkModel.Unavailable -> null
|
||||||
is WifiNetworkModel.Invalid -> null
|
is WifiNetworkModel.Invalid -> null
|
||||||
is WifiNetworkModel.Inactive -> null
|
is WifiNetworkModel.Inactive -> null
|
||||||
is WifiNetworkModel.CarrierMerged -> null
|
is WifiNetworkModel.CarrierMerged -> null
|
||||||
is WifiNetworkModel.Active -> when {
|
is WifiNetworkModel.Active ->
|
||||||
|
when {
|
||||||
info.isPasspointAccessPoint || info.isOnlineSignUpForPasspointAccessPoint ->
|
info.isPasspointAccessPoint || info.isOnlineSignUpForPasspointAccessPoint ->
|
||||||
info.passpointProviderFriendlyName
|
info.passpointProviderFriendlyName
|
||||||
info.ssid != WifiManager.UNKNOWN_SSID -> info.ssid
|
info.ssid != WifiManager.UNKNOWN_SSID -> info.ssid
|
||||||
@@ -86,7 +90,6 @@ class WifiInteractorImpl @Inject constructor(
|
|||||||
|
|
||||||
override val activity: StateFlow<DataActivityModel> = wifiRepository.wifiActivity
|
override val activity: StateFlow<DataActivityModel> = wifiRepository.wifiActivity
|
||||||
|
|
||||||
override val isForceHidden: Flow<Boolean> = connectivityRepository.forceHiddenSlots.map {
|
override val isForceHidden: Flow<Boolean> =
|
||||||
it.contains(ConnectivitySlot.WIFI)
|
connectivityRepository.forceHiddenSlots.map { it.contains(ConnectivitySlot.WIFI) }
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,13 +14,13 @@
|
|||||||
* limitations under the License.
|
* 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 androidx.annotation.VisibleForTesting
|
||||||
import com.android.systemui.log.table.TableRowLogger
|
|
||||||
import com.android.systemui.log.table.Diffable
|
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. */
|
/** Provides information about the current wifi network. */
|
||||||
sealed class WifiNetworkModel : Diffable<WifiNetworkModel> {
|
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(
|
data class Invalid(
|
||||||
/** A description of why the wifi information was invalid. */
|
/** A description of why the wifi information was invalid. */
|
||||||
val invalidReason: String,
|
val invalidReason: String,
|
||||||
@@ -142,21 +140,17 @@ sealed class WifiNetworkModel : Diffable<WifiNetworkModel> {
|
|||||||
*/
|
*/
|
||||||
val subscriptionId: Int,
|
val subscriptionId: Int,
|
||||||
|
|
||||||
/**
|
/** The signal level, guaranteed to be 0 <= level <= numberOfLevels. */
|
||||||
* The signal level, guaranteed to be 0 <= level <= numberOfLevels.
|
|
||||||
*/
|
|
||||||
val level: Int,
|
val level: Int,
|
||||||
|
|
||||||
/**
|
/** The maximum possible level. */
|
||||||
* The maximum possible level.
|
val numberOfLevels: Int = MobileConnectionRepository.DEFAULT_NUM_LEVELS,
|
||||||
*/
|
|
||||||
val numberOfLevels: Int = DEFAULT_NUM_LEVELS,
|
|
||||||
) : WifiNetworkModel() {
|
) : WifiNetworkModel() {
|
||||||
init {
|
init {
|
||||||
require(level in MIN_VALID_LEVEL..numberOfLevels) {
|
require(level in MIN_VALID_LEVEL..numberOfLevels) {
|
||||||
"0 <= wifi level <= $numberOfLevels required; level was $level"
|
"0 <= wifi level <= $numberOfLevels required; level was $level"
|
||||||
}
|
}
|
||||||
require(subscriptionId != INVALID_SUBSCRIPTION_ID) {
|
require(subscriptionId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
|
||||||
"subscription ID cannot be invalid"
|
"subscription ID cannot be invalid"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -208,9 +202,7 @@ sealed class WifiNetworkModel : Diffable<WifiNetworkModel> {
|
|||||||
/** See [android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED]. */
|
/** See [android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED]. */
|
||||||
val isValidated: Boolean = false,
|
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,
|
val level: Int,
|
||||||
|
|
||||||
/** See [android.net.wifi.WifiInfo.ssid]. */
|
/** See [android.net.wifi.WifiInfo.ssid]. */
|
||||||
@@ -255,8 +247,10 @@ sealed class WifiNetworkModel : Diffable<WifiNetworkModel> {
|
|||||||
if (prevVal.isPasspointAccessPoint != isPasspointAccessPoint) {
|
if (prevVal.isPasspointAccessPoint != isPasspointAccessPoint) {
|
||||||
row.logChange(COL_PASSPOINT_ACCESS_POINT, isPasspointAccessPoint)
|
row.logChange(COL_PASSPOINT_ACCESS_POINT, isPasspointAccessPoint)
|
||||||
}
|
}
|
||||||
if (prevVal.isOnlineSignUpForPasspointAccessPoint !=
|
if (
|
||||||
isOnlineSignUpForPasspointAccessPoint) {
|
prevVal.isOnlineSignUpForPasspointAccessPoint !=
|
||||||
|
isOnlineSignUpForPasspointAccessPoint
|
||||||
|
) {
|
||||||
row.logChange(COL_ONLINE_SIGN_UP, isOnlineSignUpForPasspointAccessPoint)
|
row.logChange(COL_ONLINE_SIGN_UP, isOnlineSignUpForPasspointAccessPoint)
|
||||||
}
|
}
|
||||||
if (prevVal.passpointProviderFriendlyName != passpointProviderFriendlyName) {
|
if (prevVal.passpointProviderFriendlyName != passpointProviderFriendlyName) {
|
||||||
@@ -281,9 +275,11 @@ sealed class WifiNetworkModel : Diffable<WifiNetworkModel> {
|
|||||||
// Only include the passpoint-related values in the string if we have them. (Most
|
// 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.)
|
// networks won't have them so they'll be mostly clutter.)
|
||||||
val passpointString =
|
val passpointString =
|
||||||
if (isPasspointAccessPoint ||
|
if (
|
||||||
|
isPasspointAccessPoint ||
|
||||||
isOnlineSignUpForPasspointAccessPoint ||
|
isOnlineSignUpForPasspointAccessPoint ||
|
||||||
passpointProviderFriendlyName != null) {
|
passpointProviderFriendlyName != null
|
||||||
|
) {
|
||||||
", isPasspointAp=$isPasspointAccessPoint, " +
|
", isPasspointAp=$isPasspointAccessPoint, " +
|
||||||
"isOnlineSignUpForPasspointAp=$isOnlineSignUpForPasspointAccessPoint, " +
|
"isOnlineSignUpForPasspointAp=$isOnlineSignUpForPasspointAccessPoint, " +
|
||||||
"passpointName=$passpointProviderFriendlyName"
|
"passpointName=$passpointProviderFriendlyName"
|
||||||
@@ -296,14 +292,12 @@ sealed class WifiNetworkModel : Diffable<WifiNetworkModel> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
@VisibleForTesting
|
@VisibleForTesting internal const val MAX_VALID_LEVEL = 4
|
||||||
internal const val MAX_VALID_LEVEL = 4
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
@VisibleForTesting
|
@VisibleForTesting internal const val MIN_VALID_LEVEL = 0
|
||||||
internal const val MIN_VALID_LEVEL = 0
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -25,8 +25,6 @@ import com.android.systemui.R
|
|||||||
import com.android.systemui.common.shared.model.ContentDescription
|
import com.android.systemui.common.shared.model.ContentDescription
|
||||||
import com.android.systemui.dagger.SysUISingleton
|
import com.android.systemui.dagger.SysUISingleton
|
||||||
import com.android.systemui.dagger.qualifiers.Application
|
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.TableLogBuffer
|
||||||
import com.android.systemui.log.table.logDiffsForTable
|
import com.android.systemui.log.table.logDiffsForTable
|
||||||
import com.android.systemui.statusbar.connectivity.WifiIcons.WIFI_FULL_ICONS
|
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.connectivity.WifiIcons.WIFI_NO_NETWORK
|
||||||
import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags
|
import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags
|
||||||
import com.android.systemui.statusbar.pipeline.airplane.ui.viewmodel.AirplaneModeViewModel
|
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.ConnectivityConstants
|
||||||
import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger
|
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.ConnectivityPipelineLogger.Companion.logOutputChange
|
||||||
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
|
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.domain.interactor.WifiInteractor
|
||||||
import com.android.systemui.statusbar.pipeline.wifi.shared.WifiConstants
|
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 javax.inject.Inject
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
@@ -55,15 +55,12 @@ import kotlinx.coroutines.flow.stateIn
|
|||||||
/**
|
/**
|
||||||
* Models the UI state for the status bar wifi icon.
|
* Models the UI state for the status bar wifi icon.
|
||||||
*
|
*
|
||||||
* This class exposes three view models, one per status bar location:
|
* This class exposes three view models, one per status bar location: [home], [keyguard], and [qs].
|
||||||
* - [home]
|
|
||||||
* - [keyguard]
|
|
||||||
* - [qs]
|
|
||||||
* In order to get the UI state for the wifi icon, you must use one of those view models (whichever
|
* 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).
|
* is correct for your location).
|
||||||
*
|
*
|
||||||
* Internally, this class maintains the current state of the wifi icon and notifies those three
|
* Internally, this class maintains the current state of the wifi icon and notifies those three view
|
||||||
* view models of any changes.
|
* models of any changes.
|
||||||
*/
|
*/
|
||||||
@SysUISingleton
|
@SysUISingleton
|
||||||
class WifiViewModel
|
class WifiViewModel
|
||||||
@@ -85,7 +82,8 @@ constructor(
|
|||||||
is WifiNetworkModel.Unavailable -> WifiIcon.Hidden
|
is WifiNetworkModel.Unavailable -> WifiIcon.Hidden
|
||||||
is WifiNetworkModel.Invalid -> WifiIcon.Hidden
|
is WifiNetworkModel.Invalid -> WifiIcon.Hidden
|
||||||
is WifiNetworkModel.CarrierMerged -> WifiIcon.Hidden
|
is WifiNetworkModel.CarrierMerged -> WifiIcon.Hidden
|
||||||
is WifiNetworkModel.Inactive -> WifiIcon.Visible(
|
is WifiNetworkModel.Inactive ->
|
||||||
|
WifiIcon.Visible(
|
||||||
res = WIFI_NO_NETWORK,
|
res = WIFI_NO_NETWORK,
|
||||||
ContentDescription.Loaded(
|
ContentDescription.Loaded(
|
||||||
"${context.getString(WIFI_NO_CONNECTION)},${context.getString(NO_INTERNET)}"
|
"${context.getString(WIFI_NO_CONNECTION)},${context.getString(NO_INTERNET)}"
|
||||||
|
|||||||
@@ -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.NetworkNameModel
|
||||||
import com.android.systemui.statusbar.pipeline.mobile.data.model.ResolvedNetworkType
|
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.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.data.repository.FakeWifiRepository
|
||||||
|
import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
|
||||||
import com.android.systemui.util.mockito.whenever
|
import com.android.systemui.util.mockito.whenever
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
|
|||||||
@@ -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.FakeMobileConnectionRepository
|
||||||
import com.android.systemui.statusbar.pipeline.mobile.data.repository.MobileConnectionRepository
|
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.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.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.any
|
||||||
import com.android.systemui.util.mockito.eq
|
import com.android.systemui.util.mockito.eq
|
||||||
import com.android.systemui.util.mockito.mock
|
import com.android.systemui.util.mockito.mock
|
||||||
|
|||||||
@@ -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.data.repository.prod.FullMobileConnectionRepository.Factory.Companion.tableBufferLogName
|
||||||
import com.android.systemui.statusbar.pipeline.mobile.util.FakeMobileMappingsProxy
|
import com.android.systemui.statusbar.pipeline.mobile.util.FakeMobileMappingsProxy
|
||||||
import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger
|
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.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.any
|
||||||
import com.android.systemui.util.mockito.argumentCaptor
|
import com.android.systemui.util.mockito.argumentCaptor
|
||||||
import com.android.systemui.util.mockito.eq
|
import com.android.systemui.util.mockito.eq
|
||||||
|
|||||||
@@ -17,8 +17,8 @@
|
|||||||
package com.android.systemui.statusbar.pipeline.wifi.data.repository
|
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.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.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.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ package com.android.systemui.statusbar.pipeline.wifi.data.repository.prod
|
|||||||
import androidx.test.filters.SmallTest
|
import androidx.test.filters.SmallTest
|
||||||
import com.android.systemui.SysuiTestCase
|
import com.android.systemui.SysuiTestCase
|
||||||
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
|
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 com.google.common.truth.Truth.assertThat
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|||||||
@@ -36,8 +36,8 @@ import com.android.systemui.broadcast.BroadcastDispatcher
|
|||||||
import com.android.systemui.log.table.TableLogBuffer
|
import com.android.systemui.log.table.TableLogBuffer
|
||||||
import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger
|
import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger
|
||||||
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
|
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.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.concurrency.FakeExecutor
|
||||||
import com.android.systemui.util.mockito.any
|
import com.android.systemui.util.mockito.any
|
||||||
import com.android.systemui.util.mockito.argumentCaptor
|
import com.android.systemui.util.mockito.argumentCaptor
|
||||||
@@ -89,7 +89,8 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
anyInt(),
|
anyInt(),
|
||||||
nullable(),
|
nullable(),
|
||||||
)
|
)
|
||||||
).thenReturn(flowOf(Unit))
|
)
|
||||||
|
.thenReturn(flowOf(Unit))
|
||||||
executor = FakeExecutor(FakeSystemClock())
|
executor = FakeExecutor(FakeSystemClock())
|
||||||
scope = CoroutineScope(IMMEDIATE)
|
scope = CoroutineScope(IMMEDIATE)
|
||||||
underTest = createRepo()
|
underTest = createRepo()
|
||||||
@@ -101,7 +102,8 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun isWifiEnabled_initiallyGetsWifiManagerValue() = runBlocking(IMMEDIATE) {
|
fun isWifiEnabled_initiallyGetsWifiManagerValue() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
whenever(wifiManager.isWifiEnabled).thenReturn(true)
|
whenever(wifiManager.isWifiEnabled).thenReturn(true)
|
||||||
|
|
||||||
underTest = createRepo()
|
underTest = createRepo()
|
||||||
@@ -110,22 +112,21 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun isWifiEnabled_networkCapabilitiesChanged_valueUpdated() = runBlocking(IMMEDIATE) {
|
fun isWifiEnabled_networkCapabilitiesChanged_valueUpdated() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
// We need to call launch on the flows so that they start updating
|
// We need to call launch on the flows so that they start updating
|
||||||
val networkJob = underTest.wifiNetwork.launchIn(this)
|
val networkJob = underTest.wifiNetwork.launchIn(this)
|
||||||
val enabledJob = underTest.isWifiEnabled.launchIn(this)
|
val enabledJob = underTest.isWifiEnabled.launchIn(this)
|
||||||
|
|
||||||
whenever(wifiManager.isWifiEnabled).thenReturn(true)
|
whenever(wifiManager.isWifiEnabled).thenReturn(true)
|
||||||
getNetworkCallback().onCapabilitiesChanged(
|
getNetworkCallback()
|
||||||
NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO)
|
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
|
||||||
)
|
|
||||||
|
|
||||||
assertThat(underTest.isWifiEnabled.value).isTrue()
|
assertThat(underTest.isWifiEnabled.value).isTrue()
|
||||||
|
|
||||||
whenever(wifiManager.isWifiEnabled).thenReturn(false)
|
whenever(wifiManager.isWifiEnabled).thenReturn(false)
|
||||||
getNetworkCallback().onCapabilitiesChanged(
|
getNetworkCallback()
|
||||||
NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO)
|
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
|
||||||
)
|
|
||||||
|
|
||||||
assertThat(underTest.isWifiEnabled.value).isFalse()
|
assertThat(underTest.isWifiEnabled.value).isFalse()
|
||||||
|
|
||||||
@@ -134,7 +135,8 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun isWifiEnabled_networkLost_valueUpdated() = runBlocking(IMMEDIATE) {
|
fun isWifiEnabled_networkLost_valueUpdated() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
// We need to call launch on the flows so that they start updating
|
// We need to call launch on the flows so that they start updating
|
||||||
val networkJob = underTest.wifiNetwork.launchIn(this)
|
val networkJob = underTest.wifiNetwork.launchIn(this)
|
||||||
val enabledJob = underTest.isWifiEnabled.launchIn(this)
|
val enabledJob = underTest.isWifiEnabled.launchIn(this)
|
||||||
@@ -154,7 +156,8 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun isWifiEnabled_intentsReceived_valueUpdated() = runBlocking(IMMEDIATE) {
|
fun isWifiEnabled_intentsReceived_valueUpdated() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
val intentFlow = MutableSharedFlow<Unit>()
|
val intentFlow = MutableSharedFlow<Unit>()
|
||||||
whenever(
|
whenever(
|
||||||
broadcastDispatcher.broadcastFlow(
|
broadcastDispatcher.broadcastFlow(
|
||||||
@@ -163,7 +166,8 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
anyInt(),
|
anyInt(),
|
||||||
nullable(),
|
nullable(),
|
||||||
)
|
)
|
||||||
).thenReturn(intentFlow)
|
)
|
||||||
|
.thenReturn(intentFlow)
|
||||||
underTest = createRepo()
|
underTest = createRepo()
|
||||||
|
|
||||||
val job = underTest.isWifiEnabled.launchIn(this)
|
val job = underTest.isWifiEnabled.launchIn(this)
|
||||||
@@ -182,7 +186,8 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun isWifiEnabled_bothIntentAndNetworkUpdates_valueAlwaysUpdated() = runBlocking(IMMEDIATE) {
|
fun isWifiEnabled_bothIntentAndNetworkUpdates_valueAlwaysUpdated() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
val intentFlow = MutableSharedFlow<Unit>()
|
val intentFlow = MutableSharedFlow<Unit>()
|
||||||
whenever(
|
whenever(
|
||||||
broadcastDispatcher.broadcastFlow(
|
broadcastDispatcher.broadcastFlow(
|
||||||
@@ -191,7 +196,8 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
anyInt(),
|
anyInt(),
|
||||||
nullable(),
|
nullable(),
|
||||||
)
|
)
|
||||||
).thenReturn(intentFlow)
|
)
|
||||||
|
.thenReturn(intentFlow)
|
||||||
underTest = createRepo()
|
underTest = createRepo()
|
||||||
|
|
||||||
val networkJob = underTest.wifiNetwork.launchIn(this)
|
val networkJob = underTest.wifiNetwork.launchIn(this)
|
||||||
@@ -206,9 +212,8 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
assertThat(underTest.isWifiEnabled.value).isTrue()
|
assertThat(underTest.isWifiEnabled.value).isTrue()
|
||||||
|
|
||||||
whenever(wifiManager.isWifiEnabled).thenReturn(false)
|
whenever(wifiManager.isWifiEnabled).thenReturn(false)
|
||||||
getNetworkCallback().onCapabilitiesChanged(
|
getNetworkCallback()
|
||||||
NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO)
|
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
|
||||||
)
|
|
||||||
assertThat(underTest.isWifiEnabled.value).isFalse()
|
assertThat(underTest.isWifiEnabled.value).isFalse()
|
||||||
|
|
||||||
whenever(wifiManager.isWifiEnabled).thenReturn(true)
|
whenever(wifiManager.isWifiEnabled).thenReturn(true)
|
||||||
@@ -220,7 +225,8 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun isWifiDefault_initiallyGetsDefault() = runBlocking(IMMEDIATE) {
|
fun isWifiDefault_initiallyGetsDefault() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
val job = underTest.isWifiDefault.launchIn(this)
|
val job = underTest.isWifiDefault.launchIn(this)
|
||||||
|
|
||||||
assertThat(underTest.isWifiDefault.value).isFalse()
|
assertThat(underTest.isWifiDefault.value).isFalse()
|
||||||
@@ -229,17 +235,14 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun isWifiDefault_wifiNetwork_isTrue() = runBlocking(IMMEDIATE) {
|
fun isWifiDefault_wifiNetwork_isTrue() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
val job = underTest.isWifiDefault.launchIn(this)
|
val job = underTest.isWifiDefault.launchIn(this)
|
||||||
|
|
||||||
val wifiInfo = mock<WifiInfo>().apply {
|
val wifiInfo = mock<WifiInfo>().apply { whenever(this.ssid).thenReturn(SSID) }
|
||||||
whenever(this.ssid).thenReturn(SSID)
|
|
||||||
}
|
|
||||||
|
|
||||||
getDefaultNetworkCallback().onCapabilitiesChanged(
|
getDefaultNetworkCallback()
|
||||||
NETWORK,
|
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(wifiInfo))
|
||||||
createWifiNetworkCapabilities(wifiInfo)
|
|
||||||
)
|
|
||||||
|
|
||||||
assertThat(underTest.isWifiDefault.value).isTrue()
|
assertThat(underTest.isWifiDefault.value).isTrue()
|
||||||
|
|
||||||
@@ -252,11 +255,13 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
runBlocking(IMMEDIATE) {
|
runBlocking(IMMEDIATE) {
|
||||||
val job = underTest.isWifiDefault.launchIn(this)
|
val job = underTest.isWifiDefault.launchIn(this)
|
||||||
|
|
||||||
val transportInfo = VpnTransportInfo(
|
val transportInfo =
|
||||||
|
VpnTransportInfo(
|
||||||
/* type= */ 0,
|
/* type= */ 0,
|
||||||
/* sessionId= */ "sessionId",
|
/* sessionId= */ "sessionId",
|
||||||
)
|
)
|
||||||
val networkCapabilities = mock<NetworkCapabilities>().also {
|
val networkCapabilities =
|
||||||
|
mock<NetworkCapabilities>().also {
|
||||||
whenever(it.hasTransport(TRANSPORT_VPN)).thenReturn(true)
|
whenever(it.hasTransport(TRANSPORT_VPN)).thenReturn(true)
|
||||||
whenever(it.hasTransport(TRANSPORT_WIFI)).thenReturn(false)
|
whenever(it.hasTransport(TRANSPORT_WIFI)).thenReturn(false)
|
||||||
whenever(it.hasTransport(TRANSPORT_CELLULAR)).thenReturn(false)
|
whenever(it.hasTransport(TRANSPORT_CELLULAR)).thenReturn(false)
|
||||||
@@ -276,11 +281,13 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
runBlocking(IMMEDIATE) {
|
runBlocking(IMMEDIATE) {
|
||||||
val job = underTest.isWifiDefault.launchIn(this)
|
val job = underTest.isWifiDefault.launchIn(this)
|
||||||
|
|
||||||
val transportInfo = VpnTransportInfo(
|
val transportInfo =
|
||||||
|
VpnTransportInfo(
|
||||||
/* type= */ 0,
|
/* type= */ 0,
|
||||||
/* sessionId= */ "sessionId",
|
/* sessionId= */ "sessionId",
|
||||||
)
|
)
|
||||||
val networkCapabilities = mock<NetworkCapabilities>().also {
|
val networkCapabilities =
|
||||||
|
mock<NetworkCapabilities>().also {
|
||||||
whenever(it.hasTransport(TRANSPORT_VPN)).thenReturn(true)
|
whenever(it.hasTransport(TRANSPORT_VPN)).thenReturn(true)
|
||||||
whenever(it.hasTransport(TRANSPORT_WIFI)).thenReturn(true)
|
whenever(it.hasTransport(TRANSPORT_WIFI)).thenReturn(true)
|
||||||
whenever(it.hasTransport(TRANSPORT_CELLULAR)).thenReturn(false)
|
whenever(it.hasTransport(TRANSPORT_CELLULAR)).thenReturn(false)
|
||||||
@@ -295,10 +302,12 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun isWifiDefault_cellularVcnNetwork_isTrue() = runBlocking(IMMEDIATE) {
|
fun isWifiDefault_cellularVcnNetwork_isTrue() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
val job = underTest.isWifiDefault.launchIn(this)
|
val job = underTest.isWifiDefault.launchIn(this)
|
||||||
|
|
||||||
val capabilities = mock<NetworkCapabilities>().apply {
|
val capabilities =
|
||||||
|
mock<NetworkCapabilities>().apply {
|
||||||
whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
|
whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
|
||||||
whenever(this.transportInfo).thenReturn(VcnTransportInfo(PRIMARY_WIFI_INFO))
|
whenever(this.transportInfo).thenReturn(VcnTransportInfo(PRIMARY_WIFI_INFO))
|
||||||
}
|
}
|
||||||
@@ -315,7 +324,8 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
runBlocking(IMMEDIATE) {
|
runBlocking(IMMEDIATE) {
|
||||||
val job = underTest.isWifiDefault.launchIn(this)
|
val job = underTest.isWifiDefault.launchIn(this)
|
||||||
|
|
||||||
val capabilities = mock<NetworkCapabilities>().apply {
|
val capabilities =
|
||||||
|
mock<NetworkCapabilities>().apply {
|
||||||
whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
|
whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
|
||||||
whenever(this.hasTransport(TRANSPORT_WIFI)).thenReturn(true)
|
whenever(this.hasTransport(TRANSPORT_WIFI)).thenReturn(true)
|
||||||
whenever(this.transportInfo).thenReturn(VcnTransportInfo(PRIMARY_WIFI_INFO))
|
whenever(this.transportInfo).thenReturn(VcnTransportInfo(PRIMARY_WIFI_INFO))
|
||||||
@@ -329,10 +339,12 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun isWifiDefault_cellularNotVcnNetwork_isFalse() = runBlocking(IMMEDIATE) {
|
fun isWifiDefault_cellularNotVcnNetwork_isFalse() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
val job = underTest.isWifiDefault.launchIn(this)
|
val job = underTest.isWifiDefault.launchIn(this)
|
||||||
|
|
||||||
val capabilities = mock<NetworkCapabilities>().apply {
|
val capabilities =
|
||||||
|
mock<NetworkCapabilities>().apply {
|
||||||
whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
|
whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
|
||||||
whenever(this.transportInfo).thenReturn(mock())
|
whenever(this.transportInfo).thenReturn(mock())
|
||||||
}
|
}
|
||||||
@@ -345,7 +357,8 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun isWifiDefault_wifiNetworkLost_isFalse() = runBlocking(IMMEDIATE) {
|
fun isWifiDefault_wifiNetworkLost_isFalse() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
val job = underTest.isWifiDefault.launchIn(this)
|
val job = underTest.isWifiDefault.launchIn(this)
|
||||||
|
|
||||||
// First, add a network
|
// First, add a network
|
||||||
@@ -363,12 +376,10 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiNetwork_initiallyGetsDefault() = runBlocking(IMMEDIATE) {
|
fun wifiNetwork_initiallyGetsDefault() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
assertThat(latest).isEqualTo(WIFI_NETWORK_DEFAULT)
|
assertThat(latest).isEqualTo(WIFI_NETWORK_DEFAULT)
|
||||||
|
|
||||||
@@ -376,22 +387,20 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiNetwork_primaryWifiNetworkAdded_flowHasNetwork() = runBlocking(IMMEDIATE) {
|
fun wifiNetwork_primaryWifiNetworkAdded_flowHasNetwork() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val wifiInfo = mock<WifiInfo>().apply {
|
val wifiInfo =
|
||||||
|
mock<WifiInfo>().apply {
|
||||||
whenever(this.ssid).thenReturn(SSID)
|
whenever(this.ssid).thenReturn(SSID)
|
||||||
whenever(this.isPrimary).thenReturn(true)
|
whenever(this.isPrimary).thenReturn(true)
|
||||||
}
|
}
|
||||||
val network = mock<Network>().apply {
|
val network = mock<Network>().apply { whenever(this.getNetId()).thenReturn(NETWORK_ID) }
|
||||||
whenever(this.getNetId()).thenReturn(NETWORK_ID)
|
|
||||||
}
|
|
||||||
|
|
||||||
getNetworkCallback().onCapabilitiesChanged(network, createWifiNetworkCapabilities(wifiInfo))
|
getNetworkCallback()
|
||||||
|
.onCapabilitiesChanged(network, createWifiNetworkCapabilities(wifiInfo))
|
||||||
|
|
||||||
assertThat(latest is WifiNetworkModel.Active).isTrue()
|
assertThat(latest is WifiNetworkModel.Active).isTrue()
|
||||||
val latestActive = latest as WifiNetworkModel.Active
|
val latestActive = latest as WifiNetworkModel.Active
|
||||||
@@ -402,19 +411,19 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiNetwork_isCarrierMerged_flowHasCarrierMerged() = runBlocking(IMMEDIATE) {
|
fun wifiNetwork_isCarrierMerged_flowHasCarrierMerged() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val wifiInfo = mock<WifiInfo>().apply {
|
val wifiInfo =
|
||||||
|
mock<WifiInfo>().apply {
|
||||||
whenever(this.isPrimary).thenReturn(true)
|
whenever(this.isPrimary).thenReturn(true)
|
||||||
whenever(this.isCarrierMerged).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()
|
||||||
|
|
||||||
@@ -425,18 +434,17 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
fun wifiNetwork_carrierMergedButInvalidSubId_flowHasInvalid() =
|
fun wifiNetwork_carrierMergedButInvalidSubId_flowHasInvalid() =
|
||||||
runBlocking(IMMEDIATE) {
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val wifiInfo = mock<WifiInfo>().apply {
|
val wifiInfo =
|
||||||
|
mock<WifiInfo>().apply {
|
||||||
whenever(this.isPrimary).thenReturn(true)
|
whenever(this.isPrimary).thenReturn(true)
|
||||||
whenever(this.isCarrierMerged).thenReturn(true)
|
whenever(this.isCarrierMerged).thenReturn(true)
|
||||||
whenever(this.subscriptionId).thenReturn(INVALID_SUBSCRIPTION_ID)
|
whenever(this.subscriptionId).thenReturn(INVALID_SUBSCRIPTION_ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
getNetworkCallback().onCapabilitiesChanged(
|
getNetworkCallback()
|
||||||
|
.onCapabilitiesChanged(
|
||||||
NETWORK,
|
NETWORK,
|
||||||
createWifiNetworkCapabilities(wifiInfo),
|
createWifiNetworkCapabilities(wifiInfo),
|
||||||
)
|
)
|
||||||
@@ -450,13 +458,11 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
fun wifiNetwork_isCarrierMerged_getsCorrectValues() =
|
fun wifiNetwork_isCarrierMerged_getsCorrectValues() =
|
||||||
runBlocking(IMMEDIATE) {
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val rssi = -57
|
val rssi = -57
|
||||||
val wifiInfo = mock<WifiInfo>().apply {
|
val wifiInfo =
|
||||||
|
mock<WifiInfo>().apply {
|
||||||
whenever(this.isPrimary).thenReturn(true)
|
whenever(this.isPrimary).thenReturn(true)
|
||||||
whenever(this.isCarrierMerged).thenReturn(true)
|
whenever(this.isCarrierMerged).thenReturn(true)
|
||||||
whenever(this.rssi).thenReturn(rssi)
|
whenever(this.rssi).thenReturn(rssi)
|
||||||
@@ -466,7 +472,8 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
whenever(wifiManager.calculateSignalLevel(rssi)).thenReturn(2)
|
whenever(wifiManager.calculateSignalLevel(rssi)).thenReturn(2)
|
||||||
whenever(wifiManager.maxSignalLevel).thenReturn(5)
|
whenever(wifiManager.maxSignalLevel).thenReturn(5)
|
||||||
|
|
||||||
getNetworkCallback().onCapabilitiesChanged(
|
getNetworkCallback()
|
||||||
|
.onCapabilitiesChanged(
|
||||||
NETWORK,
|
NETWORK,
|
||||||
createWifiNetworkCapabilities(wifiInfo),
|
createWifiNetworkCapabilities(wifiInfo),
|
||||||
)
|
)
|
||||||
@@ -483,15 +490,15 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiNetwork_notValidated_networkNotValidated() = runBlocking(IMMEDIATE) {
|
fun wifiNetwork_notValidated_networkNotValidated() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
getNetworkCallback().onCapabilitiesChanged(
|
getNetworkCallback()
|
||||||
NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO, isValidated = false)
|
.onCapabilitiesChanged(
|
||||||
|
NETWORK,
|
||||||
|
createWifiNetworkCapabilities(PRIMARY_WIFI_INFO, isValidated = false)
|
||||||
)
|
)
|
||||||
|
|
||||||
assertThat((latest as WifiNetworkModel.Active).isValidated).isFalse()
|
assertThat((latest as WifiNetworkModel.Active).isValidated).isFalse()
|
||||||
@@ -500,15 +507,15 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiNetwork_validated_networkValidated() = runBlocking(IMMEDIATE) {
|
fun wifiNetwork_validated_networkValidated() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
getNetworkCallback().onCapabilitiesChanged(
|
getNetworkCallback()
|
||||||
NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO, isValidated = true)
|
.onCapabilitiesChanged(
|
||||||
|
NETWORK,
|
||||||
|
createWifiNetworkCapabilities(PRIMARY_WIFI_INFO, isValidated = true)
|
||||||
)
|
)
|
||||||
|
|
||||||
assertThat((latest as WifiNetworkModel.Active).isValidated).isTrue()
|
assertThat((latest as WifiNetworkModel.Active).isValidated).isTrue()
|
||||||
@@ -517,19 +524,19 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiNetwork_nonPrimaryWifiNetworkAdded_flowHasNoNetwork() = runBlocking(IMMEDIATE) {
|
fun wifiNetwork_nonPrimaryWifiNetworkAdded_flowHasNoNetwork() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val wifiInfo = mock<WifiInfo>().apply {
|
val wifiInfo =
|
||||||
|
mock<WifiInfo>().apply {
|
||||||
whenever(this.ssid).thenReturn(SSID)
|
whenever(this.ssid).thenReturn(SSID)
|
||||||
whenever(this.isPrimary).thenReturn(false)
|
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()
|
||||||
|
|
||||||
@@ -541,12 +548,10 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
fun wifiNetwork_transportInfoIsNotWifi_flowHasNoNetwork() =
|
fun wifiNetwork_transportInfoIsNotWifi_flowHasNoNetwork() =
|
||||||
runBlocking(IMMEDIATE) {
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val transportInfo = VpnTransportInfo(
|
val transportInfo =
|
||||||
|
VpnTransportInfo(
|
||||||
/* type= */ 0,
|
/* type= */ 0,
|
||||||
/* sessionId= */ "sessionId",
|
/* sessionId= */ "sessionId",
|
||||||
)
|
)
|
||||||
@@ -559,14 +564,13 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiNetwork_cellularVcnNetworkAdded_flowHasNetwork() = runBlocking(IMMEDIATE) {
|
fun wifiNetwork_cellularVcnNetworkAdded_flowHasNetwork() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val capabilities = mock<NetworkCapabilities>().apply {
|
val capabilities =
|
||||||
|
mock<NetworkCapabilities>().apply {
|
||||||
whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
|
whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
|
||||||
whenever(this.transportInfo).thenReturn(VcnTransportInfo(PRIMARY_WIFI_INFO))
|
whenever(this.transportInfo).thenReturn(VcnTransportInfo(PRIMARY_WIFI_INFO))
|
||||||
}
|
}
|
||||||
@@ -582,18 +586,18 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiNetwork_nonPrimaryCellularVcnNetworkAdded_flowHasNoNetwork() = runBlocking(IMMEDIATE) {
|
fun wifiNetwork_nonPrimaryCellularVcnNetworkAdded_flowHasNoNetwork() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val wifiInfo = mock<WifiInfo>().apply {
|
val wifiInfo =
|
||||||
|
mock<WifiInfo>().apply {
|
||||||
whenever(this.ssid).thenReturn(SSID)
|
whenever(this.ssid).thenReturn(SSID)
|
||||||
whenever(this.isPrimary).thenReturn(false)
|
whenever(this.isPrimary).thenReturn(false)
|
||||||
}
|
}
|
||||||
val capabilities = mock<NetworkCapabilities>().apply {
|
val capabilities =
|
||||||
|
mock<NetworkCapabilities>().apply {
|
||||||
whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
|
whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
|
||||||
whenever(this.transportInfo).thenReturn(VcnTransportInfo(wifiInfo))
|
whenever(this.transportInfo).thenReturn(VcnTransportInfo(wifiInfo))
|
||||||
}
|
}
|
||||||
@@ -606,14 +610,13 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiNetwork_cellularNotVcnNetworkAdded_flowHasNoNetwork() = runBlocking(IMMEDIATE) {
|
fun wifiNetwork_cellularNotVcnNetworkAdded_flowHasNoNetwork() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val capabilities = mock<NetworkCapabilities>().apply {
|
val capabilities =
|
||||||
|
mock<NetworkCapabilities>().apply {
|
||||||
whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
|
whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
|
||||||
whenever(this.transportInfo).thenReturn(mock())
|
whenever(this.transportInfo).thenReturn(mock())
|
||||||
}
|
}
|
||||||
@@ -629,12 +632,10 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
fun wifiNetwork_cellularAndWifiTransports_usesCellular() =
|
fun wifiNetwork_cellularAndWifiTransports_usesCellular() =
|
||||||
runBlocking(IMMEDIATE) {
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val capabilities = mock<NetworkCapabilities>().apply {
|
val capabilities =
|
||||||
|
mock<NetworkCapabilities>().apply {
|
||||||
whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
|
whenever(this.hasTransport(TRANSPORT_CELLULAR)).thenReturn(true)
|
||||||
whenever(this.hasTransport(TRANSPORT_WIFI)).thenReturn(true)
|
whenever(this.hasTransport(TRANSPORT_WIFI)).thenReturn(true)
|
||||||
whenever(this.transportInfo).thenReturn(VcnTransportInfo(PRIMARY_WIFI_INFO))
|
whenever(this.transportInfo).thenReturn(VcnTransportInfo(PRIMARY_WIFI_INFO))
|
||||||
@@ -651,12 +652,10 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiNetwork_newPrimaryWifiNetwork_flowHasNewNetwork() = runBlocking(IMMEDIATE) {
|
fun wifiNetwork_newPrimaryWifiNetwork_flowHasNewNetwork() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
// Start with the original network
|
// Start with the original network
|
||||||
getNetworkCallback()
|
getNetworkCallback()
|
||||||
@@ -664,18 +663,17 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
|
|
||||||
// WHEN we update to a new primary network
|
// WHEN we update to a new primary network
|
||||||
val newNetworkId = 456
|
val newNetworkId = 456
|
||||||
val newNetwork = mock<Network>().apply {
|
val newNetwork =
|
||||||
whenever(this.getNetId()).thenReturn(newNetworkId)
|
mock<Network>().apply { whenever(this.getNetId()).thenReturn(newNetworkId) }
|
||||||
}
|
|
||||||
val newSsid = "CD"
|
val newSsid = "CD"
|
||||||
val newWifiInfo = mock<WifiInfo>().apply {
|
val newWifiInfo =
|
||||||
|
mock<WifiInfo>().apply {
|
||||||
whenever(this.ssid).thenReturn(newSsid)
|
whenever(this.ssid).thenReturn(newSsid)
|
||||||
whenever(this.isPrimary).thenReturn(true)
|
whenever(this.isPrimary).thenReturn(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
getNetworkCallback().onCapabilitiesChanged(
|
getNetworkCallback()
|
||||||
newNetwork, createWifiNetworkCapabilities(newWifiInfo)
|
.onCapabilitiesChanged(newNetwork, createWifiNetworkCapabilities(newWifiInfo))
|
||||||
)
|
|
||||||
|
|
||||||
// THEN we use the new network
|
// THEN we use the new network
|
||||||
assertThat(latest is WifiNetworkModel.Active).isTrue()
|
assertThat(latest is WifiNetworkModel.Active).isTrue()
|
||||||
@@ -687,12 +685,10 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiNetwork_newNonPrimaryWifiNetwork_flowHasOldNetwork() = runBlocking(IMMEDIATE) {
|
fun wifiNetwork_newNonPrimaryWifiNetwork_flowHasOldNetwork() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
// Start with the original network
|
// Start with the original network
|
||||||
getNetworkCallback()
|
getNetworkCallback()
|
||||||
@@ -700,18 +696,17 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
|
|
||||||
// WHEN we notify of a new but non-primary network
|
// WHEN we notify of a new but non-primary network
|
||||||
val newNetworkId = 456
|
val newNetworkId = 456
|
||||||
val newNetwork = mock<Network>().apply {
|
val newNetwork =
|
||||||
whenever(this.getNetId()).thenReturn(newNetworkId)
|
mock<Network>().apply { whenever(this.getNetId()).thenReturn(newNetworkId) }
|
||||||
}
|
|
||||||
val newSsid = "EF"
|
val newSsid = "EF"
|
||||||
val newWifiInfo = mock<WifiInfo>().apply {
|
val newWifiInfo =
|
||||||
|
mock<WifiInfo>().apply {
|
||||||
whenever(this.ssid).thenReturn(newSsid)
|
whenever(this.ssid).thenReturn(newSsid)
|
||||||
whenever(this.isPrimary).thenReturn(false)
|
whenever(this.isPrimary).thenReturn(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
getNetworkCallback().onCapabilitiesChanged(
|
getNetworkCallback()
|
||||||
newNetwork, createWifiNetworkCapabilities(newWifiInfo)
|
.onCapabilitiesChanged(newNetwork, createWifiNetworkCapabilities(newWifiInfo))
|
||||||
)
|
|
||||||
|
|
||||||
// THEN we still use the original network
|
// THEN we still use the original network
|
||||||
assertThat(latest is WifiNetworkModel.Active).isTrue()
|
assertThat(latest is WifiNetworkModel.Active).isTrue()
|
||||||
@@ -723,32 +718,36 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiNetwork_newNetworkCapabilities_flowHasNewData() = runBlocking(IMMEDIATE) {
|
fun wifiNetwork_newNetworkCapabilities_flowHasNewData() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val wifiInfo = mock<WifiInfo>().apply {
|
val wifiInfo =
|
||||||
|
mock<WifiInfo>().apply {
|
||||||
whenever(this.ssid).thenReturn(SSID)
|
whenever(this.ssid).thenReturn(SSID)
|
||||||
whenever(this.isPrimary).thenReturn(true)
|
whenever(this.isPrimary).thenReturn(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start with the original network
|
// Start with the original network
|
||||||
getNetworkCallback().onCapabilitiesChanged(
|
getNetworkCallback()
|
||||||
NETWORK, createWifiNetworkCapabilities(wifiInfo, isValidated = true)
|
.onCapabilitiesChanged(
|
||||||
|
NETWORK,
|
||||||
|
createWifiNetworkCapabilities(wifiInfo, isValidated = true)
|
||||||
)
|
)
|
||||||
|
|
||||||
// WHEN we keep the same network ID but change the SSID
|
// WHEN we keep the same network ID but change the SSID
|
||||||
val newSsid = "CD"
|
val newSsid = "CD"
|
||||||
val newWifiInfo = mock<WifiInfo>().apply {
|
val newWifiInfo =
|
||||||
|
mock<WifiInfo>().apply {
|
||||||
whenever(this.ssid).thenReturn(newSsid)
|
whenever(this.ssid).thenReturn(newSsid)
|
||||||
whenever(this.isPrimary).thenReturn(true)
|
whenever(this.isPrimary).thenReturn(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
getNetworkCallback().onCapabilitiesChanged(
|
getNetworkCallback()
|
||||||
NETWORK, createWifiNetworkCapabilities(newWifiInfo, isValidated = false)
|
.onCapabilitiesChanged(
|
||||||
|
NETWORK,
|
||||||
|
createWifiNetworkCapabilities(newWifiInfo, isValidated = false)
|
||||||
)
|
)
|
||||||
|
|
||||||
// THEN we've updated to the new SSID
|
// THEN we've updated to the new SSID
|
||||||
@@ -762,12 +761,10 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiNetwork_noCurrentNetwork_networkLost_flowHasNoNetwork() = runBlocking(IMMEDIATE) {
|
fun wifiNetwork_noCurrentNetwork_networkLost_flowHasNoNetwork() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
// WHEN we receive #onLost without any #onCapabilitiesChanged beforehand
|
// WHEN we receive #onLost without any #onCapabilitiesChanged beforehand
|
||||||
getNetworkCallback().onLost(NETWORK)
|
getNetworkCallback().onLost(NETWORK)
|
||||||
@@ -779,12 +776,10 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiNetwork_currentNetworkLost_flowHasNoNetwork() = runBlocking(IMMEDIATE) {
|
fun wifiNetwork_currentNetworkLost_flowHasNoNetwork() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
getNetworkCallback()
|
getNetworkCallback()
|
||||||
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
|
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
|
||||||
@@ -800,21 +795,17 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiNetwork_unknownNetworkLost_flowHasPreviousNetwork() = runBlocking(IMMEDIATE) {
|
fun wifiNetwork_unknownNetworkLost_flowHasPreviousNetwork() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
getNetworkCallback()
|
getNetworkCallback()
|
||||||
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
|
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
|
||||||
assertThat((latest as WifiNetworkModel.Active).networkId).isEqualTo(NETWORK_ID)
|
assertThat((latest as WifiNetworkModel.Active).networkId).isEqualTo(NETWORK_ID)
|
||||||
|
|
||||||
// WHEN we lose an unknown network
|
// WHEN we lose an unknown network
|
||||||
val unknownNetwork = mock<Network>().apply {
|
val unknownNetwork = mock<Network>().apply { whenever(this.getNetId()).thenReturn(543) }
|
||||||
whenever(this.getNetId()).thenReturn(543)
|
|
||||||
}
|
|
||||||
getNetworkCallback().onLost(unknownNetwork)
|
getNetworkCallback().onLost(unknownNetwork)
|
||||||
|
|
||||||
// THEN we still have our previous network
|
// THEN we still have our previous network
|
||||||
@@ -827,12 +818,10 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiNetwork_notCurrentNetworkLost_flowHasCurrentNetwork() = runBlocking(IMMEDIATE) {
|
fun wifiNetwork_notCurrentNetworkLost_flowHasCurrentNetwork() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
getNetworkCallback()
|
getNetworkCallback()
|
||||||
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
|
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
|
||||||
@@ -840,12 +829,10 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
|
|
||||||
// WHEN we update to a new network...
|
// WHEN we update to a new network...
|
||||||
val newNetworkId = 89
|
val newNetworkId = 89
|
||||||
val newNetwork = mock<Network>().apply {
|
val newNetwork =
|
||||||
whenever(this.getNetId()).thenReturn(newNetworkId)
|
mock<Network>().apply { whenever(this.getNetId()).thenReturn(newNetworkId) }
|
||||||
}
|
getNetworkCallback()
|
||||||
getNetworkCallback().onCapabilitiesChanged(
|
.onCapabilitiesChanged(newNetwork, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
|
||||||
newNetwork, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO)
|
|
||||||
)
|
|
||||||
// ...and lose the old network
|
// ...and lose the old network
|
||||||
getNetworkCallback().onLost(NETWORK)
|
getNetworkCallback().onLost(NETWORK)
|
||||||
|
|
||||||
@@ -857,12 +844,10 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
|
|
||||||
/** Regression test for b/244173280. */
|
/** Regression test for b/244173280. */
|
||||||
@Test
|
@Test
|
||||||
fun wifiNetwork_multipleSubscribers_newSubscribersGetCurrentValue() = runBlocking(IMMEDIATE) {
|
fun wifiNetwork_multipleSubscribers_newSubscribersGetCurrentValue() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest1: WifiNetworkModel? = null
|
var latest1: WifiNetworkModel? = null
|
||||||
val job1 = underTest
|
val job1 = underTest.wifiNetwork.onEach { latest1 = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest1 = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
getNetworkCallback()
|
getNetworkCallback()
|
||||||
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
|
.onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(PRIMARY_WIFI_INFO))
|
||||||
@@ -874,10 +859,7 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
|
|
||||||
// WHEN we add a second subscriber after having already emitted a value
|
// WHEN we add a second subscriber after having already emitted a value
|
||||||
var latest2: WifiNetworkModel? = null
|
var latest2: WifiNetworkModel? = null
|
||||||
val job2 = underTest
|
val job2 = underTest.wifiNetwork.onEach { latest2 = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest2 = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
// THEN the second subscribe receives the already-emitted value
|
// THEN the second subscribe receives the already-emitted value
|
||||||
assertThat(latest2 is WifiNetworkModel.Active).isTrue()
|
assertThat(latest2 is WifiNetworkModel.Active).isTrue()
|
||||||
@@ -890,67 +872,57 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiActivity_callbackGivesNone_activityFlowHasNone() = runBlocking(IMMEDIATE) {
|
fun wifiActivity_callbackGivesNone_activityFlowHasNone() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: DataActivityModel? = null
|
var latest: DataActivityModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiActivity.onEach { latest = it }.launchIn(this)
|
||||||
.wifiActivity
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
getTrafficStateCallback().onStateChanged(TrafficStateCallback.DATA_ACTIVITY_NONE)
|
getTrafficStateCallback().onStateChanged(TrafficStateCallback.DATA_ACTIVITY_NONE)
|
||||||
|
|
||||||
assertThat(latest).isEqualTo(
|
assertThat(latest)
|
||||||
DataActivityModel(hasActivityIn = false, hasActivityOut = false)
|
.isEqualTo(DataActivityModel(hasActivityIn = false, hasActivityOut = false))
|
||||||
)
|
|
||||||
|
|
||||||
job.cancel()
|
job.cancel()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiActivity_callbackGivesIn_activityFlowHasIn() = runBlocking(IMMEDIATE) {
|
fun wifiActivity_callbackGivesIn_activityFlowHasIn() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: DataActivityModel? = null
|
var latest: DataActivityModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiActivity.onEach { latest = it }.launchIn(this)
|
||||||
.wifiActivity
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
getTrafficStateCallback().onStateChanged(TrafficStateCallback.DATA_ACTIVITY_IN)
|
getTrafficStateCallback().onStateChanged(TrafficStateCallback.DATA_ACTIVITY_IN)
|
||||||
|
|
||||||
assertThat(latest).isEqualTo(
|
assertThat(latest)
|
||||||
DataActivityModel(hasActivityIn = true, hasActivityOut = false)
|
.isEqualTo(DataActivityModel(hasActivityIn = true, hasActivityOut = false))
|
||||||
)
|
|
||||||
|
|
||||||
job.cancel()
|
job.cancel()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiActivity_callbackGivesOut_activityFlowHasOut() = runBlocking(IMMEDIATE) {
|
fun wifiActivity_callbackGivesOut_activityFlowHasOut() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: DataActivityModel? = null
|
var latest: DataActivityModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiActivity.onEach { latest = it }.launchIn(this)
|
||||||
.wifiActivity
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
getTrafficStateCallback().onStateChanged(TrafficStateCallback.DATA_ACTIVITY_OUT)
|
getTrafficStateCallback().onStateChanged(TrafficStateCallback.DATA_ACTIVITY_OUT)
|
||||||
|
|
||||||
assertThat(latest).isEqualTo(
|
assertThat(latest)
|
||||||
DataActivityModel(hasActivityIn = false, hasActivityOut = true)
|
.isEqualTo(DataActivityModel(hasActivityIn = false, hasActivityOut = true))
|
||||||
)
|
|
||||||
|
|
||||||
job.cancel()
|
job.cancel()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiActivity_callbackGivesInout_activityFlowHasInAndOut() = runBlocking(IMMEDIATE) {
|
fun wifiActivity_callbackGivesInout_activityFlowHasInAndOut() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: DataActivityModel? = null
|
var latest: DataActivityModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiActivity.onEach { latest = it }.launchIn(this)
|
||||||
.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()
|
||||||
}
|
}
|
||||||
@@ -998,11 +970,10 @@ class WifiRepositoryImplTest : SysuiTestCase() {
|
|||||||
|
|
||||||
private companion object {
|
private companion object {
|
||||||
const val NETWORK_ID = 45
|
const val NETWORK_ID = 45
|
||||||
val NETWORK = mock<Network>().apply {
|
val NETWORK = mock<Network>().apply { whenever(this.getNetId()).thenReturn(NETWORK_ID) }
|
||||||
whenever(this.getNetId()).thenReturn(NETWORK_ID)
|
|
||||||
}
|
|
||||||
const val SSID = "AB"
|
const val SSID = "AB"
|
||||||
val PRIMARY_WIFI_INFO: WifiInfo = mock<WifiInfo>().apply {
|
val PRIMARY_WIFI_INFO: WifiInfo =
|
||||||
|
mock<WifiInfo>().apply {
|
||||||
whenever(this.ssid).thenReturn(SSID)
|
whenever(this.ssid).thenReturn(SSID)
|
||||||
whenever(this.isPrimary).thenReturn(true)
|
whenever(this.isPrimary).thenReturn(true)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.ConnectivitySlot
|
||||||
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
|
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.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.data.repository.FakeWifiRepository
|
||||||
|
import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
@@ -57,10 +57,7 @@ class WifiInteractorImplTest : SysuiTestCase() {
|
|||||||
wifiRepository.setWifiNetwork(WifiNetworkModel.Unavailable)
|
wifiRepository.setWifiNetwork(WifiNetworkModel.Unavailable)
|
||||||
|
|
||||||
var latest: String? = "default"
|
var latest: String? = "default"
|
||||||
val job = underTest
|
val job = underTest.ssid.onEach { latest = it }.launchIn(this)
|
||||||
.ssid
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
assertThat(latest).isNull()
|
assertThat(latest).isNull()
|
||||||
|
|
||||||
@@ -68,14 +65,12 @@ class WifiInteractorImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun ssid_inactiveNetwork_outputsNull() = runBlocking(IMMEDIATE) {
|
fun ssid_inactiveNetwork_outputsNull() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
wifiRepository.setWifiNetwork(WifiNetworkModel.Inactive)
|
wifiRepository.setWifiNetwork(WifiNetworkModel.Inactive)
|
||||||
|
|
||||||
var latest: String? = "default"
|
var latest: String? = "default"
|
||||||
val job = underTest
|
val job = underTest.ssid.onEach { latest = it }.launchIn(this)
|
||||||
.ssid
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
assertThat(latest).isNull()
|
assertThat(latest).isNull()
|
||||||
|
|
||||||
@@ -83,16 +78,14 @@ class WifiInteractorImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun ssid_carrierMergedNetwork_outputsNull() = runBlocking(IMMEDIATE) {
|
fun ssid_carrierMergedNetwork_outputsNull() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
wifiRepository.setWifiNetwork(
|
wifiRepository.setWifiNetwork(
|
||||||
WifiNetworkModel.CarrierMerged(networkId = 1, subscriptionId = 2, level = 1)
|
WifiNetworkModel.CarrierMerged(networkId = 1, subscriptionId = 2, level = 1)
|
||||||
)
|
)
|
||||||
|
|
||||||
var latest: String? = "default"
|
var latest: String? = "default"
|
||||||
val job = underTest
|
val job = underTest.ssid.onEach { latest = it }.launchIn(this)
|
||||||
.ssid
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
assertThat(latest).isNull()
|
assertThat(latest).isNull()
|
||||||
|
|
||||||
@@ -100,19 +93,19 @@ class WifiInteractorImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun ssid_isPasspointAccessPoint_outputsPasspointName() = runBlocking(IMMEDIATE) {
|
fun ssid_isPasspointAccessPoint_outputsPasspointName() =
|
||||||
wifiRepository.setWifiNetwork(WifiNetworkModel.Active(
|
runBlocking(IMMEDIATE) {
|
||||||
|
wifiRepository.setWifiNetwork(
|
||||||
|
WifiNetworkModel.Active(
|
||||||
networkId = 1,
|
networkId = 1,
|
||||||
level = 1,
|
level = 1,
|
||||||
isPasspointAccessPoint = true,
|
isPasspointAccessPoint = true,
|
||||||
passpointProviderFriendlyName = "friendly",
|
passpointProviderFriendlyName = "friendly",
|
||||||
))
|
)
|
||||||
|
)
|
||||||
|
|
||||||
var latest: String? = null
|
var latest: String? = null
|
||||||
val job = underTest
|
val job = underTest.ssid.onEach { latest = it }.launchIn(this)
|
||||||
.ssid
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
assertThat(latest).isEqualTo("friendly")
|
assertThat(latest).isEqualTo("friendly")
|
||||||
|
|
||||||
@@ -120,19 +113,19 @@ class WifiInteractorImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun ssid_isOnlineSignUpForPasspoint_outputsPasspointName() = runBlocking(IMMEDIATE) {
|
fun ssid_isOnlineSignUpForPasspoint_outputsPasspointName() =
|
||||||
wifiRepository.setWifiNetwork(WifiNetworkModel.Active(
|
runBlocking(IMMEDIATE) {
|
||||||
|
wifiRepository.setWifiNetwork(
|
||||||
|
WifiNetworkModel.Active(
|
||||||
networkId = 1,
|
networkId = 1,
|
||||||
level = 1,
|
level = 1,
|
||||||
isOnlineSignUpForPasspointAccessPoint = true,
|
isOnlineSignUpForPasspointAccessPoint = true,
|
||||||
passpointProviderFriendlyName = "friendly",
|
passpointProviderFriendlyName = "friendly",
|
||||||
))
|
)
|
||||||
|
)
|
||||||
|
|
||||||
var latest: String? = null
|
var latest: String? = null
|
||||||
val job = underTest
|
val job = underTest.ssid.onEach { latest = it }.launchIn(this)
|
||||||
.ssid
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
assertThat(latest).isEqualTo("friendly")
|
assertThat(latest).isEqualTo("friendly")
|
||||||
|
|
||||||
@@ -140,18 +133,18 @@ class WifiInteractorImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun ssid_unknownSsid_outputsNull() = runBlocking(IMMEDIATE) {
|
fun ssid_unknownSsid_outputsNull() =
|
||||||
wifiRepository.setWifiNetwork(WifiNetworkModel.Active(
|
runBlocking(IMMEDIATE) {
|
||||||
|
wifiRepository.setWifiNetwork(
|
||||||
|
WifiNetworkModel.Active(
|
||||||
networkId = 1,
|
networkId = 1,
|
||||||
level = 1,
|
level = 1,
|
||||||
ssid = WifiManager.UNKNOWN_SSID,
|
ssid = WifiManager.UNKNOWN_SSID,
|
||||||
))
|
)
|
||||||
|
)
|
||||||
|
|
||||||
var latest: String? = "default"
|
var latest: String? = "default"
|
||||||
val job = underTest
|
val job = underTest.ssid.onEach { latest = it }.launchIn(this)
|
||||||
.ssid
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
assertThat(latest).isNull()
|
assertThat(latest).isNull()
|
||||||
|
|
||||||
@@ -159,18 +152,18 @@ class WifiInteractorImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun ssid_validSsid_outputsSsid() = runBlocking(IMMEDIATE) {
|
fun ssid_validSsid_outputsSsid() =
|
||||||
wifiRepository.setWifiNetwork(WifiNetworkModel.Active(
|
runBlocking(IMMEDIATE) {
|
||||||
|
wifiRepository.setWifiNetwork(
|
||||||
|
WifiNetworkModel.Active(
|
||||||
networkId = 1,
|
networkId = 1,
|
||||||
level = 1,
|
level = 1,
|
||||||
ssid = "MyAwesomeWifiNetwork",
|
ssid = "MyAwesomeWifiNetwork",
|
||||||
))
|
)
|
||||||
|
)
|
||||||
|
|
||||||
var latest: String? = null
|
var latest: String? = null
|
||||||
val job = underTest
|
val job = underTest.ssid.onEach { latest = it }.launchIn(this)
|
||||||
.ssid
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
assertThat(latest).isEqualTo("MyAwesomeWifiNetwork")
|
assertThat(latest).isEqualTo("MyAwesomeWifiNetwork")
|
||||||
|
|
||||||
@@ -178,12 +171,10 @@ class WifiInteractorImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun isEnabled_matchesRepoIsEnabled() = runBlocking(IMMEDIATE) {
|
fun isEnabled_matchesRepoIsEnabled() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: Boolean? = null
|
var latest: Boolean? = null
|
||||||
val job = underTest
|
val job = underTest.isEnabled.onEach { latest = it }.launchIn(this)
|
||||||
.isEnabled
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
wifiRepository.setIsWifiEnabled(true)
|
wifiRepository.setIsWifiEnabled(true)
|
||||||
yield()
|
yield()
|
||||||
@@ -201,12 +192,10 @@ class WifiInteractorImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun isDefault_matchesRepoIsDefault() = runBlocking(IMMEDIATE) {
|
fun isDefault_matchesRepoIsDefault() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: Boolean? = null
|
var latest: Boolean? = null
|
||||||
val job = underTest
|
val job = underTest.isDefault.onEach { latest = it }.launchIn(this)
|
||||||
.isDefault
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
wifiRepository.setIsWifiDefault(true)
|
wifiRepository.setIsWifiDefault(true)
|
||||||
yield()
|
yield()
|
||||||
@@ -224,8 +213,10 @@ class WifiInteractorImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiNetwork_matchesRepoWifiNetwork() = runBlocking(IMMEDIATE) {
|
fun wifiNetwork_matchesRepoWifiNetwork() =
|
||||||
val wifiNetwork = WifiNetworkModel.Active(
|
runBlocking(IMMEDIATE) {
|
||||||
|
val wifiNetwork =
|
||||||
|
WifiNetworkModel.Active(
|
||||||
networkId = 45,
|
networkId = 45,
|
||||||
isValidated = true,
|
isValidated = true,
|
||||||
level = 3,
|
level = 3,
|
||||||
@@ -235,10 +226,7 @@ class WifiInteractorImplTest : SysuiTestCase() {
|
|||||||
wifiRepository.setWifiNetwork(wifiNetwork)
|
wifiRepository.setWifiNetwork(wifiNetwork)
|
||||||
|
|
||||||
var latest: WifiNetworkModel? = null
|
var latest: WifiNetworkModel? = null
|
||||||
val job = underTest
|
val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this)
|
||||||
.wifiNetwork
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
assertThat(latest).isEqualTo(wifiNetwork)
|
assertThat(latest).isEqualTo(wifiNetwork)
|
||||||
|
|
||||||
@@ -246,12 +234,10 @@ class WifiInteractorImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activity_matchesRepoWifiActivity() = runBlocking(IMMEDIATE) {
|
fun activity_matchesRepoWifiActivity() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: DataActivityModel? = null
|
var latest: DataActivityModel? = null
|
||||||
val job = underTest
|
val job = underTest.activity.onEach { latest = it }.launchIn(this)
|
||||||
.activity
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val activity1 = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
|
val activity1 = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
|
||||||
wifiRepository.setWifiActivity(activity1)
|
wifiRepository.setWifiActivity(activity1)
|
||||||
@@ -272,14 +258,12 @@ class WifiInteractorImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun isForceHidden_repoHasWifiHidden_outputsTrue() = runBlocking(IMMEDIATE) {
|
fun isForceHidden_repoHasWifiHidden_outputsTrue() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
connectivityRepository.setForceHiddenIcons(setOf(ConnectivitySlot.WIFI))
|
connectivityRepository.setForceHiddenIcons(setOf(ConnectivitySlot.WIFI))
|
||||||
|
|
||||||
var latest: Boolean? = null
|
var latest: Boolean? = null
|
||||||
val job = underTest
|
val job = underTest.isForceHidden.onEach { latest = it }.launchIn(this)
|
||||||
.isForceHidden
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
assertThat(latest).isTrue()
|
assertThat(latest).isTrue()
|
||||||
|
|
||||||
@@ -287,14 +271,12 @@ class WifiInteractorImplTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun isForceHidden_repoDoesNotHaveWifiHidden_outputsFalse() = runBlocking(IMMEDIATE) {
|
fun isForceHidden_repoDoesNotHaveWifiHidden_outputsFalse() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
connectivityRepository.setForceHiddenIcons(setOf())
|
connectivityRepository.setForceHiddenIcons(setOf())
|
||||||
|
|
||||||
var latest: Boolean? = null
|
var latest: Boolean? = null
|
||||||
val job = underTest
|
val job = underTest.isForceHidden.onEach { latest = it }.launchIn(this)
|
||||||
.isForceHidden
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
assertThat(latest).isFalse()
|
assertThat(latest).isFalse()
|
||||||
|
|
||||||
|
|||||||
@@ -14,14 +14,14 @@
|
|||||||
* limitations under the License.
|
* 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.INVALID_SUBSCRIPTION_ID
|
||||||
import androidx.test.filters.SmallTest
|
import androidx.test.filters.SmallTest
|
||||||
import com.android.systemui.SysuiTestCase
|
import com.android.systemui.SysuiTestCase
|
||||||
import com.android.systemui.log.table.TableRowLogger
|
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.shared.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.Companion.MIN_VALID_LEVEL
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
@@ -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.ConnectivityConstants
|
||||||
import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger
|
import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger
|
||||||
import com.android.systemui.statusbar.pipeline.shared.data.repository.FakeConnectivityRepository
|
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.data.repository.FakeWifiRepository
|
||||||
import com.android.systemui.statusbar.pipeline.wifi.domain.interactor.WifiInteractor
|
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.domain.interactor.WifiInteractorImpl
|
||||||
import com.android.systemui.statusbar.pipeline.wifi.shared.WifiConstants
|
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.LocationBasedWifiViewModel
|
||||||
import com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel.WifiViewModel
|
import com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel.WifiViewModel
|
||||||
import com.android.systemui.util.mockito.whenever
|
import com.android.systemui.util.mockito.whenever
|
||||||
@@ -62,16 +62,11 @@ class ModernStatusBarWifiViewTest : SysuiTestCase() {
|
|||||||
|
|
||||||
private lateinit var testableLooper: TestableLooper
|
private lateinit var testableLooper: TestableLooper
|
||||||
|
|
||||||
@Mock
|
@Mock private lateinit var statusBarPipelineFlags: StatusBarPipelineFlags
|
||||||
private lateinit var statusBarPipelineFlags: StatusBarPipelineFlags
|
@Mock private lateinit var logger: ConnectivityPipelineLogger
|
||||||
@Mock
|
@Mock private lateinit var tableLogBuffer: TableLogBuffer
|
||||||
private lateinit var logger: ConnectivityPipelineLogger
|
@Mock private lateinit var connectivityConstants: ConnectivityConstants
|
||||||
@Mock
|
@Mock private lateinit var wifiConstants: WifiConstants
|
||||||
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 airplaneModeRepository: FakeAirplaneModeRepository
|
||||||
private lateinit var connectivityRepository: FakeConnectivityRepository
|
private lateinit var connectivityRepository: FakeConnectivityRepository
|
||||||
private lateinit var wifiRepository: FakeWifiRepository
|
private lateinit var wifiRepository: FakeWifiRepository
|
||||||
@@ -91,7 +86,8 @@ class ModernStatusBarWifiViewTest : SysuiTestCase() {
|
|||||||
wifiRepository.setIsWifiEnabled(true)
|
wifiRepository.setIsWifiEnabled(true)
|
||||||
interactor = WifiInteractorImpl(connectivityRepository, wifiRepository)
|
interactor = WifiInteractorImpl(connectivityRepository, wifiRepository)
|
||||||
scope = CoroutineScope(Dispatchers.Unconfined)
|
scope = CoroutineScope(Dispatchers.Unconfined)
|
||||||
airplaneModeViewModel = AirplaneModeViewModelImpl(
|
airplaneModeViewModel =
|
||||||
|
AirplaneModeViewModelImpl(
|
||||||
AirplaneModeInteractor(
|
AirplaneModeInteractor(
|
||||||
airplaneModeRepository,
|
airplaneModeRepository,
|
||||||
connectivityRepository,
|
connectivityRepository,
|
||||||
@@ -99,7 +95,8 @@ class ModernStatusBarWifiViewTest : SysuiTestCase() {
|
|||||||
logger,
|
logger,
|
||||||
scope,
|
scope,
|
||||||
)
|
)
|
||||||
viewModel = WifiViewModel(
|
viewModel =
|
||||||
|
WifiViewModel(
|
||||||
airplaneModeViewModel,
|
airplaneModeViewModel,
|
||||||
connectivityConstants,
|
connectivityConstants,
|
||||||
context,
|
context,
|
||||||
@@ -109,7 +106,8 @@ class ModernStatusBarWifiViewTest : SysuiTestCase() {
|
|||||||
scope,
|
scope,
|
||||||
statusBarPipelineFlags,
|
statusBarPipelineFlags,
|
||||||
wifiConstants,
|
wifiConstants,
|
||||||
).home
|
)
|
||||||
|
.home
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note: The following tests are more like integration tests, since they stand up a full
|
// Note: The following tests are more like integration tests, since they stand up a full
|
||||||
|
|||||||
@@ -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.ConnectivityPipelineLogger
|
||||||
import com.android.systemui.statusbar.pipeline.shared.data.model.ConnectivitySlot
|
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.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.data.repository.FakeWifiRepository
|
||||||
import com.android.systemui.statusbar.pipeline.wifi.domain.interactor.WifiInteractor
|
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.domain.interactor.WifiInteractorImpl
|
||||||
import com.android.systemui.statusbar.pipeline.wifi.shared.WifiConstants
|
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.model.WifiIcon
|
||||||
import com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel.WifiViewModel.Companion.NO_INTERNET
|
import com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel.WifiViewModel.Companion.NO_INTERNET
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
|
|||||||
@@ -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.ConnectivitySlot
|
||||||
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
|
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.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.data.repository.FakeWifiRepository
|
||||||
import com.android.systemui.statusbar.pipeline.wifi.domain.interactor.WifiInteractor
|
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.domain.interactor.WifiInteractorImpl
|
||||||
import com.android.systemui.statusbar.pipeline.wifi.shared.WifiConstants
|
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.model.WifiIcon
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
@@ -79,7 +79,8 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
wifiRepository.setIsWifiEnabled(true)
|
wifiRepository.setIsWifiEnabled(true)
|
||||||
interactor = WifiInteractorImpl(connectivityRepository, wifiRepository)
|
interactor = WifiInteractorImpl(connectivityRepository, wifiRepository)
|
||||||
scope = CoroutineScope(IMMEDIATE)
|
scope = CoroutineScope(IMMEDIATE)
|
||||||
airplaneModeViewModel = AirplaneModeViewModelImpl(
|
airplaneModeViewModel =
|
||||||
|
AirplaneModeViewModelImpl(
|
||||||
AirplaneModeInteractor(
|
AirplaneModeInteractor(
|
||||||
airplaneModeRepository,
|
airplaneModeRepository,
|
||||||
connectivityRepository,
|
connectivityRepository,
|
||||||
@@ -104,34 +105,20 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
// instances. There are also some tests that verify all 3 instances received the same data.
|
// instances. There are also some tests that verify all 3 instances received the same data.
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiIcon_allLocationViewModelsReceiveSameData() = runBlocking(IMMEDIATE) {
|
fun wifiIcon_allLocationViewModelsReceiveSameData() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latestHome: WifiIcon? = null
|
var latestHome: WifiIcon? = null
|
||||||
val jobHome = underTest
|
val jobHome = underTest.home.wifiIcon.onEach { latestHome = it }.launchIn(this)
|
||||||
.home
|
|
||||||
.wifiIcon
|
|
||||||
.onEach { latestHome = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
var latestKeyguard: WifiIcon? = null
|
var latestKeyguard: WifiIcon? = null
|
||||||
val jobKeyguard = underTest
|
val jobKeyguard =
|
||||||
.keyguard
|
underTest.keyguard.wifiIcon.onEach { latestKeyguard = it }.launchIn(this)
|
||||||
.wifiIcon
|
|
||||||
.onEach { latestKeyguard = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
var latestQs: WifiIcon? = null
|
var latestQs: WifiIcon? = null
|
||||||
val jobQs = underTest
|
val jobQs = underTest.qs.wifiIcon.onEach { latestQs = it }.launchIn(this)
|
||||||
.qs
|
|
||||||
.wifiIcon
|
|
||||||
.onEach { latestQs = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
wifiRepository.setWifiNetwork(
|
wifiRepository.setWifiNetwork(
|
||||||
WifiNetworkModel.Active(
|
WifiNetworkModel.Active(NETWORK_ID, isValidated = true, level = 1)
|
||||||
NETWORK_ID,
|
|
||||||
isValidated = true,
|
|
||||||
level = 1
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
yield()
|
yield()
|
||||||
|
|
||||||
@@ -145,29 +132,23 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activity_showActivityConfigFalse_outputsFalse() = runBlocking(IMMEDIATE) {
|
fun activity_showActivityConfigFalse_outputsFalse() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(false)
|
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(false)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
var activityIn: Boolean? = null
|
var activityIn: Boolean? = null
|
||||||
val activityInJob = underTest
|
val activityInJob =
|
||||||
.home
|
underTest.home.isActivityInViewVisible.onEach { activityIn = it }.launchIn(this)
|
||||||
.isActivityInViewVisible
|
|
||||||
.onEach { activityIn = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
var activityOut: Boolean? = null
|
var activityOut: Boolean? = null
|
||||||
val activityOutJob = underTest
|
val activityOutJob =
|
||||||
.home
|
underTest.home.isActivityOutViewVisible.onEach { activityOut = it }.launchIn(this)
|
||||||
.isActivityOutViewVisible
|
|
||||||
.onEach { activityOut = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
var activityContainer: Boolean? = null
|
var activityContainer: Boolean? = null
|
||||||
val activityContainerJob = underTest
|
val activityContainerJob =
|
||||||
.home
|
underTest.home.isActivityContainerVisible
|
||||||
.isActivityContainerVisible
|
|
||||||
.onEach { activityContainer = it }
|
.onEach { activityContainer = it }
|
||||||
.launchIn(this)
|
.launchIn(this)
|
||||||
|
|
||||||
@@ -182,29 +163,23 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activity_showActivityConfigFalse_noUpdatesReceived() = runBlocking(IMMEDIATE) {
|
fun activity_showActivityConfigFalse_noUpdatesReceived() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(false)
|
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(false)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
var activityIn: Boolean? = null
|
var activityIn: Boolean? = null
|
||||||
val activityInJob = underTest
|
val activityInJob =
|
||||||
.home
|
underTest.home.isActivityInViewVisible.onEach { activityIn = it }.launchIn(this)
|
||||||
.isActivityInViewVisible
|
|
||||||
.onEach { activityIn = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
var activityOut: Boolean? = null
|
var activityOut: Boolean? = null
|
||||||
val activityOutJob = underTest
|
val activityOutJob =
|
||||||
.home
|
underTest.home.isActivityOutViewVisible.onEach { activityOut = it }.launchIn(this)
|
||||||
.isActivityOutViewVisible
|
|
||||||
.onEach { activityOut = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
var activityContainer: Boolean? = null
|
var activityContainer: Boolean? = null
|
||||||
val activityContainerJob = underTest
|
val activityContainerJob =
|
||||||
.home
|
underTest.home.isActivityContainerVisible
|
||||||
.isActivityContainerVisible
|
|
||||||
.onEach { activityContainer = it }
|
.onEach { activityContainer = it }
|
||||||
.launchIn(this)
|
.launchIn(this)
|
||||||
|
|
||||||
@@ -224,30 +199,26 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activity_nullSsid_outputsFalse() = runBlocking(IMMEDIATE) {
|
fun activity_nullSsid_outputsFalse() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
|
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
|
|
||||||
wifiRepository.setWifiNetwork(WifiNetworkModel.Active(NETWORK_ID, ssid = null, level = 1))
|
wifiRepository.setWifiNetwork(
|
||||||
|
WifiNetworkModel.Active(NETWORK_ID, ssid = null, level = 1)
|
||||||
|
)
|
||||||
|
|
||||||
var activityIn: Boolean? = null
|
var activityIn: Boolean? = null
|
||||||
val activityInJob = underTest
|
val activityInJob =
|
||||||
.home
|
underTest.home.isActivityInViewVisible.onEach { activityIn = it }.launchIn(this)
|
||||||
.isActivityInViewVisible
|
|
||||||
.onEach { activityIn = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
var activityOut: Boolean? = null
|
var activityOut: Boolean? = null
|
||||||
val activityOutJob = underTest
|
val activityOutJob =
|
||||||
.home
|
underTest.home.isActivityOutViewVisible.onEach { activityOut = it }.launchIn(this)
|
||||||
.isActivityOutViewVisible
|
|
||||||
.onEach { activityOut = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
var activityContainer: Boolean? = null
|
var activityContainer: Boolean? = null
|
||||||
val activityContainerJob = underTest
|
val activityContainerJob =
|
||||||
.home
|
underTest.home.isActivityContainerVisible
|
||||||
.isActivityContainerVisible
|
|
||||||
.onEach { activityContainer = it }
|
.onEach { activityContainer = it }
|
||||||
.launchIn(this)
|
.launchIn(this)
|
||||||
|
|
||||||
@@ -267,31 +238,24 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activity_allLocationViewModelsReceiveSameData() = runBlocking(IMMEDIATE) {
|
fun activity_allLocationViewModelsReceiveSameData() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
|
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
var latestHome: Boolean? = null
|
var latestHome: Boolean? = null
|
||||||
val jobHome = underTest
|
val jobHome =
|
||||||
.home
|
underTest.home.isActivityInViewVisible.onEach { latestHome = it }.launchIn(this)
|
||||||
.isActivityInViewVisible
|
|
||||||
.onEach { latestHome = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
var latestKeyguard: Boolean? = null
|
var latestKeyguard: Boolean? = null
|
||||||
val jobKeyguard = underTest
|
val jobKeyguard =
|
||||||
.keyguard
|
underTest.keyguard.isActivityInViewVisible
|
||||||
.isActivityInViewVisible
|
|
||||||
.onEach { latestKeyguard = it }
|
.onEach { latestKeyguard = it }
|
||||||
.launchIn(this)
|
.launchIn(this)
|
||||||
|
|
||||||
var latestQs: Boolean? = null
|
var latestQs: Boolean? = null
|
||||||
val jobQs = underTest
|
val jobQs = underTest.qs.isActivityInViewVisible.onEach { latestQs = it }.launchIn(this)
|
||||||
.qs
|
|
||||||
.isActivityInViewVisible
|
|
||||||
.onEach { latestQs = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
|
val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
|
||||||
wifiRepository.setWifiActivity(activity)
|
wifiRepository.setWifiActivity(activity)
|
||||||
@@ -307,17 +271,14 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activityIn_hasActivityInTrue_outputsTrue() = runBlocking(IMMEDIATE) {
|
fun activityIn_hasActivityInTrue_outputsTrue() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
|
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
var latest: Boolean? = null
|
var latest: Boolean? = null
|
||||||
val job = underTest
|
val job = underTest.home.isActivityInViewVisible.onEach { latest = it }.launchIn(this)
|
||||||
.home
|
|
||||||
.isActivityInViewVisible
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = false)
|
val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = false)
|
||||||
wifiRepository.setWifiActivity(activity)
|
wifiRepository.setWifiActivity(activity)
|
||||||
@@ -329,17 +290,14 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activityIn_hasActivityInFalse_outputsFalse() = runBlocking(IMMEDIATE) {
|
fun activityIn_hasActivityInFalse_outputsFalse() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
|
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
var latest: Boolean? = null
|
var latest: Boolean? = null
|
||||||
val job = underTest
|
val job = underTest.home.isActivityInViewVisible.onEach { latest = it }.launchIn(this)
|
||||||
.home
|
|
||||||
.isActivityInViewVisible
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = true)
|
val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = true)
|
||||||
wifiRepository.setWifiActivity(activity)
|
wifiRepository.setWifiActivity(activity)
|
||||||
@@ -351,17 +309,14 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activityOut_hasActivityOutTrue_outputsTrue() = runBlocking(IMMEDIATE) {
|
fun activityOut_hasActivityOutTrue_outputsTrue() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
|
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
var latest: Boolean? = null
|
var latest: Boolean? = null
|
||||||
val job = underTest
|
val job = underTest.home.isActivityOutViewVisible.onEach { latest = it }.launchIn(this)
|
||||||
.home
|
|
||||||
.isActivityOutViewVisible
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = true)
|
val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = true)
|
||||||
wifiRepository.setWifiActivity(activity)
|
wifiRepository.setWifiActivity(activity)
|
||||||
@@ -373,17 +328,14 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activityOut_hasActivityOutFalse_outputsFalse() = runBlocking(IMMEDIATE) {
|
fun activityOut_hasActivityOutFalse_outputsFalse() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
|
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
var latest: Boolean? = null
|
var latest: Boolean? = null
|
||||||
val job = underTest
|
val job = underTest.home.isActivityOutViewVisible.onEach { latest = it }.launchIn(this)
|
||||||
.home
|
|
||||||
.isActivityOutViewVisible
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = false)
|
val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = false)
|
||||||
wifiRepository.setWifiActivity(activity)
|
wifiRepository.setWifiActivity(activity)
|
||||||
@@ -395,17 +347,15 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activityContainer_hasActivityInTrue_outputsTrue() = runBlocking(IMMEDIATE) {
|
fun activityContainer_hasActivityInTrue_outputsTrue() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
|
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
var latest: Boolean? = null
|
var latest: Boolean? = null
|
||||||
val job = underTest
|
val job =
|
||||||
.home
|
underTest.home.isActivityContainerVisible.onEach { latest = it }.launchIn(this)
|
||||||
.isActivityContainerVisible
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = false)
|
val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = false)
|
||||||
wifiRepository.setWifiActivity(activity)
|
wifiRepository.setWifiActivity(activity)
|
||||||
@@ -417,17 +367,15 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activityContainer_hasActivityOutTrue_outputsTrue() = runBlocking(IMMEDIATE) {
|
fun activityContainer_hasActivityOutTrue_outputsTrue() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
|
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
var latest: Boolean? = null
|
var latest: Boolean? = null
|
||||||
val job = underTest
|
val job =
|
||||||
.home
|
underTest.home.isActivityContainerVisible.onEach { latest = it }.launchIn(this)
|
||||||
.isActivityContainerVisible
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = true)
|
val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = true)
|
||||||
wifiRepository.setWifiActivity(activity)
|
wifiRepository.setWifiActivity(activity)
|
||||||
@@ -439,17 +387,15 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activityContainer_inAndOutTrue_outputsTrue() = runBlocking(IMMEDIATE) {
|
fun activityContainer_inAndOutTrue_outputsTrue() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
|
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
var latest: Boolean? = null
|
var latest: Boolean? = null
|
||||||
val job = underTest
|
val job =
|
||||||
.home
|
underTest.home.isActivityContainerVisible.onEach { latest = it }.launchIn(this)
|
||||||
.isActivityContainerVisible
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
|
val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
|
||||||
wifiRepository.setWifiActivity(activity)
|
wifiRepository.setWifiActivity(activity)
|
||||||
@@ -461,17 +407,15 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activityContainer_inAndOutFalse_outputsFalse() = runBlocking(IMMEDIATE) {
|
fun activityContainer_inAndOutFalse_outputsFalse() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
|
whenever(connectivityConstants.shouldShowActivityConfig).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
var latest: Boolean? = null
|
var latest: Boolean? = null
|
||||||
val job = underTest
|
val job =
|
||||||
.home
|
underTest.home.isActivityContainerVisible.onEach { latest = it }.launchIn(this)
|
||||||
.isActivityContainerVisible
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = false)
|
val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = false)
|
||||||
wifiRepository.setWifiActivity(activity)
|
wifiRepository.setWifiActivity(activity)
|
||||||
@@ -483,13 +427,10 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun airplaneSpacer_notAirplaneMode_outputsFalse() = runBlocking(IMMEDIATE) {
|
fun airplaneSpacer_notAirplaneMode_outputsFalse() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: Boolean? = null
|
var latest: Boolean? = null
|
||||||
val job = underTest
|
val job = underTest.qs.isAirplaneSpacerVisible.onEach { latest = it }.launchIn(this)
|
||||||
.qs
|
|
||||||
.isAirplaneSpacerVisible
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
airplaneModeRepository.setIsAirplaneMode(false)
|
airplaneModeRepository.setIsAirplaneMode(false)
|
||||||
yield()
|
yield()
|
||||||
@@ -500,13 +441,10 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun airplaneSpacer_airplaneForceHidden_outputsFalse() = runBlocking(IMMEDIATE) {
|
fun airplaneSpacer_airplaneForceHidden_outputsFalse() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: Boolean? = null
|
var latest: Boolean? = null
|
||||||
val job = underTest
|
val job = underTest.qs.isAirplaneSpacerVisible.onEach { latest = it }.launchIn(this)
|
||||||
.qs
|
|
||||||
.isAirplaneSpacerVisible
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
airplaneModeRepository.setIsAirplaneMode(true)
|
airplaneModeRepository.setIsAirplaneMode(true)
|
||||||
connectivityRepository.setForceHiddenIcons(setOf(ConnectivitySlot.AIRPLANE))
|
connectivityRepository.setForceHiddenIcons(setOf(ConnectivitySlot.AIRPLANE))
|
||||||
@@ -518,13 +456,10 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun airplaneSpacer_airplaneIconVisible_outputsTrue() = runBlocking(IMMEDIATE) {
|
fun airplaneSpacer_airplaneIconVisible_outputsTrue() =
|
||||||
|
runBlocking(IMMEDIATE) {
|
||||||
var latest: Boolean? = null
|
var latest: Boolean? = null
|
||||||
val job = underTest
|
val job = underTest.qs.isAirplaneSpacerVisible.onEach { latest = it }.launchIn(this)
|
||||||
.qs
|
|
||||||
.isAirplaneSpacerVisible
|
|
||||||
.onEach { latest = it }
|
|
||||||
.launchIn(this)
|
|
||||||
|
|
||||||
airplaneModeRepository.setIsAirplaneMode(true)
|
airplaneModeRepository.setIsAirplaneMode(true)
|
||||||
yield()
|
yield()
|
||||||
@@ -538,7 +473,8 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
// [WifiViewModel] creates its flows as soon as it's instantiated, and some of those flow
|
// [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
|
// 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.
|
// allows tests to create the view model only after those configs are correctly set up.
|
||||||
underTest = WifiViewModel(
|
underTest =
|
||||||
|
WifiViewModel(
|
||||||
airplaneModeViewModel,
|
airplaneModeViewModel,
|
||||||
connectivityConstants,
|
connectivityConstants,
|
||||||
context,
|
context,
|
||||||
|
|||||||
Reference in New Issue
Block a user