summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2017-07-13 18:47:29 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-07-13 18:47:29 +0000
commitd9730aa504ed133340267051f35743d102f192df (patch)
tree6c1d5cd03029242e5990f4eefdf70f4930f46328 /tests
parentceaba988f7c8febc7404262002dd4e886e0eae16 (diff)
parent375a4fbced9ea86e5b30b457b6f324c63b937dda (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.java68
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());
}
}