Loading packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImpl.kt +4 −2 Original line number Original line Diff line number Diff line Loading @@ -160,8 +160,10 @@ constructor( val wifi = currentWifi val wifi = currentWifi if ( if ( wifi is WifiNetworkModel.Active && (wifi is WifiNetworkModel.Active && wifi.networkId == network.getNetId() wifi.networkId == network.getNetId()) || (wifi is WifiNetworkModel.CarrierMerged && wifi.networkId == network.getNetId()) ) { ) { val newNetworkModel = WifiNetworkModel.Inactive val newNetworkModel = WifiNetworkModel.Inactive currentWifi = newNetworkModel currentWifi = newNetworkModel Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImplTest.kt +28 −1 Original line number Original line Diff line number Diff line Loading @@ -994,7 +994,7 @@ class WifiRepositoryImplTest : SysuiTestCase() { } } @Test @Test fun wifiNetwork_currentNetworkLost_flowHasNoNetwork() = fun wifiNetwork_currentActiveNetworkLost_flowHasNoNetwork() = testScope.runTest { testScope.runTest { var latest: WifiNetworkModel? = null var latest: WifiNetworkModel? = null val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this) val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this) Loading @@ -1012,6 +1012,33 @@ class WifiRepositoryImplTest : SysuiTestCase() { job.cancel() job.cancel() } } /** Possible regression test for b/278618530. */ @Test fun wifiNetwork_currentCarrierMergedNetworkLost_flowHasNoNetwork() = testScope.runTest { var latest: WifiNetworkModel? = null val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this) val wifiInfo = mock<WifiInfo>().apply { whenever(this.isPrimary).thenReturn(true) whenever(this.isCarrierMerged).thenReturn(true) } getNetworkCallback() .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(wifiInfo)) assertThat(latest is WifiNetworkModel.CarrierMerged).isTrue() assertThat((latest as WifiNetworkModel.CarrierMerged).networkId).isEqualTo(NETWORK_ID) // WHEN we lose our current network getNetworkCallback().onLost(NETWORK) // THEN we update to no network assertThat(latest is WifiNetworkModel.Inactive).isTrue() job.cancel() } @Test @Test fun wifiNetwork_unknownNetworkLost_flowHasPreviousNetwork() = fun wifiNetwork_unknownNetworkLost_flowHasPreviousNetwork() = testScope.runTest { testScope.runTest { Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImpl.kt +4 −2 Original line number Original line Diff line number Diff line Loading @@ -160,8 +160,10 @@ constructor( val wifi = currentWifi val wifi = currentWifi if ( if ( wifi is WifiNetworkModel.Active && (wifi is WifiNetworkModel.Active && wifi.networkId == network.getNetId() wifi.networkId == network.getNetId()) || (wifi is WifiNetworkModel.CarrierMerged && wifi.networkId == network.getNetId()) ) { ) { val newNetworkModel = WifiNetworkModel.Inactive val newNetworkModel = WifiNetworkModel.Inactive currentWifi = newNetworkModel currentWifi = newNetworkModel Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/data/repository/prod/WifiRepositoryImplTest.kt +28 −1 Original line number Original line Diff line number Diff line Loading @@ -994,7 +994,7 @@ class WifiRepositoryImplTest : SysuiTestCase() { } } @Test @Test fun wifiNetwork_currentNetworkLost_flowHasNoNetwork() = fun wifiNetwork_currentActiveNetworkLost_flowHasNoNetwork() = testScope.runTest { testScope.runTest { var latest: WifiNetworkModel? = null var latest: WifiNetworkModel? = null val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this) val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this) Loading @@ -1012,6 +1012,33 @@ class WifiRepositoryImplTest : SysuiTestCase() { job.cancel() job.cancel() } } /** Possible regression test for b/278618530. */ @Test fun wifiNetwork_currentCarrierMergedNetworkLost_flowHasNoNetwork() = testScope.runTest { var latest: WifiNetworkModel? = null val job = underTest.wifiNetwork.onEach { latest = it }.launchIn(this) val wifiInfo = mock<WifiInfo>().apply { whenever(this.isPrimary).thenReturn(true) whenever(this.isCarrierMerged).thenReturn(true) } getNetworkCallback() .onCapabilitiesChanged(NETWORK, createWifiNetworkCapabilities(wifiInfo)) assertThat(latest is WifiNetworkModel.CarrierMerged).isTrue() assertThat((latest as WifiNetworkModel.CarrierMerged).networkId).isEqualTo(NETWORK_ID) // WHEN we lose our current network getNetworkCallback().onLost(NETWORK) // THEN we update to no network assertThat(latest is WifiNetworkModel.Inactive).isTrue() job.cancel() } @Test @Test fun wifiNetwork_unknownNetworkLost_flowHasPreviousNetwork() = fun wifiNetwork_unknownNetworkLost_flowHasPreviousNetwork() = testScope.runTest { testScope.runTest { Loading