diff options
author | Roshan Pius <rpius@google.com> | 2020-05-27 10:49:20 -0700 |
---|---|---|
committer | Roshan Pius <rpius@google.com> | 2020-05-27 11:10:17 -0700 |
commit | 2643b8eef2007c18d2e0e7d722e0372858bc66ed (patch) | |
tree | 33d8c1504d3516646903e431c89cc29819fc261e /tests | |
parent | c11cd31f25516662ea9a8d6b774d9e591a3fda91 (diff) |
WifiWakeup: Ignore wakeup start if no saved networks or suggestions
If there are no saved networks or suggestions, there is no use of
starting wifi wake feature. So, gate the feature start based on whether
any saved networks are present on the device or not. This also works
around a race in the wake initialization/deinitialization sequence on
a freshly wiped device. This quick initialization/deinitialization
causes the device to not show the notification on enabling the feature
for a day.
Bug: 155795687
Test: atest com.android.server.wifi
Test: Manual tests
- Flash wipe the device.
- Connect to saved networks.
- Turn off wifi.
- Check that wake feature is enabled and the notification shown.
Change-Id: I6bc6315c9c1852e7cdb17ad73c4ed34d3895a951
Diffstat (limited to 'tests')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WakeupControllerTest.java | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WakeupControllerTest.java b/tests/wifitests/src/com/android/server/wifi/WakeupControllerTest.java index ed2ccce5e..9824c5b23 100644 --- a/tests/wifitests/src/com/android/server/wifi/WakeupControllerTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WakeupControllerTest.java @@ -103,6 +103,10 @@ public class WakeupControllerTest extends WifiBaseTest { .thenReturn(new int[]{DFS_CHANNEL_FREQ}); when(mWifiSettingsStore.handleWifiToggled(anyBoolean())).thenReturn(true); + // Saved network needed to start wake. + WifiConfiguration openNetwork = WifiConfigurationTestUtil.createOpenNetwork(); + openNetwork.getNetworkSelectionStatus().setHasEverConnected(true); + when(mWifiConfigManager.getSavedNetworks(anyInt())).thenReturn(Arrays.asList(openNetwork)); mLooper = new TestLooper(); @@ -255,6 +259,19 @@ public class WakeupControllerTest extends WifiBaseTest { verify(mWifiWakeMetrics, never()).recordStartEvent(anyInt()); } + + /** + * Verify that start does not set the wakeup lock when feature is disabled. + */ + @Test + public void startDoesNotSetWakeupLockWhenNoSavedNetworksOrSuggestions() { + when(mWifiConfigManager.getSavedNetworks(anyInt())).thenReturn(Collections.emptyList()); + initializeWakeupController(false /* enabled */); + mWakeupController.start(); + verify(mWakeupLock, never()).setLock(any()); + verify(mWifiWakeMetrics, never()).recordStartEvent(anyInt()); + } + /** * If the controller is already active, verify that start() is ignored and no setup is done. */ @@ -537,8 +554,7 @@ public class WakeupControllerTest extends WifiBaseTest { */ @Test public void onResultsUpdatesWakeupLockWithOnlySavedNetworks() { - // no saved configs - when(mWifiConfigManager.getSavedNetworks(anyInt())).thenReturn(Collections.emptyList()); + // no matching saved configs initializeWakeupController(true /* enabled */); mWakeupController.start(); @@ -713,7 +729,6 @@ public class WakeupControllerTest extends WifiBaseTest { when(mClock.getElapsedSinceBootMillis()).thenReturn(0L, (long) (0.8 * WakeupController.LAST_DISCONNECT_TIMEOUT_MILLIS)); ScanResultMatchInfo matchInfo = ScanResultMatchInfo.fromScanResult(mTestScanResult); - when(mWifiConfigManager.getSavedNetworks(anyInt())).thenReturn(Collections.emptyList()); when(mWifiScanner.getSingleScanResults()).thenReturn(Collections.emptyList()); initializeWakeupController(true); @@ -739,7 +754,6 @@ public class WakeupControllerTest extends WifiBaseTest { when(mClock.getElapsedSinceBootMillis()).thenReturn(0L, (long) (1.2 * WakeupController.LAST_DISCONNECT_TIMEOUT_MILLIS)); ScanResultMatchInfo matchInfo = ScanResultMatchInfo.fromScanResult(mTestScanResult); - when(mWifiConfigManager.getSavedNetworks(anyInt())).thenReturn(Collections.emptyList()); when(mWifiScanner.getSingleScanResults()).thenReturn(Collections.emptyList()); initializeWakeupController(true); |