diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2017-07-13 18:47:29 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-07-13 18:47:29 +0000 |
commit | d9730aa504ed133340267051f35743d102f192df (patch) | |
tree | 6c1d5cd03029242e5990f4eefdf70f4930f46328 /tests | |
parent | ceaba988f7c8febc7404262002dd4e886e0eae16 (diff) | |
parent | 375a4fbced9ea86e5b30b457b6f324c63b937dda (diff) |
Merge "hotspot2: PasspointNetworkEvaluator: update network candidate for current network"
Diffstat (limited to 'tests')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointNetworkEvaluatorTest.java | 68 |
1 files changed, 59 insertions, 9 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointNetworkEvaluatorTest.java b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointNetworkEvaluatorTest.java index 9f61ca09c..7ddddd250 100644 --- a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointNetworkEvaluatorTest.java +++ b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointNetworkEvaluatorTest.java @@ -59,6 +59,8 @@ public class PasspointNetworkEvaluatorTest { private static final int TEST_NETWORK_ID = 1; private static final String TEST_SSID1 = "ssid1"; private static final String TEST_SSID2 = "ssid2"; + private static final String TEST_BSSID1 = "01:23:45:56:78:9a"; + private static final String TEST_BSSID2 = "23:12:34:90:81:12"; private static final String TEST_FQDN1 = "test1.com"; private static final String TEST_FQDN2 = "test2.com"; private static final WifiConfiguration TEST_CONFIG1 = generateWifiConfig(TEST_FQDN1); @@ -107,14 +109,18 @@ public class PasspointNetworkEvaluatorTest { * @param rssiLevel The RSSI level associated with the scan * @return {@link ScanDetail} */ - private static ScanDetail generateScanDetail(String ssid) { + private static ScanDetail generateScanDetail(String ssid, String bssid) { NetworkDetail networkDetail = mock(NetworkDetail.class); when(networkDetail.isInterworking()).thenReturn(true); when(networkDetail.getAnt()).thenReturn(NetworkDetail.Ant.FreePublic); ScanDetail scanDetail = mock(ScanDetail.class); + ScanResult scanResult = new ScanResult(); + scanResult.SSID = ssid; + scanResult.BSSID = bssid; when(scanDetail.getSSID()).thenReturn(ssid); - when(scanDetail.getScanResult()).thenReturn(new ScanResult()); + when(scanDetail.getBSSIDString()).thenReturn(bssid); + when(scanDetail.getScanResult()).thenReturn(scanResult); when(scanDetail.getNetworkDetail()).thenReturn(networkDetail); return scanDetail; } @@ -138,7 +144,8 @@ public class PasspointNetworkEvaluatorTest { @Test public void evaluateScansWithNoMatch() throws Exception { List<ScanDetail> scanDetails = Arrays.asList(new ScanDetail[] { - generateScanDetail(TEST_SSID1), generateScanDetail(TEST_SSID2)}); + generateScanDetail(TEST_SSID1, TEST_BSSID1), + generateScanDetail(TEST_SSID2, TEST_BSSID2)}); List<Pair<ScanDetail, WifiConfiguration>> connectableNetworks = new ArrayList<>(); when(mPasspointManager.matchProvider(any(ScanResult.class))).thenReturn(null); assertEquals(null, mEvaluator.evaluateNetworks( @@ -177,7 +184,8 @@ public class PasspointNetworkEvaluatorTest { @Test public void evaluateScansWithNetworkMatchingHomeProvider() throws Exception { List<ScanDetail> scanDetails = Arrays.asList(new ScanDetail[] { - generateScanDetail(TEST_SSID1), generateScanDetail(TEST_SSID2)}); + generateScanDetail(TEST_SSID1, TEST_BSSID1), + generateScanDetail(TEST_SSID2, TEST_BSSID2)}); // Setup matching providers for ScanDetail with TEST_SSID1. Pair<PasspointProvider, PasspointMatch> homeProvider = Pair.create( @@ -219,7 +227,8 @@ public class PasspointNetworkEvaluatorTest { @Test public void evaluateScansWithNetworkMatchingRoamingProvider() throws Exception { List<ScanDetail> scanDetails = Arrays.asList(new ScanDetail[] { - generateScanDetail(TEST_SSID1), generateScanDetail(TEST_SSID2)}); + generateScanDetail(TEST_SSID1, TEST_BSSID1), + generateScanDetail(TEST_SSID2, TEST_BSSID2)}); // Setup matching providers for ScanDetail with TEST_SSID1. Pair<PasspointProvider, PasspointMatch> roamingProvider = Pair.create( @@ -261,7 +270,8 @@ public class PasspointNetworkEvaluatorTest { @Test public void evaluateScansWithHomeProviderNewtorkAndRoamingProviderNetwork() throws Exception { List<ScanDetail> scanDetails = Arrays.asList(new ScanDetail[] { - generateScanDetail(TEST_SSID1), generateScanDetail(TEST_SSID2)}); + generateScanDetail(TEST_SSID1, TEST_BSSID1), + generateScanDetail(TEST_SSID2, TEST_BSSID2)}); // Setup matching providers for ScanDetail with TEST_SSID1. Pair<PasspointProvider, PasspointMatch> homeProvider = Pair.create( @@ -305,7 +315,8 @@ public class PasspointNetworkEvaluatorTest { @Test public void evaluateScansWithActiveNetworkMatchingHomeProvider() throws Exception { List<ScanDetail> scanDetails = Arrays.asList(new ScanDetail[] { - generateScanDetail(TEST_SSID1), generateScanDetail(TEST_SSID2)}); + generateScanDetail(TEST_SSID1, TEST_BSSID1), + generateScanDetail(TEST_SSID2, TEST_BSSID2)}); // Setup matching providers for both ScanDetail. Pair<PasspointProvider, PasspointMatch> homeProvider = Pair.create( @@ -315,7 +326,7 @@ public class PasspointNetworkEvaluatorTest { WifiConfiguration currentNetwork = new WifiConfiguration(); currentNetwork.networkId = TEST_NETWORK_ID; currentNetwork.SSID = ScanResultUtil.createQuotedSSID(TEST_SSID2); - String currentBssid = "12:23:34:45:12:0F"; + String currentBssid = TEST_BSSID2; // Returning the same matching provider for both ScanDetail. List<Pair<ScanDetail, WifiConfiguration>> connectableNetworks = new ArrayList<>(); @@ -344,7 +355,7 @@ public class PasspointNetworkEvaluatorTest { public void evaluateScanMatchingSIMProviderWithoutSIMCard() throws Exception { // Setup ScanDetail and match providers. List<ScanDetail> scanDetails = Arrays.asList(new ScanDetail[] { - generateScanDetail(TEST_SSID1)}); + generateScanDetail(TEST_SSID1, TEST_BSSID1)}); PasspointProvider testProvider = mock(PasspointProvider.class); Pair<PasspointProvider, PasspointMatch> homeProvider = Pair.create( testProvider, PasspointMatch.HomeProvider); @@ -357,6 +368,45 @@ public class PasspointNetworkEvaluatorTest { scanDetails, null, null, false, false, connectableNetworks)); assertTrue(connectableNetworks.isEmpty()); verify(testProvider, never()).getWifiConfig(); + } + + /** + * Verify that when the current active network is matched, the scan info associated with + * the network is updated. + * + * @throws Exception + */ + @Test + public void evaluateScansMatchingActiveNetworkWithDifferentBSS() throws Exception { + List<ScanDetail> scanDetails = Arrays.asList(new ScanDetail[] { + generateScanDetail(TEST_SSID1, TEST_BSSID2)}); + // Setup matching provider. + Pair<PasspointProvider, PasspointMatch> homeProvider = Pair.create( + TEST_PROVIDER1, PasspointMatch.HomeProvider); + + // Setup currently connected network. + WifiConfiguration currentNetwork = new WifiConfiguration(); + currentNetwork.networkId = TEST_NETWORK_ID; + currentNetwork.SSID = ScanResultUtil.createQuotedSSID(TEST_SSID1); + String currentBssid = TEST_BSSID1; + + // Match the current connected network to a home provider. + List<Pair<ScanDetail, WifiConfiguration>> connectableNetworks = new ArrayList<>(); + when(mPasspointManager.matchProvider(any(ScanResult.class))).thenReturn(homeProvider); + WifiConfiguration config = mEvaluator.evaluateNetworks(scanDetails, currentNetwork, + currentBssid, true, false, connectableNetworks); + assertEquals(1, connectableNetworks.size()); + // Verify network candidate information is updated. + ArgumentCaptor<ScanResult> updatedCandidateScanResult = + ArgumentCaptor.forClass(ScanResult.class); + verify(mWifiConfigManager).setNetworkCandidateScanResult(eq(TEST_NETWORK_ID), + updatedCandidateScanResult.capture(), anyInt()); + assertEquals(TEST_BSSID2, updatedCandidateScanResult.getValue().BSSID); + ArgumentCaptor<ScanDetail> updatedCandidateScanDetail = + ArgumentCaptor.forClass(ScanDetail.class); + verify(mWifiConfigManager).updateScanDetailForNetwork(eq(TEST_NETWORK_ID), + updatedCandidateScanDetail.capture()); + assertEquals(TEST_BSSID2, updatedCandidateScanDetail.getValue().getBSSIDString()); } } |