Merge "[SB Refactor] Always show the wifi icon if the device has no data capabilities." into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
ff008f0747
@@ -0,0 +1,46 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2022 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.android.systemui.statusbar.pipeline.shared
|
||||||
|
|
||||||
|
import android.telephony.TelephonyManager
|
||||||
|
import com.android.systemui.Dumpable
|
||||||
|
import com.android.systemui.dagger.SysUISingleton
|
||||||
|
import com.android.systemui.dump.DumpManager
|
||||||
|
import com.android.systemui.statusbar.pipeline.shared.ConnectivityPipelineLogger.Companion.SB_LOGGING_TAG
|
||||||
|
import java.io.PrintWriter
|
||||||
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An object storing constants that are used for calculating connectivity icons.
|
||||||
|
*
|
||||||
|
* Stored in a class for logging purposes.
|
||||||
|
*/
|
||||||
|
@SysUISingleton
|
||||||
|
class ConnectivityConstants
|
||||||
|
@Inject
|
||||||
|
constructor(dumpManager: DumpManager, telephonyManager: TelephonyManager) : Dumpable {
|
||||||
|
init {
|
||||||
|
dumpManager.registerDumpable("$SB_LOGGING_TAG:ConnectivityConstants", this)
|
||||||
|
}
|
||||||
|
|
||||||
|
/** True if this device has the capability for data connections and false otherwise. */
|
||||||
|
val hasDataCapabilities = telephonyManager.isDataCapable
|
||||||
|
|
||||||
|
override fun dump(pw: PrintWriter, args: Array<out String>) {
|
||||||
|
pw.apply { println("hasDataCapabilities=$hasDataCapabilities") }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -31,6 +31,7 @@ import com.android.systemui.statusbar.connectivity.WifiIcons.WIFI_FULL_ICONS
|
|||||||
import com.android.systemui.statusbar.connectivity.WifiIcons.WIFI_NO_INTERNET_ICONS
|
import com.android.systemui.statusbar.connectivity.WifiIcons.WIFI_NO_INTERNET_ICONS
|
||||||
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.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.wifi.data.model.WifiNetworkModel
|
import com.android.systemui.statusbar.pipeline.wifi.data.model.WifiNetworkModel
|
||||||
@@ -65,12 +66,13 @@ import kotlinx.coroutines.flow.stateIn
|
|||||||
class WifiViewModel
|
class WifiViewModel
|
||||||
@Inject
|
@Inject
|
||||||
constructor(
|
constructor(
|
||||||
constants: WifiConstants,
|
connectivityConstants: ConnectivityConstants,
|
||||||
private val context: Context,
|
private val context: Context,
|
||||||
logger: ConnectivityPipelineLogger,
|
logger: ConnectivityPipelineLogger,
|
||||||
interactor: WifiInteractor,
|
interactor: WifiInteractor,
|
||||||
@Application private val scope: CoroutineScope,
|
@Application private val scope: CoroutineScope,
|
||||||
statusBarPipelineFlags: StatusBarPipelineFlags,
|
statusBarPipelineFlags: StatusBarPipelineFlags,
|
||||||
|
wifiConstants: WifiConstants,
|
||||||
) {
|
) {
|
||||||
/**
|
/**
|
||||||
* Returns the drawable resource ID to use for the wifi icon based on the given network.
|
* Returns the drawable resource ID to use for the wifi icon based on the given network.
|
||||||
@@ -133,7 +135,8 @@ constructor(
|
|||||||
val icon = Icon.Resource(iconResId, wifiNetwork.contentDescription())
|
val icon = Icon.Resource(iconResId, wifiNetwork.contentDescription())
|
||||||
|
|
||||||
return@combine when {
|
return@combine when {
|
||||||
constants.alwaysShowIconIfEnabled -> icon
|
wifiConstants.alwaysShowIconIfEnabled -> icon
|
||||||
|
!connectivityConstants.hasDataCapabilities -> icon
|
||||||
wifiNetwork is WifiNetworkModel.Active && wifiNetwork.isValidated -> icon
|
wifiNetwork is WifiNetworkModel.Active && wifiNetwork.isValidated -> icon
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
@@ -142,7 +145,7 @@ constructor(
|
|||||||
|
|
||||||
/** The wifi activity status. Null if we shouldn't display the activity status. */
|
/** The wifi activity status. Null if we shouldn't display the activity status. */
|
||||||
private val activity: Flow<WifiActivityModel?> =
|
private val activity: Flow<WifiActivityModel?> =
|
||||||
if (!constants.shouldShowActivityConfig) {
|
if (!wifiConstants.shouldShowActivityConfig) {
|
||||||
flowOf(null)
|
flowOf(null)
|
||||||
} else {
|
} else {
|
||||||
combine(interactor.activity, interactor.ssid) { activity, ssid ->
|
combine(interactor.activity, interactor.ssid) { activity, ssid ->
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import com.android.systemui.statusbar.StatusBarIconView.STATE_HIDDEN
|
|||||||
import com.android.systemui.statusbar.StatusBarIconView.STATE_ICON
|
import com.android.systemui.statusbar.StatusBarIconView.STATE_ICON
|
||||||
import com.android.systemui.statusbar.phone.StatusBarLocation
|
import com.android.systemui.statusbar.phone.StatusBarLocation
|
||||||
import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags
|
import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags
|
||||||
|
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.model.WifiNetworkModel
|
||||||
@@ -59,7 +60,9 @@ class ModernStatusBarWifiViewTest : SysuiTestCase() {
|
|||||||
@Mock
|
@Mock
|
||||||
private lateinit var logger: ConnectivityPipelineLogger
|
private lateinit var logger: ConnectivityPipelineLogger
|
||||||
@Mock
|
@Mock
|
||||||
private lateinit var constants: WifiConstants
|
private lateinit var connectivityConstants: ConnectivityConstants
|
||||||
|
@Mock
|
||||||
|
private lateinit var wifiConstants: WifiConstants
|
||||||
private lateinit var connectivityRepository: FakeConnectivityRepository
|
private lateinit var connectivityRepository: FakeConnectivityRepository
|
||||||
private lateinit var wifiRepository: FakeWifiRepository
|
private lateinit var wifiRepository: FakeWifiRepository
|
||||||
private lateinit var interactor: WifiInteractor
|
private lateinit var interactor: WifiInteractor
|
||||||
@@ -80,7 +83,13 @@ class ModernStatusBarWifiViewTest : SysuiTestCase() {
|
|||||||
interactor = WifiInteractor(connectivityRepository, wifiRepository)
|
interactor = WifiInteractor(connectivityRepository, wifiRepository)
|
||||||
scope = CoroutineScope(Dispatchers.Unconfined)
|
scope = CoroutineScope(Dispatchers.Unconfined)
|
||||||
viewModel = WifiViewModel(
|
viewModel = WifiViewModel(
|
||||||
constants, context, logger, interactor, scope, statusBarPipelineFlags
|
connectivityConstants,
|
||||||
|
context,
|
||||||
|
logger,
|
||||||
|
interactor,
|
||||||
|
scope,
|
||||||
|
statusBarPipelineFlags,
|
||||||
|
wifiConstants,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import com.android.systemui.statusbar.connectivity.WifiIcons.WIFI_FULL_ICONS
|
|||||||
import com.android.systemui.statusbar.connectivity.WifiIcons.WIFI_NO_INTERNET_ICONS
|
import com.android.systemui.statusbar.connectivity.WifiIcons.WIFI_NO_INTERNET_ICONS
|
||||||
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.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
|
||||||
@@ -60,7 +61,8 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@Mock private lateinit var statusBarPipelineFlags: StatusBarPipelineFlags
|
@Mock private lateinit var statusBarPipelineFlags: StatusBarPipelineFlags
|
||||||
@Mock private lateinit var logger: ConnectivityPipelineLogger
|
@Mock private lateinit var logger: ConnectivityPipelineLogger
|
||||||
@Mock private lateinit var constants: WifiConstants
|
@Mock private lateinit var connectivityConstants: ConnectivityConstants
|
||||||
|
@Mock private lateinit var wifiConstants: WifiConstants
|
||||||
private lateinit var connectivityRepository: FakeConnectivityRepository
|
private lateinit var connectivityRepository: FakeConnectivityRepository
|
||||||
private lateinit var wifiRepository: FakeWifiRepository
|
private lateinit var wifiRepository: FakeWifiRepository
|
||||||
private lateinit var interactor: WifiInteractor
|
private lateinit var interactor: WifiInteractor
|
||||||
@@ -87,6 +89,9 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
// same data for icon, activity, etc. flows. So, most of these tests will test just one of the
|
// same data for icon, activity, etc. flows. So, most of these tests will test just one of the
|
||||||
// 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.
|
||||||
|
|
||||||
|
// TODO(b/238425913): We should probably parameterize the wifiIcon tests since there's so many
|
||||||
|
// different possibilities.
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiIcon_notEnabled_outputsNull() = runBlocking(IMMEDIATE) {
|
fun wifiIcon_notEnabled_outputsNull() = runBlocking(IMMEDIATE) {
|
||||||
wifiRepository.setIsWifiEnabled(false)
|
wifiRepository.setIsWifiEnabled(false)
|
||||||
@@ -150,7 +155,8 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiIcon_inactiveNetwork_alwaysShowFalse_outputsNull() = runBlocking(IMMEDIATE) {
|
fun wifiIcon_inactiveNetwork_alwaysShowFalse_outputsNull() = runBlocking(IMMEDIATE) {
|
||||||
whenever(constants.alwaysShowIconIfEnabled).thenReturn(false)
|
whenever(wifiConstants.alwaysShowIconIfEnabled).thenReturn(false)
|
||||||
|
whenever(connectivityConstants.hasDataCapabilities).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
|
|
||||||
// Start as non-null so we can verify we got the update
|
// Start as non-null so we can verify we got the update
|
||||||
@@ -171,7 +177,54 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiIcon_inactiveNetwork_alwaysShowTrue_outputsNoNetworkIcon() = runBlocking(IMMEDIATE) {
|
fun wifiIcon_inactiveNetwork_alwaysShowTrue_outputsNoNetworkIcon() = runBlocking(IMMEDIATE) {
|
||||||
whenever(constants.alwaysShowIconIfEnabled).thenReturn(true)
|
whenever(wifiConstants.alwaysShowIconIfEnabled).thenReturn(true)
|
||||||
|
createAndSetViewModel()
|
||||||
|
|
||||||
|
var latest: Icon? = null
|
||||||
|
val job = underTest
|
||||||
|
.home
|
||||||
|
.wifiIcon
|
||||||
|
.onEach { latest = it }
|
||||||
|
.launchIn(this)
|
||||||
|
|
||||||
|
wifiRepository.setWifiNetwork(WifiNetworkModel.Inactive)
|
||||||
|
yield()
|
||||||
|
|
||||||
|
assertThat(latest).isInstanceOf(Icon.Resource::class.java)
|
||||||
|
val icon = latest as Icon.Resource
|
||||||
|
assertThat(icon.res).isEqualTo(WIFI_NO_NETWORK)
|
||||||
|
assertThat(icon.contentDescription?.getAsString())
|
||||||
|
.contains(context.getString(WIFI_NO_CONNECTION))
|
||||||
|
assertThat(icon.contentDescription?.getAsString())
|
||||||
|
.contains(context.getString(NO_INTERNET))
|
||||||
|
|
||||||
|
job.cancel()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun wifiIcon_inactiveNetwork_hasDataCaps_outputsNull() = runBlocking(IMMEDIATE) {
|
||||||
|
whenever(connectivityConstants.hasDataCapabilities).thenReturn(true)
|
||||||
|
createAndSetViewModel()
|
||||||
|
|
||||||
|
// Start as non-null so we can verify we got the update
|
||||||
|
var latest: Icon? = Icon.Resource(0, null)
|
||||||
|
val job = underTest
|
||||||
|
.home
|
||||||
|
.wifiIcon
|
||||||
|
.onEach { latest = it }
|
||||||
|
.launchIn(this)
|
||||||
|
|
||||||
|
wifiRepository.setWifiNetwork(WifiNetworkModel.Inactive)
|
||||||
|
yield()
|
||||||
|
|
||||||
|
assertThat(latest).isNull()
|
||||||
|
|
||||||
|
job.cancel()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun wifiIcon_inactiveNetwork_noDataCaps_outputsNoNetworkIcon() = runBlocking(IMMEDIATE) {
|
||||||
|
whenever(connectivityConstants.hasDataCapabilities).thenReturn(false)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
|
|
||||||
var latest: Icon? = null
|
var latest: Icon? = null
|
||||||
@@ -198,7 +251,7 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
@Test
|
@Test
|
||||||
fun wifiIcon_carrierMergedNetwork_outputsNull() = runBlocking(IMMEDIATE) {
|
fun wifiIcon_carrierMergedNetwork_outputsNull() = runBlocking(IMMEDIATE) {
|
||||||
// Even when we should always show the icon
|
// Even when we should always show the icon
|
||||||
whenever(constants.alwaysShowIconIfEnabled).thenReturn(true)
|
whenever(wifiConstants.alwaysShowIconIfEnabled).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
|
|
||||||
var latest: Icon? = Icon.Resource(0, null)
|
var latest: Icon? = Icon.Resource(0, null)
|
||||||
@@ -221,7 +274,7 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
@Test
|
@Test
|
||||||
fun wifiIcon_isActiveNullLevel_outputsNull() = runBlocking(IMMEDIATE) {
|
fun wifiIcon_isActiveNullLevel_outputsNull() = runBlocking(IMMEDIATE) {
|
||||||
// Even when we should always show the icon
|
// Even when we should always show the icon
|
||||||
whenever(constants.alwaysShowIconIfEnabled).thenReturn(true)
|
whenever(wifiConstants.alwaysShowIconIfEnabled).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
|
|
||||||
var latest: Icon? = Icon.Resource(0, null)
|
var latest: Icon? = Icon.Resource(0, null)
|
||||||
@@ -273,7 +326,8 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiIcon_isActiveAndNotValidated_alwaysShowFalse_outputsNull() = runBlocking(IMMEDIATE) {
|
fun wifiIcon_isActiveAndNotValidated_alwaysShowFalse_outputsNull() = runBlocking(IMMEDIATE) {
|
||||||
whenever(constants.alwaysShowIconIfEnabled).thenReturn(false)
|
whenever(wifiConstants.alwaysShowIconIfEnabled).thenReturn(false)
|
||||||
|
whenever(connectivityConstants.hasDataCapabilities).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
|
|
||||||
var latest: Icon? = Icon.Resource(0, null)
|
var latest: Icon? = Icon.Resource(0, null)
|
||||||
@@ -295,7 +349,62 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun wifiIcon_isActiveAndNotValidated_alwaysShowTrue_outputsIcon() = runBlocking(IMMEDIATE) {
|
fun wifiIcon_isActiveAndNotValidated_alwaysShowTrue_outputsIcon() = runBlocking(IMMEDIATE) {
|
||||||
whenever(constants.alwaysShowIconIfEnabled).thenReturn(true)
|
whenever(wifiConstants.alwaysShowIconIfEnabled).thenReturn(true)
|
||||||
|
createAndSetViewModel()
|
||||||
|
|
||||||
|
var latest: Icon? = null
|
||||||
|
val job = underTest
|
||||||
|
.home
|
||||||
|
.wifiIcon
|
||||||
|
.onEach { latest = it }
|
||||||
|
.launchIn(this)
|
||||||
|
|
||||||
|
val level = 4
|
||||||
|
wifiRepository.setWifiNetwork(
|
||||||
|
WifiNetworkModel.Active(
|
||||||
|
NETWORK_ID,
|
||||||
|
isValidated = false,
|
||||||
|
level,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
yield()
|
||||||
|
|
||||||
|
assertThat(latest).isInstanceOf(Icon.Resource::class.java)
|
||||||
|
val icon = latest as Icon.Resource
|
||||||
|
assertThat(icon.res).isEqualTo(WIFI_NO_INTERNET_ICONS[level])
|
||||||
|
assertThat(icon.contentDescription?.getAsString())
|
||||||
|
.contains(context.getString(WIFI_CONNECTION_STRENGTH[level]))
|
||||||
|
assertThat(icon.contentDescription?.getAsString())
|
||||||
|
.contains(context.getString(NO_INTERNET))
|
||||||
|
|
||||||
|
job.cancel()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun wifiIcon_isActiveAndNotValidated_hasDataCaps_outputsNull() = runBlocking(IMMEDIATE) {
|
||||||
|
whenever(connectivityConstants.hasDataCapabilities).thenReturn(true)
|
||||||
|
createAndSetViewModel()
|
||||||
|
|
||||||
|
var latest: Icon? = Icon.Resource(0, null)
|
||||||
|
val job = underTest
|
||||||
|
.home
|
||||||
|
.wifiIcon
|
||||||
|
.onEach { latest = it }
|
||||||
|
.launchIn(this)
|
||||||
|
|
||||||
|
wifiRepository.setWifiNetwork(
|
||||||
|
WifiNetworkModel.Active(NETWORK_ID, isValidated = false, level = 4,)
|
||||||
|
)
|
||||||
|
yield()
|
||||||
|
|
||||||
|
assertThat(latest).isNull()
|
||||||
|
|
||||||
|
job.cancel()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun wifiIcon_isActiveAndNotValidated_noDataCaps_outputsIcon() = runBlocking(IMMEDIATE) {
|
||||||
|
whenever(connectivityConstants.hasDataCapabilities).thenReturn(false)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
|
|
||||||
var latest: Icon? = null
|
var latest: Icon? = null
|
||||||
@@ -369,7 +478,7 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activity_showActivityConfigFalse_outputsFalse() = runBlocking(IMMEDIATE) {
|
fun activity_showActivityConfigFalse_outputsFalse() = runBlocking(IMMEDIATE) {
|
||||||
whenever(constants.shouldShowActivityConfig).thenReturn(false)
|
whenever(wifiConstants.shouldShowActivityConfig).thenReturn(false)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
@@ -406,7 +515,7 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activity_showActivityConfigFalse_noUpdatesReceived() = runBlocking(IMMEDIATE) {
|
fun activity_showActivityConfigFalse_noUpdatesReceived() = runBlocking(IMMEDIATE) {
|
||||||
whenever(constants.shouldShowActivityConfig).thenReturn(false)
|
whenever(wifiConstants.shouldShowActivityConfig).thenReturn(false)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
@@ -448,7 +557,7 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activity_nullSsid_outputsFalse() = runBlocking(IMMEDIATE) {
|
fun activity_nullSsid_outputsFalse() = runBlocking(IMMEDIATE) {
|
||||||
whenever(constants.shouldShowActivityConfig).thenReturn(true)
|
whenever(wifiConstants.shouldShowActivityConfig).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
|
|
||||||
wifiRepository.setWifiNetwork(WifiNetworkModel.Active(NETWORK_ID, ssid = null))
|
wifiRepository.setWifiNetwork(WifiNetworkModel.Active(NETWORK_ID, ssid = null))
|
||||||
@@ -491,7 +600,7 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activity_allLocationViewModelsReceiveSameData() = runBlocking(IMMEDIATE) {
|
fun activity_allLocationViewModelsReceiveSameData() = runBlocking(IMMEDIATE) {
|
||||||
whenever(constants.shouldShowActivityConfig).thenReturn(true)
|
whenever(wifiConstants.shouldShowActivityConfig).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
@@ -531,7 +640,7 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activityIn_hasActivityInTrue_outputsTrue() = runBlocking(IMMEDIATE) {
|
fun activityIn_hasActivityInTrue_outputsTrue() = runBlocking(IMMEDIATE) {
|
||||||
whenever(constants.shouldShowActivityConfig).thenReturn(true)
|
whenever(wifiConstants.shouldShowActivityConfig).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
@@ -553,7 +662,7 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activityIn_hasActivityInFalse_outputsFalse() = runBlocking(IMMEDIATE) {
|
fun activityIn_hasActivityInFalse_outputsFalse() = runBlocking(IMMEDIATE) {
|
||||||
whenever(constants.shouldShowActivityConfig).thenReturn(true)
|
whenever(wifiConstants.shouldShowActivityConfig).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
@@ -575,7 +684,7 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activityOut_hasActivityOutTrue_outputsTrue() = runBlocking(IMMEDIATE) {
|
fun activityOut_hasActivityOutTrue_outputsTrue() = runBlocking(IMMEDIATE) {
|
||||||
whenever(constants.shouldShowActivityConfig).thenReturn(true)
|
whenever(wifiConstants.shouldShowActivityConfig).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
@@ -597,7 +706,7 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activityOut_hasActivityOutFalse_outputsFalse() = runBlocking(IMMEDIATE) {
|
fun activityOut_hasActivityOutFalse_outputsFalse() = runBlocking(IMMEDIATE) {
|
||||||
whenever(constants.shouldShowActivityConfig).thenReturn(true)
|
whenever(wifiConstants.shouldShowActivityConfig).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
@@ -619,7 +728,7 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activityContainer_hasActivityInTrue_outputsTrue() = runBlocking(IMMEDIATE) {
|
fun activityContainer_hasActivityInTrue_outputsTrue() = runBlocking(IMMEDIATE) {
|
||||||
whenever(constants.shouldShowActivityConfig).thenReturn(true)
|
whenever(wifiConstants.shouldShowActivityConfig).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
@@ -641,7 +750,7 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activityContainer_hasActivityOutTrue_outputsTrue() = runBlocking(IMMEDIATE) {
|
fun activityContainer_hasActivityOutTrue_outputsTrue() = runBlocking(IMMEDIATE) {
|
||||||
whenever(constants.shouldShowActivityConfig).thenReturn(true)
|
whenever(wifiConstants.shouldShowActivityConfig).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
@@ -663,7 +772,7 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activityContainer_inAndOutTrue_outputsTrue() = runBlocking(IMMEDIATE) {
|
fun activityContainer_inAndOutTrue_outputsTrue() = runBlocking(IMMEDIATE) {
|
||||||
whenever(constants.shouldShowActivityConfig).thenReturn(true)
|
whenever(wifiConstants.shouldShowActivityConfig).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
@@ -685,7 +794,7 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun activityContainer_inAndOutFalse_outputsFalse() = runBlocking(IMMEDIATE) {
|
fun activityContainer_inAndOutFalse_outputsFalse() = runBlocking(IMMEDIATE) {
|
||||||
whenever(constants.shouldShowActivityConfig).thenReturn(true)
|
whenever(wifiConstants.shouldShowActivityConfig).thenReturn(true)
|
||||||
createAndSetViewModel()
|
createAndSetViewModel()
|
||||||
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
|
||||||
|
|
||||||
@@ -710,12 +819,13 @@ class WifiViewModelTest : SysuiTestCase() {
|
|||||||
// 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(
|
||||||
constants,
|
connectivityConstants,
|
||||||
context,
|
context,
|
||||||
logger,
|
logger,
|
||||||
interactor,
|
interactor,
|
||||||
scope,
|
scope,
|
||||||
statusBarPipelineFlags,
|
statusBarPipelineFlags,
|
||||||
|
wifiConstants,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user