summaryrefslogtreecommitdiff
path: root/robotests/src/com/android/networkrecommendation/wakeup/WifiWakeupControllerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'robotests/src/com/android/networkrecommendation/wakeup/WifiWakeupControllerTest.java')
-rw-r--r--robotests/src/com/android/networkrecommendation/wakeup/WifiWakeupControllerTest.java606
1 files changed, 0 insertions, 606 deletions
diff --git a/robotests/src/com/android/networkrecommendation/wakeup/WifiWakeupControllerTest.java b/robotests/src/com/android/networkrecommendation/wakeup/WifiWakeupControllerTest.java
deleted file mode 100644
index 01e7db1..0000000
--- a/robotests/src/com/android/networkrecommendation/wakeup/WifiWakeupControllerTest.java
+++ /dev/null
@@ -1,606 +0,0 @@
-/*
- * Copyright (C) 2017 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.networkrecommendation.wakeup;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.anyList;
-import static org.mockito.Matchers.anyMap;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
-import static org.mockito.Mockito.when;
-
-import android.app.NotificationManager;
-import android.content.ContentResolver;
-import android.content.Intent;
-import android.net.wifi.ScanResult;
-import android.net.wifi.WifiConfiguration;
-import android.net.wifi.WifiConfiguration.Status;
-import android.net.wifi.WifiManager;
-import android.os.Handler;
-import android.os.PowerManager;
-import android.provider.Settings;
-import com.android.networkrecommendation.BroadcastIntentTestHelper;
-import com.android.networkrecommendation.config.Flag;
-import com.android.networkrecommendation.config.PreferenceFile;
-import com.android.networkrecommendation.config.Preferences;
-import com.android.networkrecommendation.config.WideAreaNetworks;
-import com.android.networkrecommendation.scoring.util.HashUtil;
-import com.android.networkrecommendation.util.RoboCompatUtil;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Lists;
-import java.io.FileDescriptor;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowApplication;
-import org.robolectric.shadows.ShadowLooper;
-
-/** Unit tests for {@link WifiWakeupController}. */
-@RunWith(RobolectricTestRunner.class)
-@Config(manifest = "packages/services/NetworkRecommendation/AndroidManifest.xml", sdk = 23)
-public class WifiWakeupControllerTest {
- private static final ScanResult OPEN_SCAN_RESULT = buildScanResult("ssid");
- private static final ScanResult SAVED_SCAN_RESULT = buildScanResult("ssid1");
- private static final ScanResult SAVED_SCAN_RESULT2 = buildScanResult("ssid2");
- private static final ScanResult SAVED_SCAN_RESULT_EXTERNAL = buildScanResult("ssid3");
- private static final ScanResult SAVED_SCAN_RESULT_WIDE_AREA = buildScanResult("xfinitywifi");
-
- private static ScanResult buildScanResult(String ssid) {
- try {
- ScanResult scanResult = ScanResult.class.getConstructor().newInstance();
- scanResult.SSID = ssid;
- return scanResult;
- } catch (Exception e) {
- return null;
- }
- }
-
- private ContentResolver mContentResolver;
- @Mock private NotificationManager mNotificationManager;
- @Mock private WifiWakeupNetworkSelector mWifiWakeupNetworkSelector;
- @Mock private WifiWakeupHelper mWifiWakeupHelper;
- @Mock private WifiManager mWifiManager;
- @Mock private RoboCompatUtil mRoboCompatUtil;
- @Mock private PowerManager mPowerManager;
-
- private WifiConfiguration mSavedWifiConfiguration;
- private WifiConfiguration mSavedWifiConfiguration2;
- private WifiConfiguration mSavedWifiConfigurationExternal;
- private WifiConfiguration mSavedWifiConfigurationWideArea;
-
- private WifiWakeupController mWifiWakeupController;
- private BroadcastIntentTestHelper mBroadcastIntentTestHelper;
-
- @Before
- public void setUp() throws Exception {
- MockitoAnnotations.initMocks(this);
- Flag.initForTest();
- RoboCompatUtil.setInstanceForTesting(mRoboCompatUtil);
- PreferenceFile.init(RuntimeEnvironment.application);
-
- mSavedWifiConfiguration = new WifiConfiguration();
- mSavedWifiConfiguration.SSID = "\"" + SAVED_SCAN_RESULT.SSID + "\"";
- mSavedWifiConfiguration.status = WifiConfiguration.Status.CURRENT;
- mSavedWifiConfiguration2 = new WifiConfiguration();
- mSavedWifiConfiguration2.SSID = "\"" + SAVED_SCAN_RESULT2.SSID + "\"";
- mSavedWifiConfiguration2.status = WifiConfiguration.Status.ENABLED;
- mSavedWifiConfigurationExternal = new WifiConfiguration();
- mSavedWifiConfigurationExternal.SSID = "\"" + SAVED_SCAN_RESULT_EXTERNAL.SSID + "\"";
- // TODO(netrec): why is this needed when this field is accessible when compiling the main apk?
- // is robo_experimental behind backend_experimental?
- when(mRoboCompatUtil.useExternalScores(mSavedWifiConfigurationExternal)).thenReturn(true);
- mSavedWifiConfigurationExternal.status = WifiConfiguration.Status.ENABLED;
- mSavedWifiConfigurationWideArea = new WifiConfiguration();
- mSavedWifiConfigurationWideArea.SSID = "\"" + SAVED_SCAN_RESULT_WIDE_AREA.SSID + "\"";
- mSavedWifiConfigurationWideArea.status = WifiConfiguration.Status.ENABLED;
- assertTrue(WideAreaNetworks.contains(SAVED_SCAN_RESULT_WIDE_AREA.SSID));
-
- mContentResolver = RuntimeEnvironment.application.getContentResolver();
- Settings.Global.putInt(mContentResolver, Settings.Global.WIFI_WAKEUP_ENABLED, 1);
- Settings.Global.putInt(mContentResolver, Settings.Global.AIRPLANE_MODE_ON, 0);
- when(mWifiManager.getWifiApState()).thenReturn(WifiManager.WIFI_AP_STATE_DISABLED);
- ShadowLooper.resetThreadLoopers();
- Preferences.savedSsidsOnDisable.remove();
-
- mWifiWakeupController =
- new WifiWakeupController(
- RuntimeEnvironment.application,
- mContentResolver,
- new Handler(ShadowLooper.getMainLooper()),
- mWifiManager,
- mPowerManager,
- mWifiWakeupNetworkSelector,
- mWifiWakeupHelper);
- mWifiWakeupController.start();
- mBroadcastIntentTestHelper = new BroadcastIntentTestHelper(RuntimeEnvironment.application);
- }
-
- /**
- * When the NetworkRecommendationService associated with this WifiWakeupController is unbound,
- * this WifiWakeupController should no longer function.
- */
- @Test
- public void wifiWakeupControllerStopped() {
- mWifiWakeupController.stop();
-
- assertFalse(
- ShadowApplication.getInstance()
- .hasReceiverForIntent(
- new Intent(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)));
- }
-
- /**
- * When {@link Settings.Global.WIFI_WAKEUP_ENABLED} is disabled, scan results should not be
- * processed.
- */
- @Test
- public void wifiWakeupControllerStarted_settingDisabled() {
- Settings.Global.putInt(mContentResolver, Settings.Global.WIFI_WAKEUP_ENABLED, 0);
- when(mWifiManager.getConfiguredNetworks())
- .thenReturn(Lists.newArrayList(mSavedWifiConfiguration, mSavedWifiConfiguration2));
- when(mWifiManager.getScanResults())
- .thenReturn(
- Lists.newArrayList(SAVED_SCAN_RESULT),
- Lists.newArrayList(SAVED_SCAN_RESULT2));
- when(mWifiWakeupNetworkSelector.selectNetwork(anyMap(), anyList()))
- .thenReturn(mSavedWifiConfiguration2);
- when(mWifiManager.getWifiState())
- .thenReturn(WifiManager.WIFI_STATE_ENABLED, WifiManager.WIFI_STATE_DISABLED);
-
- mWifiWakeupController.mContentObserver.onChange(true);
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendConfiguredNetworksChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
-
- verify(mWifiManager, never()).setWifiEnabled(true);
-
- Settings.Global.putInt(mContentResolver, Settings.Global.WIFI_WAKEUP_ENABLED, 1);
- mWifiWakeupController.mContentObserver.onChange(true);
-
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
-
- verify(mWifiManager).setWifiEnabled(true);
- verify(mWifiWakeupHelper).startWifiSession(mSavedWifiConfiguration2);
- }
-
- /**
- * When Wi-Fi is disabled and a saved network is in the scan list, and then this network is not
- * in the scan list 3x, and then it is, Wi-Fi should be enabled.
- */
- @Test
- public void wifiEnabled_userDisabledWifiNearSavedNetwork_thenLeaves_thenMovesBack() {
- when(mWifiManager.getConfiguredNetworks())
- .thenReturn(Lists.newArrayList(mSavedWifiConfiguration));
- when(mWifiManager.getScanResults())
- .thenReturn(
- Lists.newArrayList(SAVED_SCAN_RESULT),
- Lists.newArrayList(OPEN_SCAN_RESULT),
- Lists.newArrayList(OPEN_SCAN_RESULT),
- Lists.newArrayList(OPEN_SCAN_RESULT),
- Lists.newArrayList(SAVED_SCAN_RESULT));
- when(mWifiWakeupNetworkSelector.selectNetwork(anyMap(), anyList()))
- .thenReturn(mSavedWifiConfiguration);
- when(mWifiManager.getWifiState())
- .thenReturn(WifiManager.WIFI_STATE_ENABLED, WifiManager.WIFI_STATE_DISABLED);
-
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendConfiguredNetworksChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
-
- verify(mWifiManager, never()).setWifiEnabled(true);
-
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
-
- verify(mWifiManager).setWifiEnabled(true);
- verify(mWifiWakeupHelper).startWifiSession(mSavedWifiConfiguration);
- }
-
- /**
- * When Wi-Fi is disabled and a saved network is in the scan list, and then another scan result
- * comes in 3x with only a different saved network, Wi-Fi should be enabled.
- */
- @Test
- public void wifiEnabled_userDisabledWifiNearSavedNetwork_thenMovesToAnotherSavedNetwork() {
- when(mWifiManager.getConfiguredNetworks())
- .thenReturn(Lists.newArrayList(mSavedWifiConfiguration, mSavedWifiConfiguration2));
- when(mWifiManager.getScanResults())
- .thenReturn(
- Lists.newArrayList(SAVED_SCAN_RESULT),
- Lists.newArrayList(SAVED_SCAN_RESULT2));
- when(mWifiWakeupNetworkSelector.selectNetwork(anyMap(), anyList()))
- .thenReturn(mSavedWifiConfiguration2);
- when(mWifiManager.getWifiState())
- .thenReturn(WifiManager.WIFI_STATE_ENABLED, WifiManager.WIFI_STATE_DISABLED);
-
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendConfiguredNetworksChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendWifiStateChanged();
-
- verify(mWifiManager, never()).setWifiEnabled(true);
-
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
-
- verify(mWifiManager).setWifiEnabled(true);
- verify(mWifiWakeupHelper).startWifiSession(mSavedWifiConfiguration2);
- }
-
- /**
- * If Wi-Fi is disabled when a saved network is in the scan list, and then scan results come in
- * for a saved wide area network 3x, Wi-Fi should not be enabled.
- */
- @Test
- public void wifiNotEnabled_userDisablesWifiNearSavedNetwork_thenMovesToWideAreaNetwork() {
- when(mWifiManager.getConfiguredNetworks())
- .thenReturn(
- Lists.newArrayList(
- mSavedWifiConfiguration, mSavedWifiConfigurationWideArea));
- when(mWifiManager.getScanResults())
- .thenReturn(
- Lists.newArrayList(SAVED_SCAN_RESULT),
- Lists.newArrayList(SAVED_SCAN_RESULT_WIDE_AREA));
- when(mWifiManager.getWifiState())
- .thenReturn(WifiManager.WIFI_STATE_ENABLED, WifiManager.WIFI_STATE_DISABLED);
-
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendConfiguredNetworksChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
-
- verifyZeroInteractions(mWifiWakeupNetworkSelector);
- verify(mWifiManager, never()).setWifiEnabled(true);
- }
-
- /**
- * When Wi-Fi is enabled and a saved network is in the scan list, Wi-Fi should not be enabled.
- */
- @Test
- public void wifiNotEnabled_wifiAlreadyEnabled() {
- when(mWifiManager.getConfiguredNetworks())
- .thenReturn(
- Lists.newArrayList(
- mSavedWifiConfiguration, mSavedWifiConfigurationExternal));
- when(mWifiManager.getScanResults()).thenReturn(Lists.newArrayList(SAVED_SCAN_RESULT));
- when(mWifiManager.getWifiState()).thenReturn(WifiManager.WIFI_STATE_ENABLED);
-
- mBroadcastIntentTestHelper.sendConfiguredNetworksChanged();
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
-
- verifyZeroInteractions(mWifiWakeupNetworkSelector);
- verify(mWifiManager, never()).setWifiEnabled(true);
- }
-
- /**
- * When Wi-Fi is disabled near a saved network, and WifiWakeupController stops and starts, Wi-Fi
- * should not be enabled.
- */
- @Test
- public void userDisabledWifiNearSavedNetwork_controllerStopped_controllerStarted() {
- when(mWifiManager.getConfiguredNetworks())
- .thenReturn(Lists.newArrayList(mSavedWifiConfiguration));
- when(mWifiManager.getScanResults()).thenReturn(Lists.newArrayList(SAVED_SCAN_RESULT));
- when(mWifiWakeupNetworkSelector.selectNetwork(anyMap(), anyList()))
- .thenReturn(mSavedWifiConfiguration);
- when(mWifiManager.getWifiState())
- .thenReturn(WifiManager.WIFI_STATE_ENABLED, WifiManager.WIFI_STATE_DISABLED);
-
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendConfiguredNetworksChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mWifiWakeupController.stop();
-
- assertEquals(
- ImmutableSet.of(HashUtil.getSsidHash(SAVED_SCAN_RESULT.SSID)),
- Preferences.savedSsidsOnDisable.get());
-
- mWifiWakeupController =
- new WifiWakeupController(
- RuntimeEnvironment.application,
- mContentResolver,
- new Handler(ShadowLooper.getMainLooper()),
- mWifiManager,
- mPowerManager,
- mWifiWakeupNetworkSelector,
- mWifiWakeupHelper);
- mWifiWakeupController.start();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
-
- verify(mWifiManager, never()).setWifiEnabled(true);
- }
-
- /**
- * When Wi-Fi is disabled and a saved network is in the scan list, but {@link
- * WifiWakeupNetworkSelector}, does not choose this network, Wi-Fi should not be enabled.
- */
- @Test
- public void wifiNotEnabled_userNearSavedNetworkButNotSelected() {
- when(mWifiManager.getConfiguredNetworks())
- .thenReturn(
- Lists.newArrayList(
- mSavedWifiConfiguration, mSavedWifiConfigurationExternal));
- when(mWifiManager.getScanResults()).thenReturn(Lists.newArrayList(SAVED_SCAN_RESULT));
- when(mWifiWakeupNetworkSelector.selectNetwork(anyMap(), anyList())).thenReturn(null);
- when(mWifiManager.getWifiState()).thenReturn(WifiManager.WIFI_STATE_DISABLED);
-
- mBroadcastIntentTestHelper.sendConfiguredNetworksChanged();
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
-
- verify(mWifiManager, never()).setWifiEnabled(true);
- }
-
- /**
- * If Wi-Fi is disabled and a saved network is in the scan list, Wi-Fi should not be enabled if
- * the user has not enabled the wifi wakeup feature.
- */
- @Test
- public void wifiNotEnabled_userDisablesWifiWakeupFeature() {
- Settings.Global.putInt(mContentResolver, Settings.Global.WIFI_WAKEUP_ENABLED, 0);
- when(mWifiManager.getConfiguredNetworks())
- .thenReturn(
- Lists.newArrayList(
- mSavedWifiConfiguration, mSavedWifiConfigurationExternal));
- when(mWifiManager.getScanResults()).thenReturn(Lists.newArrayList(SAVED_SCAN_RESULT));
- when(mWifiManager.getWifiState()).thenReturn(WifiManager.WIFI_STATE_DISABLED);
-
- mWifiWakeupController.mContentObserver.onChange(true);
- mBroadcastIntentTestHelper.sendConfiguredNetworksChanged();
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
-
- verifyZeroInteractions(mWifiWakeupNetworkSelector);
- verify(mWifiManager, never()).setWifiEnabled(true);
- }
-
- /**
- * If Wi-Fi is disabled and a saved network is in the scan list, Wi-Fi should not be enabled if
- * the user is in airplane mode.
- */
- @Test
- public void wifiNotEnabled_userIsInAirplaneMode() {
- Settings.Global.putInt(mContentResolver, Settings.Global.AIRPLANE_MODE_ON, 1);
- when(mWifiManager.getConfiguredNetworks())
- .thenReturn(
- Lists.newArrayList(
- mSavedWifiConfiguration, mSavedWifiConfigurationExternal));
- when(mWifiManager.getScanResults()).thenReturn(Lists.newArrayList(SAVED_SCAN_RESULT));
- when(mWifiManager.getWifiState()).thenReturn(WifiManager.WIFI_STATE_DISABLED);
-
- mWifiWakeupController.mContentObserver.onChange(true);
- mBroadcastIntentTestHelper.sendConfiguredNetworksChanged();
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
-
- verifyZeroInteractions(mWifiWakeupNetworkSelector);
- verify(mWifiManager, never()).setWifiEnabled(true);
- }
-
- /**
- * If Wi-Fi is disabled and a saved network is in the scan list, Wi-Fi should not be enabled if
- * the wifi AP state is not disabled.
- */
- @Test
- public void wifiNotEnabled_wifiApStateIsNotDisabled() {
- when(mWifiManager.getConfiguredNetworks())
- .thenReturn(
- Lists.newArrayList(
- mSavedWifiConfiguration, mSavedWifiConfigurationExternal));
- when(mWifiManager.getScanResults()).thenReturn(Lists.newArrayList(SAVED_SCAN_RESULT));
- when(mWifiManager.getWifiState()).thenReturn(WifiManager.WIFI_STATE_DISABLED);
- when(mWifiManager.getWifiApState()).thenReturn(WifiManager.WIFI_AP_STATE_ENABLED);
-
- mWifiWakeupController.mContentObserver.onChange(true);
- mBroadcastIntentTestHelper.sendConfiguredNetworksChanged();
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendWifiApStateChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
-
- verifyZeroInteractions(mWifiWakeupNetworkSelector);
- verify(mWifiManager, never()).setWifiEnabled(true);
- }
-
- /**
- * If Wi-Fi is disabled and a saved network is in the scan list, Wi-Fi should not be enabled if
- * power saving mode is on.
- */
- @Test
- public void wifiNotEnabled_userInPowerSaveMode() {
- when(mWifiManager.getConfiguredNetworks())
- .thenReturn(
- Lists.newArrayList(
- mSavedWifiConfiguration, mSavedWifiConfigurationExternal));
- when(mWifiManager.getScanResults()).thenReturn(Lists.newArrayList(SAVED_SCAN_RESULT));
- when(mWifiManager.getWifiState()).thenReturn(WifiManager.WIFI_STATE_DISABLED);
- when(mPowerManager.isPowerSaveMode()).thenReturn(true);
-
- mWifiWakeupController.mContentObserver.onChange(true);
- mBroadcastIntentTestHelper.sendPowerSaveModeChanged();
- mBroadcastIntentTestHelper.sendConfiguredNetworksChanged();
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendWifiApStateChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
-
- verifyZeroInteractions(mWifiWakeupNetworkSelector);
- verify(mWifiManager, never()).setWifiEnabled(true);
- }
-
- /**
- * If Wi-Fi is disabled when a saved network is the scan list, Wi-Fi should not be enabled no
- * matter how many scans are performed that include the saved network.
- */
- @Test
- public void wifiNotEnabled_userDisablesWifiNearSavedNetwork_thenDoesNotLeave() {
- when(mWifiManager.getConfiguredNetworks())
- .thenReturn(
- Lists.newArrayList(
- mSavedWifiConfiguration, mSavedWifiConfigurationExternal));
- when(mWifiManager.getScanResults()).thenReturn(Lists.newArrayList(SAVED_SCAN_RESULT));
-
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendConfiguredNetworksChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
-
- verifyZeroInteractions(mWifiWakeupNetworkSelector);
- verify(mWifiManager, never()).setWifiEnabled(true);
- }
-
- /**
- * If Wi-Fi is disabled when a saved network is in the scan list, and then that saved network is
- * removed, Wi-Fi is not enabled even if the user leaves range of that network and returns.
- */
- @Test
- public void wifiNotEnabled_userDisablesWifiNearSavedNetwork_thenRemovesNetwork_thenStays() {
- when(mWifiManager.getConfiguredNetworks())
- .thenReturn(
- Lists.newArrayList(mSavedWifiConfiguration),
- Lists.<WifiConfiguration>newArrayList());
- when(mWifiManager.getScanResults())
- .thenReturn(Lists.newArrayList(SAVED_SCAN_RESULT))
- .thenReturn(Lists.<ScanResult>newArrayList())
- .thenReturn(Lists.newArrayList(SAVED_SCAN_RESULT));
- when(mWifiWakeupNetworkSelector.selectNetwork(anyMap(), anyList())).thenReturn(null);
- when(mWifiManager.getWifiState())
- .thenReturn(WifiManager.WIFI_STATE_ENABLED, WifiManager.WIFI_STATE_DISABLED);
-
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendConfiguredNetworksChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendConfiguredNetworksChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
-
- verify(mWifiManager, never()).setWifiEnabled(true);
- }
-
- /**
- * If Wi-Fi is disabled when 2 saved networks are in the scan list, and then a scan result comes
- * in with only 1 saved network 3x, Wi-Fi should not be enabled.
- */
- @Test
- public void wifiNotEnabled_userDisablesWifiNear2SavedNetworks_thenLeavesRangeOfOneOfThem() {
- when(mWifiManager.getConfiguredNetworks())
- .thenReturn(Lists.newArrayList(mSavedWifiConfiguration, mSavedWifiConfiguration2));
- when(mWifiManager.getScanResults())
- .thenReturn(
- Lists.newArrayList(SAVED_SCAN_RESULT, SAVED_SCAN_RESULT2),
- Lists.newArrayList(SAVED_SCAN_RESULT));
- when(mWifiManager.getWifiState())
- .thenReturn(WifiManager.WIFI_STATE_ENABLED, WifiManager.WIFI_STATE_DISABLED);
-
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendConfiguredNetworksChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
-
- verifyZeroInteractions(mWifiWakeupNetworkSelector);
- verify(mWifiManager, never()).setWifiEnabled(true);
- }
-
- @Test
- public void logWifiEnabled_autopilotEnabledWifi() {
- WifiConfiguration noInternetAccessNetwork = new WifiConfiguration();
- noInternetAccessNetwork.SSID = "Bof";
- when(mRoboCompatUtil.hasNoInternetAccess(noInternetAccessNetwork)).thenReturn(true);
-
- WifiConfiguration noInternetAccessExpectedNetwork = new WifiConfiguration();
- noInternetAccessExpectedNetwork.SSID = "fri";
- when(mRoboCompatUtil.isNoInternetAccessExpected(noInternetAccessExpectedNetwork))
- .thenReturn(true);
-
- WifiConfiguration disabledNetwork = new WifiConfiguration();
- disabledNetwork.SSID = "fleu";
- disabledNetwork.status = Status.DISABLED;
-
- WifiConfiguration noSsidNetwork = new WifiConfiguration();
-
- when(mWifiManager.getConfiguredNetworks())
- .thenReturn(
- Lists.newArrayList(
- mSavedWifiConfiguration,
- mSavedWifiConfiguration2,
- mSavedWifiConfigurationExternal,
- mSavedWifiConfigurationWideArea,
- noInternetAccessNetwork,
- noInternetAccessExpectedNetwork,
- disabledNetwork,
- noSsidNetwork));
- when(mWifiManager.getScanResults()).thenReturn(Lists.newArrayList(SAVED_SCAN_RESULT));
- when(mWifiWakeupNetworkSelector.selectNetwork(anyMap(), anyList()))
- .thenReturn(mSavedWifiConfiguration);
- when(mWifiManager.getWifiState())
- .thenReturn(WifiManager.WIFI_STATE_DISABLED, WifiManager.WIFI_STATE_ENABLED);
-
- mBroadcastIntentTestHelper.sendConfiguredNetworksChanged();
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- mBroadcastIntentTestHelper.sendScanResultsAvailable();
- mBroadcastIntentTestHelper.sendWifiStateChanged();
-
- verify(mWifiManager).setWifiEnabled(true);
- }
-
- @Test
- public void logWifiEnabled_userEnabledWifi() {
- when(mWifiManager.getConfiguredNetworks())
- .thenReturn(Lists.newArrayList(mSavedWifiConfiguration, mSavedWifiConfiguration2));
- when(mWifiManager.getWifiState()).thenReturn(WifiManager.WIFI_STATE_ENABLED);
-
- mBroadcastIntentTestHelper.sendConfiguredNetworksChanged();
- mBroadcastIntentTestHelper.sendWifiStateChanged();
- }
-
- /** Test dump() does not crash. */
- @Test
- public void testDump() {
- StringWriter stringWriter = new StringWriter();
- mWifiWakeupController.dump(
- new FileDescriptor(), new PrintWriter(stringWriter), new String[0]);
- }
-}