When validation state changes, update the AP summary.

This stops the AP summary from getting stuck on "Connected, no
Internet" even when the system has validated Internet access.

Bug: 62209358
Test: make -j64 RunSettingsRoboTests
Change-Id: I235404408f7d8b958653d25656d97da8206e35ce
This commit is contained in:
Lorenzo Colitti
2017-06-02 18:00:40 +09:00
parent beafc36360
commit 2561df8083
2 changed files with 55 additions and 0 deletions

View File

@@ -518,6 +518,45 @@ public class WifiDetailPreferenceControllerTest {
inOrder.verify(mockDnsPref).setVisible(true);
}
@Test
public void onCapabilitiesChanged_callsRefreshIfNecessary() {
NetworkCapabilities nc = makeNetworkCapabilities();
when(mockConnectivityManager.getNetworkCapabilities(mockNetwork))
.thenReturn(new NetworkCapabilities(nc));
String summary = "Connected, no Internet";
when(mockAccessPoint.getSettingsSummary()).thenReturn(summary);
InOrder inOrder = inOrder(mockConnectionDetailPref);
mController.displayPreference(mockScreen);
mController.onResume();
inOrder.verify(mockConnectionDetailPref).setTitle(summary);
// Check that an irrelevant capability update does not update the access point summary, as
// doing so could cause unnecessary jank...
summary = "Connected";
when(mockAccessPoint.getSettingsSummary()).thenReturn(summary);
updateNetworkCapabilities(nc);
inOrder.verify(mockConnectionDetailPref, never()).setTitle(any());
// ... but that if the network validates, then we do refresh.
nc.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
updateNetworkCapabilities(nc);
inOrder.verify(mockConnectionDetailPref).setTitle(summary);
summary = "Connected, no Internet";
when(mockAccessPoint.getSettingsSummary()).thenReturn(summary);
// Another irrelevant update won't cause the UI to refresh...
updateNetworkCapabilities(nc);
inOrder.verify(mockConnectionDetailPref, never()).setTitle(any());
// ... but if the network is no longer validated, then we display "connected, no Internet".
nc.removeCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
updateNetworkCapabilities(nc);
inOrder.verify(mockConnectionDetailPref).setTitle(summary);
}
@Test
public void canForgetNetwork_noNetwork() {
when(mockAccessPoint.getConfig()).thenReturn(null);