summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoshan Pius <rpius@google.com>2019-01-24 13:34:49 -0800
committerRoshan Pius <rpius@google.com>2019-01-25 12:28:41 -0800
commit30c7a37cf069670fd217216110ec4cd790e99b58 (patch)
tree7828daad82b8c23044fdb1c5a3fbbe4e24819275
parentd7bded006fe5c923f6e4b9df60f54fa2bcba230c (diff)
downloadandroid_frameworks_opt_net_wifi-30c7a37cf069670fd217216110ec4cd790e99b58.tar.gz
android_frameworks_opt_net_wifi-30c7a37cf069670fd217216110ec4cd790e99b58.tar.bz2
android_frameworks_opt_net_wifi-30c7a37cf069670fd217216110ec4cd790e99b58.zip
WifiNetworkFactory: Don't bypass user approval if user forgets
The "forget" button in the wifi picker for the connected network invokes WifiManager.disableEphemeralNetwork() for ephemeral networks. Use the same blacklist to disallow user approval bypass for previously approved networks for app requests. This would result in the user getting the pop-up to approve the request even if the app makes a specific request (exact SSID + BSSID) and it was previously approved. Note: There are some improvements planned regarding ephemeral network blacklist tracked by b/123360912. Bug: 122621582 Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh Test: Aded a new acts test for the scenario. act.py -c wifi_manager.config -tb dut-name -tc WifiNetworkSuggestionTest Change-Id: I9d42d14d3cdfd631d55e449cbf9498ba9728d5b1
-rw-r--r--service/java/com/android/server/wifi/WifiNetworkFactory.java16
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java234
2 files changed, 88 insertions, 162 deletions
diff --git a/service/java/com/android/server/wifi/WifiNetworkFactory.java b/service/java/com/android/server/wifi/WifiNetworkFactory.java
index 1bd93c635..5f327e553 100644
--- a/service/java/com/android/server/wifi/WifiNetworkFactory.java
+++ b/service/java/com/android/server/wifi/WifiNetworkFactory.java
@@ -226,7 +226,15 @@ public class WifiNetworkFactory extends NetworkFactory {
approvedScanResult =
findUserApprovedAccessPointForActiveRequestFromActiveMatchedScanResults();
}
- if (approvedScanResult == null) {
+ if (approvedScanResult != null
+ && !mWifiConfigManager.wasEphemeralNetworkDeleted(
+ ScanResultUtil.createQuotedSSID(approvedScanResult.SSID))) {
+ Log.v(TAG, "Approved access point found in matching scan results. "
+ + "Triggering connect " + approvedScanResult);
+ handleConnectToNetworkUserSelectionInternal(
+ ScanResultUtil.createNetworkFromScanResult(approvedScanResult));
+ // TODO (b/122658039): Post notification.
+ } else {
if (mVerboseLoggingEnabled) {
Log.v(TAG, "No approved access points found in matching scan results. "
+ "Sending match callback");
@@ -234,12 +242,6 @@ public class WifiNetworkFactory extends NetworkFactory {
sendNetworkRequestMatchCallbacksForActiveRequest(matchedScanResults);
// Didn't find an approved match, schedule the next scan.
scheduleNextPeriodicScan();
- } else {
- Log.v(TAG, "Approved access point found in matching scan results. "
- + "Triggering connect " + approvedScanResult);
- handleConnectToNetworkUserSelectionInternal(
- ScanResultUtil.createNetworkFromScanResult(approvedScanResult));
- // TODO (b/122658039): Post notification.
}
}
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java b/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java
index 151f09469..ab34c02f8 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java
@@ -1794,53 +1794,22 @@ public class WifiNetworkFactoryTest {
@Test
public void testNetworkSpecifierMatchSuccessUsingLiteralSsidAndBssidMatchPreviouslyApproved()
throws Exception {
- setupScanData(SCAN_RESULT_TYPE_WPA_PSK,
- TEST_SSID_1, TEST_SSID_2, TEST_SSID_3, TEST_SSID_4);
-
// 1. First request (no user approval bypass)
- ScanResult matchingScanResult1 = mTestScanDatas[0].getResults()[0];
- PatternMatcher ssidPatternMatch =
- new PatternMatcher(TEST_SSID_1, PatternMatcher.PATTERN_LITERAL);
- Pair<MacAddress, MacAddress> bssidPatternMatch =
- Pair.create(MacAddress.ALL_ZEROS_ADDRESS, MacAddress.ALL_ZEROS_ADDRESS);
- WifiConfiguration wifiConfiguration = new WifiConfiguration();
- wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
- WifiNetworkSpecifier specifier = new WifiNetworkSpecifier(
- ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
- TEST_PACKAGE_NAME_1);
- mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier);
- mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0);
- mWifiNetworkFactory.addCallback(mAppBinder, mNetworkRequestMatchCallback,
- TEST_CALLBACK_IDENTIFIER);
- verify(mNetworkRequestMatchCallback).onUserSelectionCallbackRegistration(
- mNetworkRequestUserSelectionCallback.capture());
- verifyPeriodicScans(0, PERIODIC_SCAN_INTERVAL_MS);
- ArgumentCaptor<List<ScanResult>> matchedScanResultsCaptor =
- ArgumentCaptor.forClass(List.class);
- verify(mNetworkRequestMatchCallback).onMatch(matchedScanResultsCaptor.capture());
- assertNotNull(matchedScanResultsCaptor.getValue());
- validateScanResults(matchedScanResultsCaptor.getValue(), matchingScanResult1);
- // Now trigger user selection to the network.
- mSelectedNetwork = ScanResultUtil.createNetworkFromScanResult(matchingScanResult1);
- INetworkRequestUserSelectionCallback networkRequestUserSelectionCallback =
- mNetworkRequestUserSelectionCallback.getValue();
- assertNotNull(networkRequestUserSelectionCallback);
- networkRequestUserSelectionCallback.select(mSelectedNetwork);
- mLooper.dispatchAll();
+ sendNetworkRequestAndSetupForConnectionStatus();
mWifiNetworkFactory.removeCallback(TEST_CALLBACK_IDENTIFIER);
reset(mNetworkRequestMatchCallback, mWifiScanner, mAlarmManager, mClientModeImpl);
// 2. Second request for the same access point (user approval bypass).
- ScanResult matchingScanResult2 = matchingScanResult1;
- ssidPatternMatch =
+ ScanResult matchingScanResult = mTestScanDatas[0].getResults()[0];
+ PatternMatcher ssidPatternMatch =
new PatternMatcher(TEST_SSID_1, PatternMatcher.PATTERN_LITERAL);
- bssidPatternMatch =
- Pair.create(MacAddress.fromString(matchingScanResult2.BSSID),
+ Pair<MacAddress, MacAddress> bssidPatternMatch =
+ Pair.create(MacAddress.fromString(matchingScanResult.BSSID),
MacAddress.BROADCAST_ADDRESS);
- specifier = new WifiNetworkSpecifier(
- ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
- TEST_PACKAGE_NAME_1);
+ WifiNetworkSpecifier specifier = new WifiNetworkSpecifier(
+ ssidPatternMatch, bssidPatternMatch,
+ WifiConfigurationTestUtil.createPskNetwork(), TEST_UID_1, TEST_PACKAGE_NAME_1);
mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier);
mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0);
mWifiNetworkFactory.addCallback(mAppBinder, mNetworkRequestMatchCallback,
@@ -1859,44 +1828,58 @@ public class WifiNetworkFactoryTest {
/**
* Verify that we don't bypass user approval for a specific request for an access point that was
- * not approved previously.
+ * approved previously, but then the user forgot it sometime after.
*/
@Test
- public void testNetworkSpecifierMatchSuccessUsingLiteralSsidAndBssidMatchNotPreviouslyApproved()
+ public void
+ testNetworkSpecifierMatchSuccessUsingLiteralSsidAndBssidMatchPreviouslyApprovedNForgot()
throws Exception {
- setupScanData(SCAN_RESULT_TYPE_WPA_PSK,
- TEST_SSID_1, TEST_SSID_2, TEST_SSID_3, TEST_SSID_4);
-
// 1. First request (no user approval bypass)
- ScanResult matchingScanResult1 = mTestScanDatas[0].getResults()[0];
+ sendNetworkRequestAndSetupForConnectionStatus();
+
+ mWifiNetworkFactory.removeCallback(TEST_CALLBACK_IDENTIFIER);
+ reset(mNetworkRequestMatchCallback, mWifiScanner, mAlarmManager, mClientModeImpl);
+
+ // 2. Simulate user forgeting the network.
+ when(mWifiConfigManager.wasEphemeralNetworkDeleted(
+ ScanResultUtil.createQuotedSSID(mTestScanDatas[0].getResults()[0].SSID)))
+ .thenReturn(true);
+
+ // 3. Second request for the same access point (user approval bypass).
+ ScanResult matchingScanResult = mTestScanDatas[0].getResults()[0];
PatternMatcher ssidPatternMatch =
new PatternMatcher(TEST_SSID_1, PatternMatcher.PATTERN_LITERAL);
Pair<MacAddress, MacAddress> bssidPatternMatch =
- Pair.create(MacAddress.ALL_ZEROS_ADDRESS, MacAddress.ALL_ZEROS_ADDRESS);
- WifiConfiguration wifiConfiguration = new WifiConfiguration();
- wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+ Pair.create(MacAddress.fromString(matchingScanResult.BSSID),
+ MacAddress.BROADCAST_ADDRESS);
WifiNetworkSpecifier specifier = new WifiNetworkSpecifier(
- ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
- TEST_PACKAGE_NAME_1);
+ ssidPatternMatch, bssidPatternMatch,
+ WifiConfigurationTestUtil.createPskNetwork(), TEST_UID_1, TEST_PACKAGE_NAME_1);
mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier);
mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0);
mWifiNetworkFactory.addCallback(mAppBinder, mNetworkRequestMatchCallback,
TEST_CALLBACK_IDENTIFIER);
- verify(mNetworkRequestMatchCallback).onUserSelectionCallbackRegistration(
- mNetworkRequestUserSelectionCallback.capture());
verifyPeriodicScans(0, PERIODIC_SCAN_INTERVAL_MS);
ArgumentCaptor<List<ScanResult>> matchedScanResultsCaptor =
ArgumentCaptor.forClass(List.class);
+ // Verify we triggered the match callback.
+ matchedScanResultsCaptor = ArgumentCaptor.forClass(List.class);
verify(mNetworkRequestMatchCallback).onMatch(matchedScanResultsCaptor.capture());
assertNotNull(matchedScanResultsCaptor.getValue());
- validateScanResults(matchedScanResultsCaptor.getValue(), matchingScanResult1);
- // Now trigger user selection to the network.
- mSelectedNetwork = ScanResultUtil.createNetworkFromScanResult(matchingScanResult1);
- INetworkRequestUserSelectionCallback networkRequestUserSelectionCallback =
- mNetworkRequestUserSelectionCallback.getValue();
- assertNotNull(networkRequestUserSelectionCallback);
- networkRequestUserSelectionCallback.select(mSelectedNetwork);
- mLooper.dispatchAll();
+ validateScanResults(matchedScanResultsCaptor.getValue(), matchingScanResult);
+ // Verify that we did not send a connection attempt to ClientModeImpl.
+ verify(mClientModeImpl, never()).sendMessage(any());
+ }
+
+ /**
+ * Verify that we don't bypass user approval for a specific request for an access point that was
+ * not approved previously.
+ */
+ @Test
+ public void testNetworkSpecifierMatchSuccessUsingLiteralSsidAndBssidMatchNotPreviouslyApproved()
+ throws Exception {
+ // 1. First request (no user approval bypass)
+ sendNetworkRequestAndSetupForConnectionStatus();
mWifiNetworkFactory.removeCallback(TEST_CALLBACK_IDENTIFIER);
reset(mNetworkRequestMatchCallback, mWifiScanner, mAlarmManager, mClientModeImpl);
@@ -1904,25 +1887,27 @@ public class WifiNetworkFactoryTest {
// 2. Second request for a different access point (but same network).
setupScanData(SCAN_RESULT_TYPE_WPA_PSK,
TEST_SSID_1, TEST_SSID_1, TEST_SSID_3, TEST_SSID_4);
- ScanResult matchingScanResult2 = mTestScanDatas[0].getResults()[1];
- ssidPatternMatch =
+ ScanResult matchingScanResult = mTestScanDatas[0].getResults()[1];
+ PatternMatcher ssidPatternMatch =
new PatternMatcher(TEST_SSID_1, PatternMatcher.PATTERN_LITERAL);
- bssidPatternMatch =
- Pair.create(MacAddress.fromString(matchingScanResult2.BSSID),
+ Pair<MacAddress, MacAddress> bssidPatternMatch =
+ Pair.create(MacAddress.fromString(matchingScanResult.BSSID),
MacAddress.BROADCAST_ADDRESS);
- specifier = new WifiNetworkSpecifier(
- ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
- TEST_PACKAGE_NAME_1);
+ WifiNetworkSpecifier specifier = new WifiNetworkSpecifier(
+ ssidPatternMatch, bssidPatternMatch, WifiConfigurationTestUtil.createPskNetwork(),
+ TEST_UID_1, TEST_PACKAGE_NAME_1);
mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier);
mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0);
mWifiNetworkFactory.addCallback(mAppBinder, mNetworkRequestMatchCallback,
TEST_CALLBACK_IDENTIFIER);
verifyPeriodicScans(0, PERIODIC_SCAN_INTERVAL_MS);
+ ArgumentCaptor<List<ScanResult>> matchedScanResultsCaptor =
+ ArgumentCaptor.forClass(List.class);
// Verify we triggered the match callback.
matchedScanResultsCaptor = ArgumentCaptor.forClass(List.class);
verify(mNetworkRequestMatchCallback).onMatch(matchedScanResultsCaptor.capture());
assertNotNull(matchedScanResultsCaptor.getValue());
- validateScanResults(matchedScanResultsCaptor.getValue(), matchingScanResult2);
+ validateScanResults(matchedScanResultsCaptor.getValue(), matchingScanResult);
// Verify that we did not send a connection attempt to ClientModeImpl.
verify(mClientModeImpl, never()).sendMessage(any());
}
@@ -1934,63 +1919,34 @@ public class WifiNetworkFactoryTest {
@Test
public void testNetworkSpecifierMatchSuccessUsingLiteralSsidMatchPreviouslyApproved()
throws Exception {
- setupScanData(SCAN_RESULT_TYPE_WPA_PSK,
- TEST_SSID_1, TEST_SSID_2, TEST_SSID_3, TEST_SSID_4);
-
// 1. First request (no user approval bypass)
- ScanResult matchingScanResult1 = mTestScanDatas[0].getResults()[0];
- PatternMatcher ssidPatternMatch =
- new PatternMatcher(TEST_SSID_1, PatternMatcher.PATTERN_LITERAL);
- Pair<MacAddress, MacAddress> bssidPatternMatch =
- Pair.create(MacAddress.ALL_ZEROS_ADDRESS, MacAddress.ALL_ZEROS_ADDRESS);
- WifiConfiguration wifiConfiguration = new WifiConfiguration();
- wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
- WifiNetworkSpecifier specifier = new WifiNetworkSpecifier(
- ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
- TEST_PACKAGE_NAME_1);
- mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier);
- mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0);
- mWifiNetworkFactory.addCallback(mAppBinder, mNetworkRequestMatchCallback,
- TEST_CALLBACK_IDENTIFIER);
- verify(mNetworkRequestMatchCallback).onUserSelectionCallbackRegistration(
- mNetworkRequestUserSelectionCallback.capture());
- verifyPeriodicScans(0, PERIODIC_SCAN_INTERVAL_MS);
- ArgumentCaptor<List<ScanResult>> matchedScanResultsCaptor =
- ArgumentCaptor.forClass(List.class);
- verify(mNetworkRequestMatchCallback).onMatch(matchedScanResultsCaptor.capture());
- assertNotNull(matchedScanResultsCaptor.getValue());
- validateScanResults(matchedScanResultsCaptor.getValue(), matchingScanResult1);
- // Now trigger user selection to the network.
- mSelectedNetwork = ScanResultUtil.createNetworkFromScanResult(matchingScanResult1);
- INetworkRequestUserSelectionCallback networkRequestUserSelectionCallback =
- mNetworkRequestUserSelectionCallback.getValue();
- assertNotNull(networkRequestUserSelectionCallback);
- networkRequestUserSelectionCallback.select(mSelectedNetwork);
- mLooper.dispatchAll();
+ sendNetworkRequestAndSetupForConnectionStatus();
mWifiNetworkFactory.removeCallback(TEST_CALLBACK_IDENTIFIER);
reset(mNetworkRequestMatchCallback, mWifiScanner, mAlarmManager, mClientModeImpl);
// 2. Second request for the same network (but not specific access point)
- ScanResult matchingScanResult2 = matchingScanResult1;
- ssidPatternMatch =
+ ScanResult matchingScanResult = mTestScanDatas[0].getResults()[0];
+ PatternMatcher ssidPatternMatch =
new PatternMatcher(TEST_SSID_1, PatternMatcher.PATTERN_LITERAL);
// match-all.
- bssidPatternMatch =
+ Pair<MacAddress, MacAddress> bssidPatternMatch =
Pair.create(MacAddress.ALL_ZEROS_ADDRESS, MacAddress.ALL_ZEROS_ADDRESS);
- specifier = new WifiNetworkSpecifier(
- ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
- TEST_PACKAGE_NAME_1);
+ WifiNetworkSpecifier specifier = new WifiNetworkSpecifier(
+ ssidPatternMatch, bssidPatternMatch, WifiConfigurationTestUtil.createPskNetwork(),
+ TEST_UID_1, TEST_PACKAGE_NAME_1);
mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier);
mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0);
mWifiNetworkFactory.addCallback(mAppBinder, mNetworkRequestMatchCallback,
TEST_CALLBACK_IDENTIFIER);
verifyPeriodicScans(0, PERIODIC_SCAN_INTERVAL_MS);
+ ArgumentCaptor<List<ScanResult>> matchedScanResultsCaptor =
+ ArgumentCaptor.forClass(List.class);
// Verify we triggered the match callback.
matchedScanResultsCaptor = ArgumentCaptor.forClass(List.class);
verify(mNetworkRequestMatchCallback).onMatch(matchedScanResultsCaptor.capture());
assertNotNull(matchedScanResultsCaptor.getValue());
- validateScanResults(matchedScanResultsCaptor.getValue(), matchingScanResult2);
+ validateScanResults(matchedScanResultsCaptor.getValue(), matchingScanResult);
// Verify that we did not send a connection attempt to ClientModeImpl.
verify(mClientModeImpl, never()).sendMessage(any());
}
@@ -2003,39 +1959,8 @@ public class WifiNetworkFactoryTest {
@Test
public void testNetworkSpecifierMatchSuccessUsingLiteralSsidAndBssidMatchAfterApprovalsRemove()
throws Exception {
- setupScanData(SCAN_RESULT_TYPE_WPA_PSK,
- TEST_SSID_1, TEST_SSID_2, TEST_SSID_3, TEST_SSID_4);
-
// 1. First request (no user approval bypass)
- ScanResult matchingScanResult1 = mTestScanDatas[0].getResults()[0];
- PatternMatcher ssidPatternMatch =
- new PatternMatcher(TEST_SSID_1, PatternMatcher.PATTERN_LITERAL);
- Pair<MacAddress, MacAddress> bssidPatternMatch =
- Pair.create(MacAddress.ALL_ZEROS_ADDRESS, MacAddress.ALL_ZEROS_ADDRESS);
- WifiConfiguration wifiConfiguration = new WifiConfiguration();
- wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
- WifiNetworkSpecifier specifier = new WifiNetworkSpecifier(
- ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
- TEST_PACKAGE_NAME_1);
- mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier);
- mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0);
- mWifiNetworkFactory.addCallback(mAppBinder, mNetworkRequestMatchCallback,
- TEST_CALLBACK_IDENTIFIER);
- verify(mNetworkRequestMatchCallback).onUserSelectionCallbackRegistration(
- mNetworkRequestUserSelectionCallback.capture());
- verifyPeriodicScans(0, PERIODIC_SCAN_INTERVAL_MS);
- ArgumentCaptor<List<ScanResult>> matchedScanResultsCaptor =
- ArgumentCaptor.forClass(List.class);
- verify(mNetworkRequestMatchCallback).onMatch(matchedScanResultsCaptor.capture());
- assertNotNull(matchedScanResultsCaptor.getValue());
- validateScanResults(matchedScanResultsCaptor.getValue(), matchingScanResult1);
- // Now trigger user selection to the network.
- mSelectedNetwork = ScanResultUtil.createNetworkFromScanResult(matchingScanResult1);
- INetworkRequestUserSelectionCallback networkRequestUserSelectionCallback =
- mNetworkRequestUserSelectionCallback.getValue();
- assertNotNull(networkRequestUserSelectionCallback);
- networkRequestUserSelectionCallback.select(mSelectedNetwork);
- mLooper.dispatchAll();
+ sendNetworkRequestAndSetupForConnectionStatus();
mWifiNetworkFactory.removeCallback(TEST_CALLBACK_IDENTIFIER);
reset(mNetworkRequestMatchCallback, mWifiScanner, mAlarmManager, mClientModeImpl);
@@ -2044,25 +1969,27 @@ public class WifiNetworkFactoryTest {
mWifiNetworkFactory.removeUserApprovedAccessPointsForApp(TEST_PACKAGE_NAME_1);
// 3. Second request for the same access point
- ScanResult matchingScanResult2 = matchingScanResult1;
- ssidPatternMatch =
+ ScanResult matchingScanResult = mTestScanDatas[0].getResults()[0];
+ PatternMatcher ssidPatternMatch =
new PatternMatcher(TEST_SSID_1, PatternMatcher.PATTERN_LITERAL);
- bssidPatternMatch =
- Pair.create(MacAddress.fromString(matchingScanResult2.BSSID),
+ Pair<MacAddress, MacAddress> bssidPatternMatch =
+ Pair.create(MacAddress.fromString(matchingScanResult.BSSID),
MacAddress.ALL_ZEROS_ADDRESS);
- specifier = new WifiNetworkSpecifier(
- ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
- TEST_PACKAGE_NAME_1);
+ WifiNetworkSpecifier specifier = new WifiNetworkSpecifier(
+ ssidPatternMatch, bssidPatternMatch, WifiConfigurationTestUtil.createPskNetwork(),
+ TEST_UID_1, TEST_PACKAGE_NAME_1);
mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier);
mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0);
mWifiNetworkFactory.addCallback(mAppBinder, mNetworkRequestMatchCallback,
TEST_CALLBACK_IDENTIFIER);
verifyPeriodicScans(0, PERIODIC_SCAN_INTERVAL_MS);
+ ArgumentCaptor<List<ScanResult>> matchedScanResultsCaptor =
+ ArgumentCaptor.forClass(List.class);
// Verify we triggered the match callback.
matchedScanResultsCaptor = ArgumentCaptor.forClass(List.class);
verify(mNetworkRequestMatchCallback).onMatch(matchedScanResultsCaptor.capture());
assertNotNull(matchedScanResultsCaptor.getValue());
- validateScanResults(matchedScanResultsCaptor.getValue(), matchingScanResult2);
+ validateScanResults(matchedScanResultsCaptor.getValue(), matchingScanResult);
// Verify that we did not send a connection attempt to ClientModeImpl.
verify(mClientModeImpl, never()).sendMessage(any());
}
@@ -2115,11 +2042,9 @@ public class WifiNetworkFactoryTest {
Pair<MacAddress, MacAddress> bssidPatternMatch =
Pair.create(MacAddress.fromString(TEST_BSSID_1),
MacAddress.BROADCAST_ADDRESS);
- WifiConfiguration wifiConfiguration = new WifiConfiguration();
- wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
WifiNetworkSpecifier specifier = new WifiNetworkSpecifier(
- ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
- TEST_PACKAGE_NAME_1);
+ ssidPatternMatch, bssidPatternMatch, WifiConfigurationTestUtil.createPskNetwork(),
+ TEST_UID_1, TEST_PACKAGE_NAME_1);
mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier);
mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0);
mWifiNetworkFactory.addCallback(mAppBinder, mNetworkRequestMatchCallback,
@@ -2186,17 +2111,16 @@ public class WifiNetworkFactoryTest {
// Helper method to setup the necessary pre-requisite steps for user selection.
private void sendNetworkRequestAndSetupForUserSelection(String targetSsid)
throws RemoteException {
- // Setup scan data for open networks.
+ // Setup scan data for WPA-PSK networks.
setupScanData(SCAN_RESULT_TYPE_WPA_PSK,
TEST_SSID_1, TEST_SSID_2, TEST_SSID_3, TEST_SSID_4);
- // Setup network specifier for open networks.
+ // Setup network specifier for WPA-PSK networks.
PatternMatcher ssidPatternMatch =
new PatternMatcher(targetSsid, PatternMatcher.PATTERN_LITERAL);
Pair<MacAddress, MacAddress> bssidPatternMatch =
Pair.create(MacAddress.ALL_ZEROS_ADDRESS, MacAddress.ALL_ZEROS_ADDRESS);
- WifiConfiguration wifiConfiguration = new WifiConfiguration();
- wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
+ WifiConfiguration wifiConfiguration = WifiConfigurationTestUtil.createPskNetwork();
WifiNetworkSpecifier specifier = new WifiNetworkSpecifier(
ssidPatternMatch, bssidPatternMatch, wifiConfiguration, TEST_UID_1,
TEST_PACKAGE_NAME_1);