diff options
author | Roshan Pius <rpius@google.com> | 2016-03-04 13:14:49 -0800 |
---|---|---|
committer | Roshan Pius <rpius@google.com> | 2016-03-04 16:05:46 -0800 |
commit | 3d995b8a3a508e957e3dac2e508956020cd9abfe (patch) | |
tree | 378dec1ae0c82d327a4b7573481f064c7ecc6d24 /tests | |
parent | f8cd000f751b6e886cdcfd254fee34ed2dc4109b (diff) |
Send list of hidden networkID for supplicant scan
Since we disable all the networks in wpa_supplicant (as of b/26984166),
we need to explicitly send the list of hidden ssid's to scan.
1. Use the 'scan_id' override to send a lit of hidden networkId's to
supplicant.
2. Add a new set of hidden networkId's in ConfigurationMap which can be
used as parameter for the above.
3. Add a test to start scan with a hidden network added.
BUG: 27471630
TEST: Verfied that we auto-connect to a hidden ssid.
TEST: `runtest frameworks-wifi`
Change-Id: I8aea09d1ec2f24310959a558e8b12d31a26d179c
Diffstat (limited to 'tests')
3 files changed, 48 insertions, 23 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/BaseWifiScannerImplTest.java b/tests/wifitests/src/com/android/server/wifi/BaseWifiScannerImplTest.java index d3f25b452..9f65f44ec 100644 --- a/tests/wifitests/src/com/android/server/wifi/BaseWifiScannerImplTest.java +++ b/tests/wifitests/src/com/android/server/wifi/BaseWifiScannerImplTest.java @@ -148,7 +148,7 @@ public abstract class BaseWifiScannerImplTest { WifiNative.ScanEventHandler eventHandler2 = mock(WifiNative.ScanEventHandler.class); // scan start succeeds - when(mWifiNative.scan(any(Set.class))).thenReturn(true); + when(mWifiNative.scan(any(Set.class), any(Set.class))).thenReturn(true); assertTrue(mScanner.startSingleScan(settings, eventHandler)); assertFalse("second scan while first scan running should fail immediately", @@ -172,7 +172,7 @@ public abstract class BaseWifiScannerImplTest { InOrder order = inOrder(eventHandler, mWifiNative); // scan fails - when(mWifiNative.scan(any(Set.class))).thenReturn(false); + when(mWifiNative.scan(any(Set.class), any(Set.class))).thenReturn(false); // start scan assertTrue(mScanner.startSingleScan(settings, eventHandler)); @@ -222,7 +222,7 @@ public abstract class BaseWifiScannerImplTest { InOrder order = inOrder(eventHandler, mWifiNative); // scans succeed - when(mWifiNative.scan(any(Set.class))).thenReturn(true); + when(mWifiNative.scan(any(Set.class), any(Set.class))).thenReturn(true); // start first scan assertTrue(mScanner.startSingleScan(settings, eventHandler)); @@ -268,7 +268,7 @@ public abstract class BaseWifiScannerImplTest { InOrder order = inOrder(eventHandler, mWifiNative); // scan succeeds - when(mWifiNative.scan(any(Set.class))).thenReturn(true); + when(mWifiNative.scan(any(Set.class), any(Set.class))).thenReturn(true); // start scan assertTrue(mScanner.startSingleScan(settings, eventHandler)); @@ -281,7 +281,7 @@ public abstract class BaseWifiScannerImplTest { protected void expectSuccessfulSingleScan(InOrder order, WifiNative.ScanEventHandler eventHandler, Set<Integer> expectedScan, ScanResults results, boolean expectFullResults) { - order.verify(mWifiNative).scan(eq(expectedScan)); + order.verify(mWifiNative).scan(eq(expectedScan), any(Set.class)); when(mWifiNative.getScanResults()).thenReturn(results.getScanDetailArrayList()); diff --git a/tests/wifitests/src/com/android/server/wifi/SupplicantWifiScannerTest.java b/tests/wifitests/src/com/android/server/wifi/SupplicantWifiScannerTest.java index 3e0aade33..16f169ade 100644 --- a/tests/wifitests/src/com/android/server/wifi/SupplicantWifiScannerTest.java +++ b/tests/wifitests/src/com/android/server/wifi/SupplicantWifiScannerTest.java @@ -329,7 +329,7 @@ public class SupplicantWifiScannerTest extends BaseWifiScannerImplTest { InOrder order = inOrder(eventHandler, mWifiNative); // All scans fail - when(mWifiNative.scan(any(Set.class))).thenReturn(false); + when(mWifiNative.scan(any(Set.class), any(Set.class))).thenReturn(false); // Start scan mScanner.startBatchedScan(settings, eventHandler); @@ -337,7 +337,7 @@ public class SupplicantWifiScannerTest extends BaseWifiScannerImplTest { assertEquals("alarm for next period", 1, mAlarmManager.getPendingCount()); expectFailedScanStart(order, eventHandler, - expectedBandScanFreqs(WifiScanner.WIFI_BAND_24_GHZ)); + expectedBandScanFreqs(WifiScanner.WIFI_BAND_24_GHZ), null); // Fire alarm to start next scan dispatchOnlyAlarm(); @@ -345,7 +345,7 @@ public class SupplicantWifiScannerTest extends BaseWifiScannerImplTest { assertEquals("alarm for next period", 1, mAlarmManager.getPendingCount()); expectFailedScanStart(order, eventHandler, - expectedBandScanFreqs(WifiScanner.WIFI_BAND_24_GHZ)); + expectedBandScanFreqs(WifiScanner.WIFI_BAND_24_GHZ), null); verifyNoMoreInteractions(eventHandler); } @@ -364,7 +364,7 @@ public class SupplicantWifiScannerTest extends BaseWifiScannerImplTest { InOrder order = inOrder(eventHandler, mWifiNative); // All scan starts succeed - when(mWifiNative.scan(any(Set.class))).thenReturn(true); + when(mWifiNative.scan(any(Set.class), any(Set.class))).thenReturn(true); // Start scan mScanner.startBatchedScan(settings, eventHandler); @@ -372,7 +372,7 @@ public class SupplicantWifiScannerTest extends BaseWifiScannerImplTest { assertEquals("alarm for next period", 1, mAlarmManager.getPendingCount()); expectFailedEventScan(order, eventHandler, - expectedBandScanFreqs(WifiScanner.WIFI_BAND_24_GHZ)); + expectedBandScanFreqs(WifiScanner.WIFI_BAND_24_GHZ), null); // Fire alarm to start next scan dispatchOnlyAlarm(); @@ -380,7 +380,7 @@ public class SupplicantWifiScannerTest extends BaseWifiScannerImplTest { assertEquals("alarm for next period", 1, mAlarmManager.getPendingCount()); expectFailedEventScan(order, eventHandler, - expectedBandScanFreqs(WifiScanner.WIFI_BAND_24_GHZ)); + expectedBandScanFreqs(WifiScanner.WIFI_BAND_24_GHZ), null); verifyNoMoreInteractions(eventHandler); } @@ -411,7 +411,7 @@ public class SupplicantWifiScannerTest extends BaseWifiScannerImplTest { InOrder order = inOrder(eventHandler, mWifiNative); // All scan starts succeed - when(mWifiNative.scan(any(Set.class))).thenReturn(true); + when(mWifiNative.scan(any(Set.class), any(Set.class))).thenReturn(true); // Start scan mScanner.startBatchedScan(settings, eventHandler); @@ -466,7 +466,7 @@ public class SupplicantWifiScannerTest extends BaseWifiScannerImplTest { InOrder order = inOrder(eventHandler, mWifiNative); // All scan starts succeed - when(mWifiNative.scan(any(Set.class))).thenReturn(true); + when(mWifiNative.scan(any(Set.class), any(Set.class))).thenReturn(true); // Start scan mScanner.startBatchedScan(settings, eventHandler); @@ -476,7 +476,7 @@ public class SupplicantWifiScannerTest extends BaseWifiScannerImplTest { // alarm for next period assertEquals(1, mAlarmManager.getPendingCount()); - order.verify(mWifiNative).scan(eq(expectedPeriods[0].getScanFreqs())); + order.verify(mWifiNative).scan(eq(expectedPeriods[0].getScanFreqs()), any(Set.class)); mScanner.pauseBatchedScan(); @@ -542,7 +542,7 @@ public class SupplicantWifiScannerTest extends BaseWifiScannerImplTest { InOrder order = inOrder(eventHandler, mWifiNative); // All scan starts succeed - when(mWifiNative.scan(any(Set.class))).thenReturn(true); + when(mWifiNative.scan(any(Set.class), any(Set.class))).thenReturn(true); // Start scan mScanner.startBatchedScan(settings, eventHandler); @@ -581,7 +581,7 @@ public class SupplicantWifiScannerTest extends BaseWifiScannerImplTest { InOrder order = inOrder(eventHandler, mWifiNative); // All scans succeed - when(mWifiNative.scan(any(Set.class))).thenReturn(true); + when(mWifiNative.scan(any(Set.class), any(Set.class))).thenReturn(true); // Start scan mScanner.startBatchedScan(settings, eventHandler); @@ -641,7 +641,7 @@ public class SupplicantWifiScannerTest extends BaseWifiScannerImplTest { ArrayList<ScanDetail> nativeResults, WifiScanner.ScanData[] expectedScanResults, ScanResult[] fullResults, int periodId) { // Verify scan started - order.verify(mWifiNative).scan(eq(scanFreqs)); + order.verify(mWifiNative).scan(eq(scanFreqs), any(Set.class)); // Setup scan results when(mWifiNative.getScanResults()).thenReturn(nativeResults); @@ -665,17 +665,17 @@ public class SupplicantWifiScannerTest extends BaseWifiScannerImplTest { } private void expectFailedScanStart(InOrder order, WifiNative.ScanEventHandler eventHandler, - Set<Integer> scanFreqs) { + Set<Integer> scanFreqs, Set<Integer> networkIds) { // Verify scan started - order.verify(mWifiNative).scan(eq(scanFreqs)); + order.verify(mWifiNative).scan(eq(scanFreqs), eq(networkIds)); // TODO: verify failure event } private void expectFailedEventScan(InOrder order, WifiNative.ScanEventHandler eventHandler, - Set<Integer> scanFreqs) { + Set<Integer> scanFreqs, Set<Integer> networkIds) { // Verify scan started - order.verify(mWifiNative).scan(eq(scanFreqs)); + order.verify(mWifiNative).scan(eq(scanFreqs), eq(networkIds)); // Notify scan has failed mWifiMonitor.sendMessage(mWifiNative.getInterfaceName(), WifiMonitor.SCAN_FAILED_EVENT); diff --git a/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java b/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java index af19a3829..f868c522b 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java @@ -82,7 +82,6 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; -import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import java.io.ByteArrayOutputStream; @@ -466,6 +465,10 @@ public class WifiStateMachineTest { } private void addNetworkAndVerifySuccess() throws Exception { + addNetworkAndVerifySuccess(false); + } + + private void addNetworkAndVerifySuccess(boolean isHidden) throws Exception { loadComponents(); final HashMap<String, String> nameToValue = new HashMap<String, String>(); @@ -518,12 +521,16 @@ public class WifiStateMachineTest { WifiConfiguration config = new WifiConfiguration(); config.SSID = sSSID; config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); + config.hiddenSSID = isHidden; mLooper.startAutoDispatch(); mWsm.syncAddOrUpdateNetwork(mWsmAsyncChannel, config); mLooper.stopAutoDispatch(); verify(mWifiNative).addNetwork(); verify(mWifiNative).setNetworkVariable(0, "ssid", sHexSSID); + if (isHidden) { + verify(mWifiNative).setNetworkVariable(0, "scan_ssid", Integer.toString(1)); + } mLooper.startAutoDispatch(); List<WifiConfiguration> configs = mWsm.syncGetConfiguredNetworks(-1, mWsmAsyncChannel); @@ -744,7 +751,25 @@ public class WifiStateMachineTest { mWsm.startScan(-1, 0, null, null); mLooper.dispatchAll(); - verify(mWifiNative).scan(null); + verify(mWifiNative).scan(null, mWifiConfigManager.getHiddenConfiguredNetworkIds()); + + when(mWifiNative.getScanResults()).thenReturn(getMockScanResults()); + mWsm.sendMessage(WifiMonitor.SCAN_RESULTS_EVENT); + mLooper.dispatchAll(); + + List<ScanResult> results = mWsm.syncGetScanResultsList(); + assertEquals(8, results.size()); + } + + @Test + public void scanWithHiddenNetwork() throws Exception { + addNetworkAndVerifySuccess(true); + + mWsm.setOperationalMode(WifiStateMachine.CONNECT_MODE); + mWsm.startScan(-1, 0, null, null); + mLooper.dispatchAll(); + + verify(mWifiNative).scan(null, mWifiConfigManager.getHiddenConfiguredNetworkIds()); when(mWifiNative.getScanResults()).thenReturn(getMockScanResults()); mWsm.sendMessage(WifiMonitor.SCAN_RESULTS_EVENT); |