summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorRandy Pan <zpan@google.com>2016-09-22 23:42:42 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2016-09-22 23:42:42 +0000
commit7d7c671b6dea0c8f947afdf9300548b797db4483 (patch)
tree1b95e1d70d01364e6d90f9cd0feab77742c009ce /tests
parentd76a14997a969ea44daa47756dcc8f83aee96935 (diff)
parent8cf5bfbee9d70dac8c83729a979bd7208a47d44d (diff)
downloadandroid_frameworks_opt_net_wifi-7d7c671b6dea0c8f947afdf9300548b797db4483.tar.gz
android_frameworks_opt_net_wifi-7d7c671b6dea0c8f947afdf9300548b797db4483.tar.bz2
android_frameworks_opt_net_wifi-7d7c671b6dea0c8f947afdf9300548b797db4483.zip
Merge "WCM: forced connectivity scan" into nyc-mr1-dev
Diffstat (limited to 'tests')
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiConnectivityManagerTest.java58
1 files changed, 53 insertions, 5 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiConnectivityManagerTest.java b/tests/wifitests/src/com/android/server/wifi/WifiConnectivityManagerTest.java
index b1f88ecc9..281ffa163 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiConnectivityManagerTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiConnectivityManagerTest.java
@@ -33,6 +33,7 @@ import android.net.wifi.WifiManager;
import android.net.wifi.WifiScanner;
import android.net.wifi.WifiScanner.PnoScanListener;
import android.net.wifi.WifiScanner.PnoSettings;
+import android.net.wifi.WifiScanner.ScanData;
import android.net.wifi.WifiScanner.ScanListener;
import android.net.wifi.WifiScanner.ScanSettings;
import android.net.wifi.WifiSsid;
@@ -71,6 +72,7 @@ public class WifiConnectivityManagerTest {
mWifiStateMachine = mockWifiStateMachine();
mWifiConfigManager = mockWifiConfigManager();
mWifiInfo = getWifiInfo();
+ mScanData = mockScanData();
mWifiScanner = mockWifiScanner();
mWifiQNS = mockWifiQualifiedNetworkSelector();
mWifiConnectivityManager = new WifiConnectivityManager(mContext, mWifiStateMachine,
@@ -96,6 +98,7 @@ public class WifiConnectivityManagerTest {
private WifiQualifiedNetworkSelector mWifiQNS;
private WifiStateMachine mWifiStateMachine;
private WifiScanner mWifiScanner;
+ private ScanData mScanData;
private WifiConfigManager mWifiConfigManager;
private WifiInfo mWifiInfo;
private Clock mClock = mock(Clock.class);
@@ -128,6 +131,14 @@ public class WifiConnectivityManagerTest {
return context;
}
+ ScanData mockScanData() {
+ ScanData scanData = mock(ScanData.class);
+
+ when(scanData.isAllChannelsScanned()).thenReturn(true);
+
+ return scanData;
+ }
+
WifiScanner mockWifiScanner() {
WifiScanner scanner = mock(WifiScanner.class);
ArgumentCaptor<ScanListener> allSingleScanListenerCaptor =
@@ -135,9 +146,8 @@ public class WifiConnectivityManagerTest {
doNothing().when(scanner).registerScanListener(allSingleScanListenerCaptor.capture());
- // dummy scan results. QNS PeriodicScanListener bulids scanDetails from
- // the fullScanResult and doesn't really use results
- final WifiScanner.ScanData[] scanDatas = new WifiScanner.ScanData[1];
+ ScanData[] scanDatas = new ScanData[1];
+ scanDatas[0] = mScanData;
// do a synchronous answer for the ScanListener callbacks
doAnswer(new AnswerWithArguments() {
@@ -756,8 +766,9 @@ public class WifiConnectivityManagerTest {
currentTimeStamp += 2000;
when(mClock.elapsedRealtime()).thenReturn(currentTimeStamp);
- // Force a connectivity scan
- mWifiConnectivityManager.forceConnectivityScan();
+ // Allow untrusted networks so WifiConnectivityManager starts a periodic scan
+ // immediately.
+ mWifiConnectivityManager.setUntrustedConnectionAllowed(true);
// Get the second periodic scan actual time stamp. Note, this scan is not
// started from the AlarmManager.
@@ -944,4 +955,41 @@ public class WifiConnectivityManagerTest {
verify(mWifiStateMachine).autoConnectToNetwork(
CANDIDATE_NETWORK_ID, CANDIDATE_BSSID);
}
+
+ /**
+ * Verify that a forced connectivity scan waits for full band scan
+ * results.
+ *
+ * Expected behavior: WifiConnectivityManager doesn't invoke
+ * WifiStateMachine.autoConnectToNetwork() when full band scan
+ * results are not available.
+ */
+ @Test
+ public void waitForFullBandScanResults() {
+ // Set WiFi to connected state.
+ mWifiConnectivityManager.handleConnectionStateChanged(
+ WifiConnectivityManager.WIFI_STATE_CONNECTED);
+
+ // Set up as partial scan results.
+ when(mScanData.isAllChannelsScanned()).thenReturn(false);
+
+ // Force a connectivity scan which enables WifiConnectivityManager
+ // to wait for full band scan results.
+ mWifiConnectivityManager.forceConnectivityScan();
+
+ // No roaming because no full band scan results.
+ verify(mWifiStateMachine, times(0)).autoConnectToNetwork(
+ CANDIDATE_NETWORK_ID, CANDIDATE_BSSID);
+
+ // Set up as full band scan results.
+ when(mScanData.isAllChannelsScanned()).thenReturn(true);
+
+ // Force a connectivity scan which enables WifiConnectivityManager
+ // to wait for full band scan results.
+ mWifiConnectivityManager.forceConnectivityScan();
+
+ // Roaming attempt because full band scan results are available.
+ verify(mWifiStateMachine).autoConnectToNetwork(
+ CANDIDATE_NETWORK_ID, CANDIDATE_BSSID);
+ }
}