summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRoshan Pius <rpius@google.com>2020-05-27 10:49:20 -0700
committerRoshan Pius <rpius@google.com>2020-05-27 11:10:17 -0700
commit2643b8eef2007c18d2e0e7d722e0372858bc66ed (patch)
tree33d8c1504d3516646903e431c89cc29819fc261e /tests
parentc11cd31f25516662ea9a8d6b774d9e591a3fda91 (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.java22
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);