Merge "WifiManagerTest: Check if scan is currently available" into pi-dev
diff --git a/tests/cts/net/src/android/net/wifi/cts/WifiManagerTest.java b/tests/cts/net/src/android/net/wifi/cts/WifiManagerTest.java
index 89daca2..292ff0f 100644
--- a/tests/cts/net/src/android/net/wifi/cts/WifiManagerTest.java
+++ b/tests/cts/net/src/android/net/wifi/cts/WifiManagerTest.java
@@ -201,6 +201,25 @@
}
}
+ // Get the current scan status from sticky broadcast.
+ private boolean isScanCurrentlyAvailable() {
+ boolean isAvailable = false;
+ IntentFilter intentFilter = new IntentFilter();
+ intentFilter.addAction(WifiManager.WIFI_SCAN_AVAILABLE);
+ Intent intent = mContext.registerReceiver(null, intentFilter);
+ assertNotNull(intent);
+ if (intent.getAction().equals(WifiManager.WIFI_SCAN_AVAILABLE)) {
+ int state = intent.getIntExtra(
+ WifiManager.EXTRA_SCAN_AVAILABLE, WifiManager.WIFI_STATE_UNKNOWN);
+ if (state == WifiManager.WIFI_STATE_ENABLED) {
+ isAvailable = true;
+ } else if (state == WifiManager.WIFI_STATE_DISABLED) {
+ isAvailable = false;
+ }
+ }
+ return isAvailable;
+ }
+
private void startScan() throws Exception {
synchronized (mMySync) {
mMySync.expectedState = STATE_SCANNING;
@@ -245,8 +264,7 @@
* 1.reconnect
* 2.reassociate
* 3.disconnect
- * 4.pingSupplicant
- * 5.satrtScan
+ * 4.createWifiLock
*/
public void testWifiManagerActions() throws Exception {
if (!WifiFeature.isWifiSupported(getContext())) {
@@ -256,10 +274,32 @@
assertTrue(mWifiManager.reconnect());
assertTrue(mWifiManager.reassociate());
assertTrue(mWifiManager.disconnect());
+ final String TAG = "Test";
+ assertNotNull(mWifiManager.createWifiLock(TAG));
+ assertNotNull(mWifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL, TAG));
+ }
+
+ /**
+ * Test wifi scanning when location scan is turned off.
+ */
+ public void testWifiManagerScanWhenWifiOffLocationTurnedOn() throws Exception {
+ if (!WifiFeature.isWifiSupported(getContext())) {
+ // skip the test if WiFi is not supported
+ return;
+ }
+ if (!hasLocationFeature()) {
+ Log.d(TAG, "Skipping test as location is not supported");
+ return;
+ }
+ if (!isLocationEnabled()) {
+ fail("Please enable location for this test - since Marshmallow WiFi scan results are"
+ + " empty when location is disabled!");
+ }
+ assertTrue(mWifiManager.isScanAlwaysAvailable());
setWifiEnabled(false);
- startScan();
Thread.sleep(DURATION);
- if (mWifiManager.isScanAlwaysAvailable()) {
+ startScan();
+ if (isScanCurrentlyAvailable()) {
// Make sure at least one AP is found.
assertNotNull("mScanResult should not be null!", mScanResults);
assertFalse("empty scan results!", mScanResults.isEmpty());