summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorNate Jiang <qiangjiang@google.com>2019-09-19 15:59:07 -0700
committerNate(Qiang) Jiang <qiangjiang@google.com>2019-10-16 12:10:21 -0700
commit4921f24cce83719fd9f5d9bdec913545a57ad7fd (patch)
treecf1431c8914eb84735c39dd52edcc0f9fa9c48c0 /tests
parent3674b62a25b3853eb897ae5e4385c9d8debe1fa0 (diff)
merge passpoint into network suggestion
Add API for apps to suggested network with PassPoint config Bug: 141378137 Test: atest android.net.wifi Test: atest com.android.server.wifi Change-Id: Id6a436e7eadbcf2acc186a5bfa2d13f5508c61c0
Diffstat (limited to 'tests')
-rw-r--r--tests/wifitests/src/com/android/server/wifi/NetworkSuggestionEvaluatorTest.java2
-rw-r--r--tests/wifitests/src/com/android/server/wifi/NetworkSuggestionStoreDataTest.java14
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WakeupControllerTest.java8
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiNetworkSuggestionsManagerTest.java358
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java12
-rw-r--r--tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointConfigUserStoreDataTest.java4
-rw-r--r--tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java401
-rw-r--r--tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointProviderTest.java2
8 files changed, 629 insertions, 172 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/NetworkSuggestionEvaluatorTest.java b/tests/wifitests/src/com/android/server/wifi/NetworkSuggestionEvaluatorTest.java
index dbca79c8d..d301d6b95 100644
--- a/tests/wifitests/src/com/android/server/wifi/NetworkSuggestionEvaluatorTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/NetworkSuggestionEvaluatorTest.java
@@ -744,7 +744,7 @@ public class NetworkSuggestionEvaluatorTest extends WifiBaseTest {
configs[i].meteredOverride = meteredness[i]
? WifiConfiguration.METERED_OVERRIDE_METERED
: WifiConfiguration.METERED_OVERRIDE_NONE;
- suggestions[i] = new WifiNetworkSuggestion(configs[i], appInteractions[i],
+ suggestions[i] = new WifiNetworkSuggestion(configs[i], null, appInteractions[i],
false, uids[i], packageNames[i]);
}
return suggestions;
diff --git a/tests/wifitests/src/com/android/server/wifi/NetworkSuggestionStoreDataTest.java b/tests/wifitests/src/com/android/server/wifi/NetworkSuggestionStoreDataTest.java
index 7abcfa619..97e20fc95 100644
--- a/tests/wifitests/src/com/android/server/wifi/NetworkSuggestionStoreDataTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/NetworkSuggestionStoreDataTest.java
@@ -156,7 +156,7 @@ public class NetworkSuggestionStoreDataTest extends WifiBaseTest {
configuration.enterpriseConfig =
WifiConfigurationTestUtil.createPEAPWifiEnterpriseConfigWithGTCPhase2();
WifiNetworkSuggestion networkSuggestion =
- new WifiNetworkSuggestion(configuration, false, false, TEST_UID_1,
+ new WifiNetworkSuggestion(configuration, null, false, false, TEST_UID_1,
TEST_PACKAGE_NAME_1);
appInfo.hasUserApproved = false;
appInfo.extNetworkSuggestions.add(
@@ -186,7 +186,7 @@ public class NetworkSuggestionStoreDataTest extends WifiBaseTest {
PerAppInfo appInfo1 = new PerAppInfo(TEST_PACKAGE_NAME_1);
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_NAME_1);
appInfo1.hasUserApproved = false;
appInfo1.extNetworkSuggestions.add(
@@ -195,7 +195,7 @@ public class NetworkSuggestionStoreDataTest extends WifiBaseTest {
PerAppInfo appInfo2 = new PerAppInfo(TEST_PACKAGE_NAME_2);
WifiNetworkSuggestion networkSuggestion2 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), true, false, TEST_UID_2,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, true, false, TEST_UID_2,
TEST_PACKAGE_NAME_2);
appInfo2.hasUserApproved = true;
appInfo2.extNetworkSuggestions.add(
@@ -214,10 +214,10 @@ public class NetworkSuggestionStoreDataTest extends WifiBaseTest {
PerAppInfo appInfo1 = new PerAppInfo(TEST_PACKAGE_NAME_1);
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, true, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, true, TEST_UID_1,
TEST_PACKAGE_NAME_1);
WifiNetworkSuggestion networkSuggestion2 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), true, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, true, false, TEST_UID_1,
TEST_PACKAGE_NAME_1);
appInfo1.hasUserApproved = true;
appInfo1.extNetworkSuggestions.add(
@@ -228,10 +228,10 @@ public class NetworkSuggestionStoreDataTest extends WifiBaseTest {
PerAppInfo appInfo2 = new PerAppInfo(TEST_PACKAGE_NAME_2);
WifiNetworkSuggestion networkSuggestion3 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), true, false, TEST_UID_2,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, true, false, TEST_UID_2,
TEST_PACKAGE_NAME_2);
WifiNetworkSuggestion networkSuggestion4 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, true, TEST_UID_2,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, true, TEST_UID_2,
TEST_PACKAGE_NAME_2);
appInfo2.hasUserApproved = true;
appInfo2.extNetworkSuggestions.add(
diff --git a/tests/wifitests/src/com/android/server/wifi/WakeupControllerTest.java b/tests/wifitests/src/com/android/server/wifi/WakeupControllerTest.java
index 5e13706f3..112d2fb74 100644
--- a/tests/wifitests/src/com/android/server/wifi/WakeupControllerTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WakeupControllerTest.java
@@ -364,10 +364,10 @@ public class WakeupControllerTest extends WifiBaseTest {
// suggestions
WifiConfiguration openNetwork = WifiConfigurationTestUtil.createOpenNetwork(quotedSsid);
WifiNetworkSuggestion openNetworkSuggestion =
- new WifiNetworkSuggestion(openNetwork, false, false, -1, "");
+ new WifiNetworkSuggestion(openNetwork, null, false, false, -1, "");
WifiConfiguration wepNetwork = WifiConfigurationTestUtil.createWepNetwork();
WifiNetworkSuggestion wepNetworkSuggestion =
- new WifiNetworkSuggestion(wepNetwork, false, false, -1, "");
+ new WifiNetworkSuggestion(wepNetwork, null, false, false, -1, "");
when(mWifiNetworkSuggestionsManager.getAllNetworkSuggestions())
.thenReturn(new HashSet<>(Arrays.asList(
openNetworkSuggestion, wepNetworkSuggestion)));
@@ -409,7 +409,7 @@ public class WakeupControllerTest extends WifiBaseTest {
WifiConfiguration oweNetwork = WifiConfigurationTestUtil.createOweNetwork(quotedSsid2);
WifiNetworkSuggestion oweNetworkSuggestion =
- new WifiNetworkSuggestion(oweNetwork, false, false, -1, "");
+ new WifiNetworkSuggestion(oweNetwork, null, false, false, -1, "");
when(mWifiNetworkSuggestionsManager.getAllNetworkSuggestions())
.thenReturn(new HashSet<>(Arrays.asList(oweNetworkSuggestion)));
@@ -507,7 +507,7 @@ public class WakeupControllerTest extends WifiBaseTest {
WifiConfiguration openNetwork = WifiConfigurationTestUtil
.createOpenNetwork(ScanResultUtil.createQuotedSSID(SAVED_SSID));
WifiNetworkSuggestion openNetworkSuggestion =
- new WifiNetworkSuggestion(openNetwork, false, false, -1, "");
+ new WifiNetworkSuggestion(openNetwork, null, false, false, -1, "");
when(mWifiNetworkSuggestionsManager.getAllNetworkSuggestions())
.thenReturn(new HashSet<>(Collections.singletonList(openNetworkSuggestion)));
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiNetworkSuggestionsManagerTest.java b/tests/wifitests/src/com/android/server/wifi/WifiNetworkSuggestionsManagerTest.java
index 6e9df30b3..3c9b0bc12 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiNetworkSuggestionsManagerTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiNetworkSuggestionsManagerTest.java
@@ -48,6 +48,8 @@ import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
import android.net.wifi.WifiNetworkSuggestion;
import android.net.wifi.WifiScanner;
+import android.net.wifi.hotspot2.PasspointConfiguration;
+import android.net.wifi.hotspot2.pps.HomeSp;
import android.os.Handler;
import android.os.UserHandle;
import android.os.test.TestLooper;
@@ -57,6 +59,7 @@ import com.android.internal.R;
import com.android.internal.messages.nano.SystemMessageProto.SystemMessage;
import com.android.server.wifi.WifiNetworkSuggestionsManager.ExtendedWifiNetworkSuggestion;
import com.android.server.wifi.WifiNetworkSuggestionsManager.PerAppInfo;
+import com.android.server.wifi.hotspot2.PasspointManager;
import com.android.server.wifi.util.WifiPermissionsUtil;
import org.junit.Before;
@@ -85,6 +88,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
private static final String TEST_APP_NAME_1 = "test12345";
private static final String TEST_APP_NAME_2 = "test54321";
private static final String TEST_BSSID = "00:11:22:33:44:55";
+ private static final String TEST_FQDN = "FQDN";
private static final int TEST_UID_1 = 5667;
private static final int TEST_UID_2 = 4537;
@@ -100,6 +104,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
private @Mock WifiConfigManager mWifiConfigManager;
private @Mock NetworkSuggestionStoreData mNetworkSuggestionStoreData;
private @Mock WifiMetrics mWifiMetrics;
+ private @Mock PasspointManager mPasspointManager;
private TestLooper mLooper;
private ArgumentCaptor<AppOpsManager.OnOpChangedListener> mAppOpChangedListenerCaptor =
ArgumentCaptor.forClass(AppOpsManager.OnOpChangedListener.class);
@@ -124,6 +129,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
when(mWifiInjector.makeNetworkSuggestionStoreData(any()))
.thenReturn(mNetworkSuggestionStoreData);
when(mWifiInjector.getFrameworkFacade()).thenReturn(mFrameworkFacade);
+ when(mWifiInjector.getPasspointManager()).thenReturn(mPasspointManager);
when(mFrameworkFacade.getBroadcast(any(), anyInt(), any(), anyInt()))
.thenReturn(mock(PendingIntent.class));
when(mContext.getResources()).thenReturn(mResources);
@@ -180,11 +186,17 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
*/
@Test
public void testAddNetworkSuggestionsSuccess() {
+ PasspointConfiguration passpointConfiguration = new PasspointConfiguration();
+ HomeSp homeSp = new HomeSp();
+ homeSp.setFqdn(TEST_FQDN);
+ passpointConfiguration.setHomeSp(homeSp);
+ WifiConfiguration dummyConfiguration = new WifiConfiguration();
+ dummyConfiguration.FQDN = TEST_FQDN;
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
WifiNetworkSuggestion networkSuggestion2 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_2,
+ dummyConfiguration, passpointConfiguration, false, false, TEST_UID_2,
TEST_PACKAGE_2);
List<WifiNetworkSuggestion> networkSuggestionList1 =
@@ -195,13 +207,16 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
new ArrayList<WifiNetworkSuggestion>() {{
add(networkSuggestion2);
}};
-
+ when(mPasspointManager.addOrUpdateProvider(any(PasspointConfiguration.class),
+ anyInt(), anyString(), eq(true))).thenReturn(true);
assertEquals(WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS,
mWifiNetworkSuggestionsManager.add(networkSuggestionList1, TEST_UID_1,
TEST_PACKAGE_1));
assertEquals(WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS,
mWifiNetworkSuggestionsManager.add(networkSuggestionList2, TEST_UID_2,
TEST_PACKAGE_2));
+ verify(mPasspointManager).addOrUpdateProvider(
+ passpointConfiguration, TEST_UID_2, TEST_PACKAGE_2, true);
Set<WifiNetworkSuggestion> allNetworkSuggestions =
mWifiNetworkSuggestionsManager.getAllNetworkSuggestions();
@@ -225,11 +240,17 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
*/
@Test
public void testRemoveNetworkSuggestionsSuccess() {
+ PasspointConfiguration passpointConfiguration = new PasspointConfiguration();
+ HomeSp homeSp = new HomeSp();
+ homeSp.setFqdn(TEST_FQDN);
+ passpointConfiguration.setHomeSp(homeSp);
+ WifiConfiguration dummyConfiguration = new WifiConfiguration();
+ dummyConfiguration.FQDN = TEST_FQDN;
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
WifiNetworkSuggestion networkSuggestion2 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_2,
+ dummyConfiguration, passpointConfiguration, false, false, TEST_UID_2,
TEST_PACKAGE_2);
List<WifiNetworkSuggestion> networkSuggestionList1 =
@@ -240,7 +261,8 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
new ArrayList<WifiNetworkSuggestion>() {{
add(networkSuggestion2);
}};
-
+ when(mPasspointManager.addOrUpdateProvider(any(PasspointConfiguration.class),
+ anyInt(), anyString(), eq(true))).thenReturn(true);
assertEquals(WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS,
mWifiNetworkSuggestionsManager.add(networkSuggestionList1, TEST_UID_1,
TEST_PACKAGE_1));
@@ -255,6 +277,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
assertEquals(WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS,
mWifiNetworkSuggestionsManager.remove(networkSuggestionList2,
TEST_UID_1, TEST_PACKAGE_2));
+ verify(mPasspointManager).removeProvider(TEST_UID_2, false, TEST_FQDN);
assertTrue(mWifiNetworkSuggestionsManager.getAllNetworkSuggestions().isEmpty());
@@ -271,13 +294,20 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
*/
@Test
public void testRemoveAllNetworkSuggestionsSuccess() {
+ PasspointConfiguration passpointConfiguration = new PasspointConfiguration();
+ HomeSp homeSp = new HomeSp();
+ homeSp.setFqdn(TEST_FQDN);
+ passpointConfiguration.setHomeSp(homeSp);
+ WifiConfiguration dummyConfiguration = new WifiConfiguration();
+ dummyConfiguration.FQDN = TEST_FQDN;
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
WifiNetworkSuggestion networkSuggestion2 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_2,
+ dummyConfiguration, passpointConfiguration, false, false, TEST_UID_2,
TEST_PACKAGE_2);
+
List<WifiNetworkSuggestion> networkSuggestionList1 =
new ArrayList<WifiNetworkSuggestion>() {{
add(networkSuggestion1);
@@ -287,6 +317,8 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
add(networkSuggestion2);
}};
+ when(mPasspointManager.addOrUpdateProvider(any(PasspointConfiguration.class),
+ anyInt(), anyString(), eq(true))).thenReturn(true);
assertEquals(WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS,
mWifiNetworkSuggestionsManager.add(networkSuggestionList1, TEST_UID_1,
TEST_PACKAGE_1));
@@ -301,6 +333,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
assertEquals(WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS,
mWifiNetworkSuggestionsManager.remove(new ArrayList<>(), TEST_UID_2,
TEST_PACKAGE_2));
+ verify(mPasspointManager).removeProvider(TEST_UID_2, false, TEST_FQDN);
assertTrue(mWifiNetworkSuggestionsManager.getAllNetworkSuggestions().isEmpty());
}
@@ -311,7 +344,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testReplaceNetworkSuggestionsSuccess() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList1 =
@@ -342,9 +375,9 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
* Verify that modify networks that are already active is allowed.
*/
@Test
- public void testAddNetworkSuggestionsFailureOnInPlaceModification() {
+ public void testAddNetworkSuggestionsSuccessOnInPlaceModification() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList1 =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -377,7 +410,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
List<WifiNetworkSuggestion> networkSuggestionList = new ArrayList<>();
for (int i = 0; i < WifiManager.NETWORK_SUGGESTIONS_MAX_PER_APP; i++) {
networkSuggestionList.add(new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1));
}
// The first add should succeed.
@@ -390,7 +423,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
networkSuggestionList = new ArrayList<>();
for (int i = 0; i < 3; i++) {
networkSuggestionList.add(new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1));
}
// The second add should fail.
@@ -412,7 +445,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
networkSuggestionList = new ArrayList<>();
for (int i = 0; i < 2; i++) {
networkSuggestionList.add(new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1));
}
// This add should now succeed.
@@ -427,10 +460,10 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testRemoveNetworkSuggestionsFailureOnInvalid() {
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
WifiNetworkSuggestion networkSuggestion2 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList1 =
@@ -457,7 +490,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
public void
testGetNetworkSuggestionsForScanDetailSuccessWithOneMatchForCarrierProvisioningApp() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList1 =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -488,7 +521,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testGetNetworkSuggestionsForScanDetailSuccessWithOneMatch() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList1 =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -517,11 +550,11 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
public void testGetNetworkSuggestionsForScanDetailSuccessWithMultipleMatch() {
WifiConfiguration wifiConfiguration = WifiConfigurationTestUtil.createOpenNetwork();
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- wifiConfiguration, false, false, TEST_UID_1,
+ wifiConfiguration, null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
// Reuse the same network credentials to ensure they both match.
WifiNetworkSuggestion networkSuggestion2 = new WifiNetworkSuggestion(
- wifiConfiguration, false, false, TEST_UID_2,
+ wifiConfiguration, null, false, false, TEST_UID_2,
TEST_PACKAGE_2);
List<WifiNetworkSuggestion> networkSuggestionList1 =
@@ -564,7 +597,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
wifiConfiguration.BSSID = scanDetail.getBSSIDString();
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- wifiConfiguration, false, false, TEST_UID_1,
+ wifiConfiguration, null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList1 =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -594,11 +627,11 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
wifiConfiguration.BSSID = scanDetail.getBSSIDString();
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- wifiConfiguration, false, false, TEST_UID_1,
+ wifiConfiguration, null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
// Reuse the same network credentials to ensure they both match.
WifiNetworkSuggestion networkSuggestion2 = new WifiNetworkSuggestion(
- wifiConfiguration, false, false, TEST_UID_2,
+ wifiConfiguration, null, false, false, TEST_UID_2,
TEST_PACKAGE_2);
List<WifiNetworkSuggestion> networkSuggestionList1 =
@@ -641,11 +674,11 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
wifiConfiguration.BSSID = scanDetail.getBSSIDString();
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- wifiConfiguration, false, false, TEST_UID_1,
+ wifiConfiguration, null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
// Reuse the same network credentials to ensure they both match.
WifiNetworkSuggestion networkSuggestion2 = new WifiNetworkSuggestion(
- wifiConfiguration, false, false, TEST_UID_1,
+ wifiConfiguration, null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList =
@@ -681,11 +714,11 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
wifiConfiguration2.BSSID = scanDetail.getBSSIDString();
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- wifiConfiguration1, false, false, TEST_UID_1,
+ wifiConfiguration1, null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
// Reuse the same network credentials to ensure they both match.
WifiNetworkSuggestion networkSuggestion2 = new WifiNetworkSuggestion(
- wifiConfiguration2, false, false, TEST_UID_2,
+ wifiConfiguration2, null, false, false, TEST_UID_2,
TEST_PACKAGE_2);
List<WifiNetworkSuggestion> networkSuggestionList1 =
@@ -735,7 +768,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testGetNetworkSuggestionsForScanDetailFailureOnAppNotApproved() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList1 =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -758,7 +791,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
public void testGetNetworkSuggestionsForScanDetailFailureOnSuggestionRemoval() {
WifiConfiguration wifiConfiguration = WifiConfigurationTestUtil.createOpenNetwork();
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- wifiConfiguration, false, false, TEST_UID_1,
+ wifiConfiguration, null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
ScanDetail scanDetail = createScanDetailForNetwork(wifiConfiguration);
List<WifiNetworkSuggestion> networkSuggestionList1 =
@@ -787,7 +820,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testGetNetworkSuggestionsForScanDetailFailureOnWrongNetwork() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList1 =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -815,7 +848,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testOnNetworkConnectionSuccessWithOneMatch() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), true, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, true, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -827,9 +860,13 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
mWifiNetworkSuggestionsManager.setHasUserApprovedForApp(true, TEST_PACKAGE_1);
// Simulate connecting to the network.
+ WifiConfiguration connectNetwork =
+ new WifiConfiguration(networkSuggestion.wifiConfiguration);
+ connectNetwork.fromWifiNetworkSuggestion = true;
+ connectNetwork.ephemeral = true;
+ connectNetwork.creatorName = TEST_APP_NAME_1;
mWifiNetworkSuggestionsManager.handleConnectionAttemptEnded(
- WifiMetrics.ConnectionEvent.FAILURE_NONE, networkSuggestion.wifiConfiguration,
- TEST_BSSID);
+ WifiMetrics.ConnectionEvent.FAILURE_NONE, connectNetwork, TEST_BSSID);
verify(mWifiMetrics).incrementNetworkSuggestionApiNumConnectSuccess();
@@ -849,7 +886,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testOnNetworkConnectionFailureWithOneMatch() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), true, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, true, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -859,11 +896,14 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
mWifiNetworkSuggestionsManager.add(networkSuggestionList, TEST_UID_1,
TEST_PACKAGE_1));
mWifiNetworkSuggestionsManager.setHasUserApprovedForApp(true, TEST_PACKAGE_1);
-
+ WifiConfiguration connectNetwork =
+ new WifiConfiguration(networkSuggestion.wifiConfiguration);
+ connectNetwork.fromWifiNetworkSuggestion = true;
+ connectNetwork.ephemeral = true;
+ connectNetwork.creatorName = TEST_APP_NAME_1;
// Simulate connecting to the network.
mWifiNetworkSuggestionsManager.handleConnectionAttemptEnded(
- WifiMetrics.ConnectionEvent.FAILURE_DHCP, networkSuggestion.wifiConfiguration,
- TEST_BSSID);
+ WifiMetrics.ConnectionEvent.FAILURE_DHCP, connectNetwork, TEST_BSSID);
verify(mWifiMetrics).incrementNetworkSuggestionApiNumConnectFailure();
@@ -886,14 +926,14 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
public void testOnNetworkConnectionSuccessWithMultipleMatch() {
WifiConfiguration wifiConfiguration = WifiConfigurationTestUtil.createOpenNetwork();
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- wifiConfiguration, true, false, TEST_UID_1,
+ wifiConfiguration, null, true, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList1 =
new ArrayList<WifiNetworkSuggestion>() {{
add(networkSuggestion1);
}};
WifiNetworkSuggestion networkSuggestion2 = new WifiNetworkSuggestion(
- wifiConfiguration, true, false, TEST_UID_2,
+ wifiConfiguration, null, true, false, TEST_UID_2,
TEST_PACKAGE_2);
List<WifiNetworkSuggestion> networkSuggestionList2 =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -909,9 +949,15 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
mWifiNetworkSuggestionsManager.setHasUserApprovedForApp(true, TEST_PACKAGE_1);
mWifiNetworkSuggestionsManager.setHasUserApprovedForApp(true, TEST_PACKAGE_2);
+ WifiConfiguration connectNetwork =
+ new WifiConfiguration(networkSuggestion1.wifiConfiguration);
+ connectNetwork.fromWifiNetworkSuggestion = true;
+ connectNetwork.ephemeral = true;
+ connectNetwork.creatorName = TEST_APP_NAME_1;
+
// Simulate connecting to the network.
mWifiNetworkSuggestionsManager.handleConnectionAttemptEnded(
- WifiMetrics.ConnectionEvent.FAILURE_NONE, wifiConfiguration, TEST_BSSID);
+ WifiMetrics.ConnectionEvent.FAILURE_NONE, connectNetwork, TEST_BSSID);
verify(mWifiMetrics).incrementNetworkSuggestionApiNumConnectSuccess();
@@ -948,14 +994,14 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
WifiConfiguration wifiConfiguration = WifiConfigurationTestUtil.createOpenNetwork();
wifiConfiguration.BSSID = TEST_BSSID;
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- wifiConfiguration, true, false, TEST_UID_1,
+ wifiConfiguration, null, true, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList1 =
new ArrayList<WifiNetworkSuggestion>() {{
add(networkSuggestion1);
}};
WifiNetworkSuggestion networkSuggestion2 = new WifiNetworkSuggestion(
- wifiConfiguration, true, false, TEST_UID_2,
+ wifiConfiguration, null, true, false, TEST_UID_2,
TEST_PACKAGE_2);
List<WifiNetworkSuggestion> networkSuggestionList2 =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -970,10 +1016,14 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
TEST_PACKAGE_2));
mWifiNetworkSuggestionsManager.setHasUserApprovedForApp(true, TEST_PACKAGE_1);
mWifiNetworkSuggestionsManager.setHasUserApprovedForApp(true, TEST_PACKAGE_2);
-
+ WifiConfiguration connectNetwork =
+ new WifiConfiguration(networkSuggestion1.wifiConfiguration);
+ connectNetwork.fromWifiNetworkSuggestion = true;
+ connectNetwork.ephemeral = true;
+ connectNetwork.creatorName = TEST_APP_NAME_1;
// Simulate connecting to the network.
mWifiNetworkSuggestionsManager.handleConnectionAttemptEnded(
- WifiMetrics.ConnectionEvent.FAILURE_NONE, wifiConfiguration, TEST_BSSID);
+ WifiMetrics.ConnectionEvent.FAILURE_NONE, connectNetwork, TEST_BSSID);
verify(mWifiMetrics).incrementNetworkSuggestionApiNumConnectSuccess();
@@ -1011,14 +1061,14 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
WifiConfiguration wifiConfiguration2 = new WifiConfiguration(wifiConfiguration1);
wifiConfiguration2.BSSID = TEST_BSSID;
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- wifiConfiguration1, true, false, TEST_UID_1,
+ wifiConfiguration1, null, true, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList1 =
new ArrayList<WifiNetworkSuggestion>() {{
add(networkSuggestion1);
}};
WifiNetworkSuggestion networkSuggestion2 = new WifiNetworkSuggestion(
- wifiConfiguration2, true, false, TEST_UID_2,
+ wifiConfiguration2, null, true, false, TEST_UID_2,
TEST_PACKAGE_2);
List<WifiNetworkSuggestion> networkSuggestionList2 =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -1034,9 +1084,15 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
mWifiNetworkSuggestionsManager.setHasUserApprovedForApp(true, TEST_PACKAGE_1);
mWifiNetworkSuggestionsManager.setHasUserApprovedForApp(true, TEST_PACKAGE_2);
+ WifiConfiguration connectNetwork =
+ new WifiConfiguration(networkSuggestion1.wifiConfiguration);
+ connectNetwork.fromWifiNetworkSuggestion = true;
+ connectNetwork.ephemeral = true;
+ connectNetwork.creatorName = TEST_APP_NAME_1;
+
// Simulate connecting to the network.
mWifiNetworkSuggestionsManager.handleConnectionAttemptEnded(
- WifiMetrics.ConnectionEvent.FAILURE_NONE, wifiConfiguration1, TEST_BSSID);
+ WifiMetrics.ConnectionEvent.FAILURE_NONE, connectNetwork, TEST_BSSID);
verify(mWifiMetrics).incrementNetworkSuggestionApiNumConnectSuccess();
@@ -1072,7 +1128,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testOnNetworkConnectionWhenAppNotApproved() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), true, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, true, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -1084,10 +1140,15 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
verify(mWifiPermissionsUtil).checkNetworkCarrierProvisioningPermission(TEST_UID_1);
assertFalse(mWifiNetworkSuggestionsManager.hasUserApprovedForApp(TEST_PACKAGE_1));
+ WifiConfiguration connectNetwork =
+ new WifiConfiguration(networkSuggestion.wifiConfiguration);
+ connectNetwork.fromWifiNetworkSuggestion = true;
+ connectNetwork.ephemeral = true;
+ connectNetwork.creatorName = TEST_APP_NAME_1;
+
// Simulate connecting to the network.
mWifiNetworkSuggestionsManager.handleConnectionAttemptEnded(
- WifiMetrics.ConnectionEvent.FAILURE_NONE, networkSuggestion.wifiConfiguration,
- TEST_BSSID);
+ WifiMetrics.ConnectionEvent.FAILURE_NONE, connectNetwork, TEST_BSSID);
// Verify no broadcast was sent out.
mInorder.verify(mWifiPermissionsUtil, never()).enforceCanAccessScanResults(
@@ -1106,7 +1167,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testOnNetworkConnectionWhenIsAppInteractionRequiredNotSet() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -1118,10 +1179,15 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
verify(mWifiPermissionsUtil).checkNetworkCarrierProvisioningPermission(TEST_UID_1);
mWifiNetworkSuggestionsManager.setHasUserApprovedForApp(true, TEST_PACKAGE_1);
+ WifiConfiguration connectNetwork =
+ new WifiConfiguration(networkSuggestion.wifiConfiguration);
+ connectNetwork.fromWifiNetworkSuggestion = true;
+ connectNetwork.ephemeral = true;
+ connectNetwork.creatorName = TEST_APP_NAME_1;
+
// Simulate connecting to the network.
mWifiNetworkSuggestionsManager.handleConnectionAttemptEnded(
- WifiMetrics.ConnectionEvent.FAILURE_NONE, networkSuggestion.wifiConfiguration,
- TEST_BSSID);
+ WifiMetrics.ConnectionEvent.FAILURE_NONE, connectNetwork, TEST_BSSID);
// Verify no broadcast was sent out.
mInorder.verify(mWifiPermissionsUtil, never()).enforceCanAccessScanResults(
@@ -1140,7 +1206,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testOnNetworkConnectionWhenAppDoesNotHoldLocationPermission() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), true, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, true, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -1155,10 +1221,15 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
doThrow(new SecurityException())
.when(mWifiPermissionsUtil).enforceCanAccessScanResults(TEST_PACKAGE_1, TEST_UID_1);
+ WifiConfiguration connectNetwork =
+ new WifiConfiguration(networkSuggestion.wifiConfiguration);
+ connectNetwork.fromWifiNetworkSuggestion = true;
+ connectNetwork.ephemeral = true;
+ connectNetwork.creatorName = TEST_APP_NAME_1;
+
// Simulate connecting to the network.
mWifiNetworkSuggestionsManager.handleConnectionAttemptEnded(
- WifiMetrics.ConnectionEvent.FAILURE_NONE, networkSuggestion.wifiConfiguration,
- TEST_BSSID);
+ WifiMetrics.ConnectionEvent.FAILURE_NONE, connectNetwork, TEST_BSSID);
mInorder.verify(mWifiPermissionsUtil)
.enforceCanAccessScanResults(TEST_PACKAGE_1, TEST_UID_1);
@@ -1173,7 +1244,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testAddNetworkSuggestionsConfigStoreWrite() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList =
@@ -1215,7 +1286,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testRemoveNetworkSuggestionsConfigStoreWrite() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList =
@@ -1250,13 +1321,24 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
*/
@Test
public void testNetworkSuggestionsConfigStoreLoad() {
+ PasspointConfiguration passpointConfiguration = new PasspointConfiguration();
+ HomeSp homeSp = new HomeSp();
+ homeSp.setFqdn(TEST_FQDN);
+ passpointConfiguration.setHomeSp(homeSp);
+ WifiConfiguration dummyConfiguration = new WifiConfiguration();
+ dummyConfiguration.FQDN = TEST_FQDN;
PerAppInfo appInfo = new PerAppInfo(TEST_PACKAGE_1);
appInfo.hasUserApproved = true;
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
+ TEST_PACKAGE_1);
+ WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
+ dummyConfiguration, passpointConfiguration, false, false, TEST_UID_1,
TEST_PACKAGE_1);
appInfo.extNetworkSuggestions.add(
ExtendedWifiNetworkSuggestion.fromWns(networkSuggestion, appInfo));
+ appInfo.extNetworkSuggestions.add(
+ ExtendedWifiNetworkSuggestion.fromWns(networkSuggestion1, appInfo));
mDataSource.fromDeserialized(new HashMap<String, PerAppInfo>() {{
put(TEST_PACKAGE_1, appInfo);
}});
@@ -1266,6 +1348,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
Set<WifiNetworkSuggestion> expectedAllNetworkSuggestions =
new HashSet<WifiNetworkSuggestion>() {{
add(networkSuggestion);
+ add(networkSuggestion1);
}};
assertEquals(expectedAllNetworkSuggestions, allNetworkSuggestions);
@@ -1278,6 +1361,18 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
add(networkSuggestion);
}};
assertEquals(expectedMatchingNetworkSuggestions, matchingNetworkSuggestions);
+
+ // Ensure we can lookup the passpoint network.
+ WifiConfiguration connectNetwork = WifiConfigurationTestUtil.createPasspointNetwork();
+ connectNetwork.FQDN = TEST_FQDN;
+ Set<ExtendedWifiNetworkSuggestion> matchingExtNetworkSuggestions =
+ mWifiNetworkSuggestionsManager
+ .getNetworkSuggestionsForWifiConfiguration(connectNetwork, null);
+ Set<ExtendedWifiNetworkSuggestion> expectedMatchingExtNetworkSuggestions =
+ new HashSet<ExtendedWifiNetworkSuggestion>() {{
+ add(ExtendedWifiNetworkSuggestion.fromWns(networkSuggestion1, appInfo));
+ }};
+ assertEquals(expectedMatchingExtNetworkSuggestions, matchingExtNetworkSuggestions);
}
/**
@@ -1289,7 +1384,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
PerAppInfo appInfo1 = new PerAppInfo(TEST_PACKAGE_1);
appInfo1.hasUserApproved = true;
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
appInfo1.extNetworkSuggestions.add(
ExtendedWifiNetworkSuggestion.fromWns(networkSuggestion1, appInfo1));
@@ -1303,7 +1398,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
PerAppInfo appInfo2 = new PerAppInfo(TEST_PACKAGE_2);
appInfo2.hasUserApproved = true;
WifiNetworkSuggestion networkSuggestion2 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
appInfo2.extNetworkSuggestions.add(
ExtendedWifiNetworkSuggestion.fromWns(networkSuggestion2, appInfo2));
@@ -1342,7 +1437,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
public void
testRemoveNetworkSuggestionsMatchingConnectionSuccessWithOneMatch() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -1352,11 +1447,14 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
mWifiNetworkSuggestionsManager.add(networkSuggestionList, TEST_UID_1,
TEST_PACKAGE_1));
mWifiNetworkSuggestionsManager.setHasUserApprovedForApp(true, TEST_PACKAGE_1);
-
// Simulate connecting to the network.
+ WifiConfiguration connectNetwork =
+ new WifiConfiguration(networkSuggestion.wifiConfiguration);
+ connectNetwork.fromWifiNetworkSuggestion = true;
+ connectNetwork.ephemeral = true;
+ connectNetwork.creatorName = TEST_APP_NAME_1;
mWifiNetworkSuggestionsManager.handleConnectionAttemptEnded(
- WifiMetrics.ConnectionEvent.FAILURE_NONE, networkSuggestion.wifiConfiguration,
- TEST_BSSID);
+ WifiMetrics.ConnectionEvent.FAILURE_NONE, connectNetwork, TEST_BSSID);
// Now remove the network suggestion and ensure we did trigger a disconnect.
assertEquals(WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS,
@@ -1374,7 +1472,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
public void
testRemoveAllNetworkSuggestionsMatchingConnectionSuccessWithOneMatch() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -1384,11 +1482,14 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
mWifiNetworkSuggestionsManager.add(networkSuggestionList, TEST_UID_1,
TEST_PACKAGE_1));
mWifiNetworkSuggestionsManager.setHasUserApprovedForApp(true, TEST_PACKAGE_1);
-
// Simulate connecting to the network.
+ WifiConfiguration connectNetwork =
+ new WifiConfiguration(networkSuggestion.wifiConfiguration);
+ connectNetwork.fromWifiNetworkSuggestion = true;
+ connectNetwork.ephemeral = true;
+ connectNetwork.creatorName = TEST_APP_NAME_1;
mWifiNetworkSuggestionsManager.handleConnectionAttemptEnded(
- WifiMetrics.ConnectionEvent.FAILURE_NONE, networkSuggestion.wifiConfiguration,
- TEST_BSSID);
+ WifiMetrics.ConnectionEvent.FAILURE_NONE, connectNetwork, TEST_BSSID);
// Now remove all network suggestion and ensure we did trigger a disconnect.
assertEquals(WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS,
@@ -1407,14 +1508,14 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
public void testRemoveAppMatchingConnectionSuccessWithMultipleMatch() {
WifiConfiguration wifiConfiguration = WifiConfigurationTestUtil.createOpenNetwork();
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- wifiConfiguration, true, false, TEST_UID_1,
+ wifiConfiguration, null, true, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList1 =
new ArrayList<WifiNetworkSuggestion>() {{
add(networkSuggestion1);
}};
WifiNetworkSuggestion networkSuggestion2 = new WifiNetworkSuggestion(
- wifiConfiguration, true, false, TEST_UID_2,
+ wifiConfiguration, null, true, false, TEST_UID_2,
TEST_PACKAGE_2);
List<WifiNetworkSuggestion> networkSuggestionList2 =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -1431,8 +1532,13 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
mWifiNetworkSuggestionsManager.setHasUserApprovedForApp(true, TEST_PACKAGE_2);
// Simulate connecting to the network.
+ WifiConfiguration connectNetwork =
+ new WifiConfiguration(wifiConfiguration);
+ connectNetwork.fromWifiNetworkSuggestion = true;
+ connectNetwork.ephemeral = true;
+ connectNetwork.creatorName = TEST_APP_NAME_1;
mWifiNetworkSuggestionsManager.handleConnectionAttemptEnded(
- WifiMetrics.ConnectionEvent.FAILURE_NONE, wifiConfiguration, TEST_BSSID);
+ WifiMetrics.ConnectionEvent.FAILURE_NONE, connectNetwork, TEST_BSSID);
// Now remove one of the apps and ensure we did not trigger a disconnect.
mWifiNetworkSuggestionsManager.removeApp(TEST_PACKAGE_1);
@@ -1451,7 +1557,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testRemoveAppNotMatchingConnectionSuccess() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -1479,7 +1585,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testRemoveNetworkSuggestionsNotMatchingConnectionSuccessAfterConnectionFailure() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -1489,11 +1595,14 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
mWifiNetworkSuggestionsManager.add(networkSuggestionList, TEST_UID_1,
TEST_PACKAGE_1));
mWifiNetworkSuggestionsManager.setHasUserApprovedForApp(true, TEST_PACKAGE_1);
-
+ WifiConfiguration connectNetwork =
+ new WifiConfiguration(networkSuggestion.wifiConfiguration);
+ connectNetwork.fromWifiNetworkSuggestion = true;
+ connectNetwork.ephemeral = true;
+ connectNetwork.creatorName = TEST_APP_NAME_1;
// Simulate failing connection to the network.
mWifiNetworkSuggestionsManager.handleConnectionAttemptEnded(
- WifiMetrics.ConnectionEvent.FAILURE_DHCP, networkSuggestion.wifiConfiguration,
- TEST_BSSID);
+ WifiMetrics.ConnectionEvent.FAILURE_DHCP, connectNetwork, TEST_BSSID);
// Simulate connecting to some other network.
mWifiNetworkSuggestionsManager.handleConnectionAttemptEnded(
@@ -1512,10 +1621,10 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testAddRemoveNetworkSuggestionsStartStopAppOpsWatch() {
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
WifiNetworkSuggestion networkSuggestion2 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_2,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_2,
TEST_PACKAGE_2);
List<WifiNetworkSuggestion> networkSuggestionList1 =
@@ -1561,7 +1670,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testAppOpsChangeAfterSuggestionsAdd() {
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -1613,7 +1722,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
public void testAppOpsChangeAfterConfigStoreLoad() {
PerAppInfo appInfo = new PerAppInfo(TEST_PACKAGE_1);
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
appInfo.extNetworkSuggestions.add(
ExtendedWifiNetworkSuggestion.fromWns(networkSuggestion, appInfo));
@@ -1660,7 +1769,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testAppOpsChangeWrongUid() {
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -1703,10 +1812,10 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testRemoveApp() {
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
WifiNetworkSuggestion networkSuggestion2 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_2,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_2,
TEST_PACKAGE_2);
List<WifiNetworkSuggestion> networkSuggestionList1 =
@@ -1769,10 +1878,10 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testClear() {
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
WifiNetworkSuggestion networkSuggestion2 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_2,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_2,
TEST_PACKAGE_2);
List<WifiNetworkSuggestion> networkSuggestionList1 =
@@ -1826,7 +1935,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testUserApprovalNotificationDismissalWhenGetScanResult() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), true, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, true, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -1867,7 +1976,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testUserApprovalNotificationClickOnAllowWhenGetScanResult() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), true, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, true, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -1913,7 +2022,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testUserApprovalNotificationClickOnDisallowWhenGetScanResult() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), true, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, true, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -1982,7 +2091,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testUserApprovalNotificationWhilePreviousNotificationActive() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), true, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, true, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -2021,16 +2130,16 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
// App add network suggestions then get stored suggestions.
WifiNetworkSuggestion networkSuggestion1 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
WifiNetworkSuggestion networkSuggestion2 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOweNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOweNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
WifiNetworkSuggestion networkSuggestion3 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createSaeNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createSaeNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
WifiNetworkSuggestion networkSuggestion4 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createPskNetwork(), false, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createPskNetwork(), null, false, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList = new ArrayList<>();
networkSuggestionList.add(networkSuggestion1);
@@ -2062,13 +2171,13 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
public void testGetHiddenNetworks() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), true, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, true, false, TEST_UID_1,
TEST_PACKAGE_1);
WifiNetworkSuggestion hiddenNetworkSuggestion1 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createPskHiddenNetwork(), true, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createPskHiddenNetwork(), null, true, false, TEST_UID_1,
TEST_PACKAGE_1);
WifiNetworkSuggestion hiddenNetworkSuggestion2 = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createPskHiddenNetwork(), true, false, TEST_UID_2,
+ WifiConfigurationTestUtil.createPskHiddenNetwork(), null, true, false, TEST_UID_2,
TEST_PACKAGE_2);
List<WifiNetworkSuggestion> networkSuggestionList1 =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -2100,7 +2209,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testUserApprovalNotificationClickOnAllowDuringAddingSuggestions() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), true, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, true, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -2135,7 +2244,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
@Test
public void testUserApprovalNotificationClickOnDisallowWhenAddSuggestions() {
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
- WifiConfigurationTestUtil.createOpenNetwork(), true, false, TEST_UID_1,
+ WifiConfigurationTestUtil.createOpenNetwork(), null, true, false, TEST_UID_1,
TEST_PACKAGE_1);
List<WifiNetworkSuggestion> networkSuggestionList =
new ArrayList<WifiNetworkSuggestion>() {{
@@ -2183,6 +2292,57 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
}
/**
+ * Verify a successful lookup of a single passpoint network suggestion matching the
+ * connected network.
+ * a) The corresponding network suggestion has the
+ * {@link WifiNetworkSuggestion#isAppInteractionRequired} flag set.
+ * b) The app holds location permission.
+ * This should trigger a broadcast to the app.
+ */
+ @Test
+ public void testOnPasspointNetworkConnectionSuccessWithOneMatch() {
+ PasspointConfiguration passpointConfiguration = new PasspointConfiguration();
+ HomeSp homeSp = new HomeSp();
+ homeSp.setFqdn(TEST_FQDN);
+ passpointConfiguration.setHomeSp(homeSp);
+ WifiConfiguration dummyConfiguration = new WifiConfiguration();
+ dummyConfiguration.FQDN = TEST_FQDN;
+ WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
+ dummyConfiguration, passpointConfiguration, true, false, TEST_UID_1,
+ TEST_PACKAGE_1);
+ List<WifiNetworkSuggestion> networkSuggestionList =
+ new ArrayList<WifiNetworkSuggestion>() {{
+ add(networkSuggestion);
+ }};
+ when(mPasspointManager.addOrUpdateProvider(any(), anyInt(), anyString(), anyBoolean()))
+ .thenReturn(true);
+ assertEquals(WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS,
+ mWifiNetworkSuggestionsManager.add(networkSuggestionList, TEST_UID_1,
+ TEST_PACKAGE_1));
+
+ mWifiNetworkSuggestionsManager.setHasUserApprovedForApp(true, TEST_PACKAGE_1);
+
+ // Simulate connecting to the network.
+ WifiConfiguration connectNetwork = WifiConfigurationTestUtil.createPasspointNetwork();
+ connectNetwork.FQDN = TEST_FQDN;
+ connectNetwork.fromWifiNetworkSuggestion = true;
+ connectNetwork.ephemeral = true;
+ connectNetwork.creatorName = TEST_APP_NAME_1;
+ mWifiNetworkSuggestionsManager.handleConnectionAttemptEnded(
+ WifiMetrics.ConnectionEvent.FAILURE_NONE, connectNetwork, TEST_BSSID);
+
+ verify(mWifiMetrics).incrementNetworkSuggestionApiNumConnectSuccess();
+
+ // Verify that the correct broadcast was sent out.
+ mInorder.verify(mWifiPermissionsUtil)
+ .enforceCanAccessScanResults(TEST_PACKAGE_1, TEST_UID_1);
+ validatePostConnectionBroadcastSent(TEST_PACKAGE_1, networkSuggestion);
+
+ // Verify no more broadcast were sent out.
+ mInorder.verifyNoMoreInteractions();
+ }
+
+ /**
* Creates a scan detail corresponding to the provided network values.
*/
private ScanDetail createScanDetailForNetwork(WifiConfiguration configuration) {
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java b/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java
index 955d890aa..e3b9f7103 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java
@@ -2377,25 +2377,25 @@ public class WifiServiceImplTest extends WifiBaseTest {
eq(Build.VERSION_CODES.Q), anyInt())).thenReturn(true);
when(mPasspointManager.addOrUpdateProvider(
- any(PasspointConfiguration.class), anyInt(), eq(TEST_PACKAGE_NAME)))
+ any(PasspointConfiguration.class), anyInt(), eq(TEST_PACKAGE_NAME), eq(false)))
.thenReturn(true);
mLooper.startAutoDispatch();
assertEquals(0, mWifiServiceImpl.addOrUpdateNetwork(config, TEST_PACKAGE_NAME));
mLooper.stopAutoDispatch();
verifyCheckChangePermission(TEST_PACKAGE_NAME);
verify(mPasspointManager).addOrUpdateProvider(
- any(PasspointConfiguration.class), anyInt(), eq(TEST_PACKAGE_NAME));
+ any(PasspointConfiguration.class), anyInt(), eq(TEST_PACKAGE_NAME), eq(false));
reset(mPasspointManager);
when(mPasspointManager.addOrUpdateProvider(
- any(PasspointConfiguration.class), anyInt(), eq(TEST_PACKAGE_NAME)))
+ any(PasspointConfiguration.class), anyInt(), eq(TEST_PACKAGE_NAME), anyBoolean()))
.thenReturn(false);
mLooper.startAutoDispatch();
assertEquals(-1, mWifiServiceImpl.addOrUpdateNetwork(config, TEST_PACKAGE_NAME));
mLooper.stopAutoDispatch();
verifyCheckChangePermission(TEST_PACKAGE_NAME);
verify(mPasspointManager).addOrUpdateProvider(
- any(PasspointConfiguration.class), anyInt(), eq(TEST_PACKAGE_NAME));
+ any(PasspointConfiguration.class), anyInt(), eq(TEST_PACKAGE_NAME), anyBoolean());
}
/**
@@ -3977,7 +3977,7 @@ public class WifiServiceImplTest extends WifiBaseTest {
config.setHomeSp(homeSp);
when(mPasspointManager.addOrUpdateProvider(
- config, Binder.getCallingUid(), TEST_PACKAGE_NAME))
+ config, Binder.getCallingUid(), TEST_PACKAGE_NAME, false))
.thenReturn(true);
mLooper.startAutoDispatch();
assertTrue(mWifiServiceImpl.addOrUpdatePasspointConfiguration(config, TEST_PACKAGE_NAME));
@@ -3985,7 +3985,7 @@ public class WifiServiceImplTest extends WifiBaseTest {
reset(mPasspointManager);
when(mPasspointManager.addOrUpdateProvider(
- config, Binder.getCallingUid(), TEST_PACKAGE_NAME))
+ config, Binder.getCallingUid(), TEST_PACKAGE_NAME, false))
.thenReturn(false);
mLooper.startAutoDispatch();
assertFalse(mWifiServiceImpl.addOrUpdatePasspointConfiguration(config, TEST_PACKAGE_NAME));
diff --git a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointConfigUserStoreDataTest.java b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointConfigUserStoreDataTest.java
index 9943c4fb2..54a74978d 100644
--- a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointConfigUserStoreDataTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointConfigUserStoreDataTest.java
@@ -244,11 +244,11 @@ public class PasspointConfigUserStoreDataTest extends WifiBaseTest {
List<PasspointProvider> providerList = new ArrayList<>();
providerList.add(new PasspointProvider(createFullPasspointConfiguration(),
mKeyStore, mSimAccessor, TEST_PROVIDER_ID, TEST_CREATOR_UID, TEST_CREATOR_PACKAGE,
- Arrays.asList(TEST_CA_CERTIFICATE_ALIAS), TEST_CLIENT_CERTIFICATE_ALIAS,
+ false, Arrays.asList(TEST_CA_CERTIFICATE_ALIAS), TEST_CLIENT_CERTIFICATE_ALIAS,
TEST_CLIENT_PRIVATE_KEY_ALIAS, null, TEST_HAS_EVER_CONNECTED, TEST_SHARED));
providerList.add(new PasspointProvider(createFullPasspointConfiguration(),
mKeyStore, mSimAccessor, TEST_PROVIDER_ID_2, TEST_CREATOR_UID, TEST_CREATOR_PACKAGE,
- Arrays.asList(TEST_CA_CERTIFICATE_ALIAS, TEST_CA_CERTIFICATE_ALIAS_2),
+ true, Arrays.asList(TEST_CA_CERTIFICATE_ALIAS, TEST_CA_CERTIFICATE_ALIAS_2),
TEST_CLIENT_CERTIFICATE_ALIAS,
TEST_CLIENT_PRIVATE_KEY_ALIAS, TEST_REMEDIATION_CA_CERTIFICATE_ALIAS,
TEST_HAS_EVER_CONNECTED, TEST_SHARED));
diff --git a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java
index 34cd5021f..f24dc364a 100644
--- a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java
@@ -48,6 +48,7 @@ import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;
@@ -94,6 +95,7 @@ import com.android.server.wifi.WifiInjector;
import com.android.server.wifi.WifiKeyStore;
import com.android.server.wifi.WifiMetrics;
import com.android.server.wifi.WifiNative;
+import com.android.server.wifi.WifiNetworkSuggestionsManager;
import com.android.server.wifi.hotspot2.anqp.ANQPElement;
import com.android.server.wifi.hotspot2.anqp.Constants.ANQPElementType;
import com.android.server.wifi.hotspot2.anqp.DomainNameElement;
@@ -132,6 +134,7 @@ import java.util.Set;
public class PasspointManagerTest extends WifiBaseTest {
private static final long BSSID = 0x112233445566L;
private static final String TEST_PACKAGE = "com.android.test";
+ private static final String TEST_PACKAGE1 = "com.android.test1";
private static final String ICON_FILENAME = "test";
private static final String TEST_FQDN = "test1.test.com";
private static final String TEST_FQDN2 = "test2.test.com";
@@ -160,6 +163,7 @@ public class PasspointManagerTest extends WifiBaseTest {
private static final ANQPNetworkKey TEST_ANQP_KEY2 = ANQPNetworkKey.buildKey(
TEST_SSID, TEST_BSSID, TEST_HESSID, TEST_ANQP_DOMAIN_ID2);
private static final int TEST_CREATOR_UID = 1234;
+ private static final int TEST_CREATOR_UID1 = 1235;
private static final int TEST_UID = 1500;
@Mock Context mContext;
@@ -189,6 +193,7 @@ public class PasspointManagerTest extends WifiBaseTest {
@Mock TelephonyManager mTelephonyManager;
@Mock TelephonyManager mDataTelephonyManager;
@Mock SubscriptionManager mSubscriptionManager;
+ @Mock WifiNetworkSuggestionsManager mWifiNetworkSuggestionsManager;
Handler mHandler;
TestLooper mLooper;
@@ -215,6 +220,8 @@ public class PasspointManagerTest extends WifiBaseTest {
.thenReturn(mPasspointProvisioner);
when(mContext.getSystemService(Context.APP_OPS_SERVICE)).thenReturn(mAppOpsManager);
when(mWifiInjector.getClientModeImpl()).thenReturn(mClientModeImpl);
+ when(mWifiInjector.getWifiNetworkSuggestionsManager())
+ .thenReturn(mWifiNetworkSuggestionsManager);
mLooper = new TestLooper();
mHandler = new Handler(mLooper.getLooper());
mManager = new PasspointManager(mContext, mWifiInjector, mHandler, mWifiNative,
@@ -367,10 +374,10 @@ public class PasspointManagerTest extends WifiBaseTest {
PasspointConfiguration config = createTestConfigWithUserCredential(fqdn, friendlyName);
PasspointProvider provider = createMockProvider(config, wifiConfig);
when(mObjectFactory.makePasspointProvider(eq(config), eq(mWifiKeyStore),
- eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE))).thenReturn(
- provider);
+ eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE),
+ eq(false))).thenReturn(provider);
when(provider.getPackageName()).thenReturn(packageName);
- assertTrue(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE));
+ assertTrue(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE, false));
return provider;
}
@@ -384,10 +391,10 @@ public class PasspointManagerTest extends WifiBaseTest {
PasspointConfiguration config = createTestConfigWithSimCredential(fqdn, imsi, realm);
PasspointProvider provider = createMockProvider(config);
when(mObjectFactory.makePasspointProvider(eq(config), eq(mWifiKeyStore),
- eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE))).thenReturn(
- provider);
+ eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE),
+ eq(false))).thenReturn(provider);
- assertTrue(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE));
+ assertTrue(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE, false));
return provider;
}
@@ -603,7 +610,7 @@ public class PasspointManagerTest extends WifiBaseTest {
*/
@Test
public void addProviderWithNullConfig() throws Exception {
- assertFalse(mManager.addOrUpdateProvider(null, TEST_CREATOR_UID, TEST_PACKAGE));
+ assertFalse(mManager.addOrUpdateProvider(null, TEST_CREATOR_UID, TEST_PACKAGE, false));
verify(mWifiMetrics).incrementNumPasspointProviderInstallation();
verify(mWifiMetrics, never()).incrementNumPasspointProviderInstallSuccess();
}
@@ -616,7 +623,7 @@ public class PasspointManagerTest extends WifiBaseTest {
@Test
public void addProviderWithEmptyConfig() throws Exception {
assertFalse(mManager.addOrUpdateProvider(new PasspointConfiguration(), TEST_CREATOR_UID,
- TEST_PACKAGE));
+ TEST_PACKAGE, false));
verify(mWifiMetrics).incrementNumPasspointProviderInstallation();
verify(mWifiMetrics, never()).incrementNumPasspointProviderInstallSuccess();
}
@@ -633,34 +640,32 @@ public class PasspointManagerTest extends WifiBaseTest {
TEST_FRIENDLY_NAME);
// EAP-TLS not allowed for user credential.
config.getCredential().getUserCredential().setEapType(EAPConstants.EAP_TLS);
- assertFalse(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE));
+ assertFalse(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE, false));
verify(mWifiMetrics).incrementNumPasspointProviderInstallation();
verify(mWifiMetrics, never()).incrementNumPasspointProviderInstallSuccess();
}
/**
- * Verify that adding a provider with a valid configuration and user credential will succeed.
+ * Verify that adding a user saved provider with a valid configuration and user credential will
+ * succeed.
*
* @throws Exception
*/
@Test
- public void addRemoveProviderWithValidUserCredential() throws Exception {
+ public void addRemoveSavedProviderWithValidUserCredential() throws Exception {
PasspointConfiguration config = createTestConfigWithUserCredential(TEST_FQDN,
TEST_FRIENDLY_NAME);
PasspointProvider provider = createMockProvider(config);
when(provider.getPackageName()).thenReturn(TEST_PACKAGE);
when(mObjectFactory.makePasspointProvider(eq(config), eq(mWifiKeyStore),
- eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE))).thenReturn(
- provider);
- assertTrue(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE));
+ eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE),
+ eq(false))).thenReturn(provider);
+ assertTrue(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE, false));
verifyInstalledConfig(config);
- verify(mWifiConfigManager).removePasspointConfiguredNetwork(
- provider.getWifiConfig().configKey());
- verify(mWifiConfigManager).saveToStore(true);
verify(mWifiMetrics).incrementNumPasspointProviderInstallation();
verify(mWifiMetrics).incrementNumPasspointProviderInstallSuccess();
- verify(mAppOpsManager).startWatchingMode(eq(OPSTR_CHANGE_WIFI_STATE), eq(TEST_PACKAGE), any(
- AppOpsManager.OnOpChangedListener.class));
+ verify(mAppOpsManager).startWatchingMode(eq(OPSTR_CHANGE_WIFI_STATE), eq(TEST_PACKAGE),
+ any(AppOpsManager.OnOpChangedListener.class));
reset(mWifiMetrics);
reset(mWifiConfigManager);
@@ -689,22 +694,21 @@ public class PasspointManagerTest extends WifiBaseTest {
}
/**
- * Verify that adding a provider with a valid configuration and SIM credential will succeed.
+ * Verify that adding a user saved provider with a valid configuration and SIM credential will
+ * succeed.
*
* @throws Exception
*/
@Test
- public void addRemoveProviderWithValidSimCredential() throws Exception {
+ public void addRemoveSavedProviderWithValidSimCredential() throws Exception {
PasspointConfiguration config = createTestConfigWithSimCredential(TEST_FQDN, TEST_IMSI,
TEST_REALM);
PasspointProvider provider = createMockProvider(config);
when(mObjectFactory.makePasspointProvider(eq(config), eq(mWifiKeyStore),
- eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE))).thenReturn(
- provider);
- assertTrue(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE));
+ eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE),
+ eq(false))).thenReturn(provider);
+ assertTrue(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE, false));
verifyInstalledConfig(config);
- verify(mWifiConfigManager).removePasspointConfiguredNetwork(
- provider.getWifiConfig().configKey());
verify(mWifiConfigManager).saveToStore(true);
verify(mWifiMetrics).incrementNumPasspointProviderInstallation();
verify(mWifiMetrics).incrementNumPasspointProviderInstallSuccess();
@@ -735,25 +739,23 @@ public class PasspointManagerTest extends WifiBaseTest {
}
/**
- * Verify that adding a provider with the same base domain as the existing provider will
- * succeed, and verify that the existing provider is replaced by the new provider with
+ * Verify that adding a user saved provider with the same base domain as the existing provider
+ * will succeed, and verify that the existing provider is replaced by the new provider with
* the new configuration.
*
* @throws Exception
*/
@Test
- public void addProviderWithExistingConfig() throws Exception {
+ public void addSavedProviderWithExistingConfig() throws Exception {
// Add a provider with the original configuration.
PasspointConfiguration origConfig = createTestConfigWithSimCredential(TEST_FQDN, TEST_IMSI,
TEST_REALM);
PasspointProvider origProvider = createMockProvider(origConfig);
when(mObjectFactory.makePasspointProvider(eq(origConfig), eq(mWifiKeyStore),
- eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE))).thenReturn(
- origProvider);
- assertTrue(mManager.addOrUpdateProvider(origConfig, TEST_CREATOR_UID, TEST_PACKAGE));
+ eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE),
+ eq(false))).thenReturn(origProvider);
+ assertTrue(mManager.addOrUpdateProvider(origConfig, TEST_CREATOR_UID, TEST_PACKAGE, false));
verifyInstalledConfig(origConfig);
- verify(mWifiConfigManager).removePasspointConfiguredNetwork(
- origProvider.getWifiConfig().configKey());
verify(mWifiConfigManager).saveToStore(true);
verify(mWifiMetrics).incrementNumPasspointProviderInstallation();
verify(mWifiMetrics).incrementNumPasspointProviderInstallSuccess();
@@ -772,9 +774,9 @@ public class PasspointManagerTest extends WifiBaseTest {
TEST_FRIENDLY_NAME);
PasspointProvider newProvider = createMockProvider(newConfig);
when(mObjectFactory.makePasspointProvider(eq(newConfig), eq(mWifiKeyStore),
- eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE))).thenReturn(
- newProvider);
- assertTrue(mManager.addOrUpdateProvider(newConfig, TEST_CREATOR_UID, TEST_PACKAGE));
+ eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE),
+ eq(false))).thenReturn(newProvider);
+ assertTrue(mManager.addOrUpdateProvider(newConfig, TEST_CREATOR_UID, TEST_PACKAGE, false));
verifyInstalledConfig(newConfig);
verify(mWifiConfigManager).removePasspointConfiguredNetwork(
newProvider.getWifiConfig().configKey());
@@ -802,9 +804,9 @@ public class PasspointManagerTest extends WifiBaseTest {
PasspointProvider provider = mock(PasspointProvider.class);
when(provider.installCertsAndKeys()).thenReturn(false);
when(mObjectFactory.makePasspointProvider(eq(config), eq(mWifiKeyStore),
- eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE))).thenReturn(
- provider);
- assertFalse(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE));
+ eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE), eq(false)))
+ .thenReturn(provider);
+ assertFalse(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE, false));
verify(mWifiMetrics).incrementNumPasspointProviderInstallation();
verify(mWifiMetrics, never()).incrementNumPasspointProviderInstallSuccess();
}
@@ -820,7 +822,7 @@ public class PasspointManagerTest extends WifiBaseTest {
TEST_FRIENDLY_NAME);
doThrow(new GeneralSecurityException())
.when(mCertVerifier).verifyCaCert(any(X509Certificate.class));
- assertFalse(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE));
+ assertFalse(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE, false));
verify(mWifiMetrics).incrementNumPasspointProviderInstallation();
verify(mWifiMetrics, never()).incrementNumPasspointProviderInstallSuccess();
}
@@ -838,9 +840,9 @@ public class PasspointManagerTest extends WifiBaseTest {
config.setUpdateIdentifier(1);
PasspointProvider provider = createMockProvider(config);
when(mObjectFactory.makePasspointProvider(eq(config), eq(mWifiKeyStore),
- eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE))).thenReturn(
- provider);
- assertTrue(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE));
+ eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE),
+ eq(false))).thenReturn(provider);
+ assertTrue(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE, false));
verify(mCertVerifier, never()).verifyCaCert(any(X509Certificate.class));
verifyInstalledConfig(config);
verify(mWifiMetrics).incrementNumPasspointProviderInstallation();
@@ -1321,11 +1323,10 @@ public class PasspointManagerTest extends WifiBaseTest {
// Verify the provider ID used to create the new provider.
when(mObjectFactory.makePasspointProvider(eq(config), eq(mWifiKeyStore),
eq(mSimAccessor), eq(providerIndex), eq(TEST_CREATOR_UID),
- eq(TEST_PACKAGE))).thenReturn(provider);
+ eq(TEST_PACKAGE), eq(false))).thenReturn(provider);
- assertTrue(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE));
+ assertTrue(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE, false));
verifyInstalledConfig(config);
- verify(mWifiConfigManager).saveToStore(true);
reset(mWifiConfigManager);
}
@@ -1684,7 +1685,7 @@ public class PasspointManagerTest extends WifiBaseTest {
PasspointConfiguration config = createTestConfigWithUserCredential("abc.com", "test");
PasspointProvider provider = createMockProvider(config);
when(mObjectFactory.makePasspointProvider(eq(config), eq(mWifiKeyStore),
- eq(mSimAccessor), anyLong(), anyInt(), isNull())).thenReturn(provider);
+ eq(mSimAccessor), anyLong(), anyInt(), isNull(), eq(false))).thenReturn(provider);
assertFalse(mManager.installEphemeralPasspointConfigForCarrier(config));
}
@@ -1700,7 +1701,7 @@ public class PasspointManagerTest extends WifiBaseTest {
TEST_REALM);
PasspointProvider provider = createMockProvider(config);
when(mObjectFactory.makePasspointProvider(eq(config), eq(mWifiKeyStore),
- eq(mSimAccessor), anyLong(), anyInt(), isNull())).thenReturn(provider);
+ eq(mSimAccessor), anyLong(), anyInt(), isNull(), eq(false))).thenReturn(provider);
assertTrue(mManager.installEphemeralPasspointConfigForCarrier(config));
verify(mAppOpsManager, never()).startWatchingMode(eq(OPSTR_CHANGE_WIFI_STATE),
@@ -1841,9 +1842,9 @@ public class PasspointManagerTest extends WifiBaseTest {
TEST_REALM);
PasspointProvider provider = createMockProvider(config);
when(mObjectFactory.makePasspointProvider(eq(config), eq(mWifiKeyStore),
- eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE))).thenReturn(
- provider);
- assertTrue(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE));
+ eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE),
+ eq(false))).thenReturn(provider);
+ assertTrue(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE, false));
verifyInstalledConfig(config);
verify(mWifiConfigManager).saveToStore(true);
verify(mWifiMetrics).incrementNumPasspointProviderInstallation();
@@ -1868,4 +1869,300 @@ public class PasspointManagerTest extends WifiBaseTest {
// 1 profile available for TEST_CREATOR_UID
assertFalse(mManager.getProviderConfigs(TEST_CREATOR_UID, false).isEmpty());
}
+
+ /**
+ * Verify that adding a suggestion provider with a valid configuration and user credential will
+ * succeed.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void addRemoveSuggestionProvider() throws Exception {
+ PasspointConfiguration config = createTestConfigWithUserCredential(TEST_FQDN,
+ TEST_FRIENDLY_NAME);
+ PasspointProvider provider = createMockProvider(config);
+ when(provider.getPackageName()).thenReturn(TEST_PACKAGE);
+ when(provider.isFromSuggestion()).thenReturn(true);
+ when(mObjectFactory.makePasspointProvider(eq(config), eq(mWifiKeyStore),
+ eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE),
+ eq(true))).thenReturn(provider);
+ assertTrue(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE, true));
+ verify(mWifiMetrics).incrementNumPasspointProviderInstallation();
+ verify(mWifiMetrics).incrementNumPasspointProviderInstallSuccess();
+ verify(mAppOpsManager, never()).startWatchingMode(eq(OPSTR_CHANGE_WIFI_STATE),
+ eq(TEST_PACKAGE), any(AppOpsManager.OnOpChangedListener.class));
+ assertTrue(mManager.getProviderConfigs(TEST_CREATOR_UID, false).isEmpty());
+ reset(mWifiMetrics);
+ reset(mWifiConfigManager);
+
+ // Verify content in the data source.
+ List<PasspointProvider> providers = mUserDataSource.getProviders();
+ assertEquals(1, providers.size());
+ assertEquals(config, providers.get(0).getConfig());
+ // Provider index start with 0, should be 1 after adding a provider.
+ assertEquals(1, mSharedDataSource.getProviderIndex());
+
+ // Remove from another Suggestor app, should fail.
+ assertFalse(mManager.removeProvider(TEST_UID, false, TEST_FQDN));
+ verify(provider, never()).uninstallCertsAndKeys();
+ verify(mWifiConfigManager, never()).removePasspointConfiguredNetwork(
+ provider.getWifiConfig().configKey());
+ verify(mWifiConfigManager, never()).saveToStore(true);
+ verify(mWifiMetrics).incrementNumPasspointProviderUninstallation();
+ verify(mWifiMetrics, never()).incrementNumPasspointProviderUninstallSuccess();
+ verify(mAppOpsManager, never()).stopWatchingMode(
+ any(AppOpsManager.OnOpChangedListener.class));
+ // Verify content in the data source.
+ providers = mUserDataSource.getProviders();
+ assertEquals(1, providers.size());
+ assertEquals(config, providers.get(0).getConfig());
+ // Provider index start with 0, should be 1 after adding a provider.
+ assertEquals(1, mSharedDataSource.getProviderIndex());
+ reset(mWifiMetrics);
+ reset(mWifiConfigManager);
+
+ // Remove the provider from same app.
+ assertTrue(mManager.removeProvider(TEST_CREATOR_UID, false, TEST_FQDN));
+ verify(provider).uninstallCertsAndKeys();
+ verify(mWifiConfigManager).removePasspointConfiguredNetwork(
+ provider.getWifiConfig().configKey());
+ verify(mWifiConfigManager).saveToStore(true);
+ verify(mWifiMetrics).incrementNumPasspointProviderUninstallation();
+ verify(mWifiMetrics).incrementNumPasspointProviderUninstallSuccess();
+ verify(mAppOpsManager, never()).stopWatchingMode(
+ any(AppOpsManager.OnOpChangedListener.class));
+
+ // Verify content in the data source.
+ assertTrue(mUserDataSource.getProviders().isEmpty());
+ // Removing a provider should not change the provider index.
+ assertEquals(1, mSharedDataSource.getProviderIndex());
+ }
+
+ /**
+ * Verify that adding a suggestion provider with the same base domain as the existing
+ * suggestion provider from same app will succeed, and verify that the existing provider is
+ * replaced by the new provider with the new configuration.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void addSuggestionProviderWithExistingConfig() throws Exception {
+ // Add a provider with the original configuration.
+ PasspointConfiguration origConfig = createTestConfigWithSimCredential(TEST_FQDN, TEST_IMSI,
+ TEST_REALM);
+ PasspointProvider origProvider = createMockProvider(origConfig);
+ when(origProvider.getPackageName()).thenReturn(TEST_PACKAGE);
+ when(mObjectFactory.makePasspointProvider(eq(origConfig), eq(mWifiKeyStore),
+ eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE),
+ eq(true))).thenReturn(origProvider);
+ assertTrue(mManager.addOrUpdateProvider(origConfig, TEST_CREATOR_UID, TEST_PACKAGE, true));
+ verify(mWifiMetrics).incrementNumPasspointProviderInstallation();
+ verify(mWifiMetrics).incrementNumPasspointProviderInstallSuccess();
+ reset(mWifiMetrics);
+ reset(mWifiConfigManager);
+
+ // Verify data source content.
+ List<PasspointProvider> origProviders = mUserDataSource.getProviders();
+ assertEquals(1, origProviders.size());
+ assertEquals(origConfig, origProviders.get(0).getConfig());
+ assertEquals(1, mSharedDataSource.getProviderIndex());
+
+ // Add same provider as existing suggestion provider
+ // This should be no WifiConfig deletion
+ assertTrue(mManager.addOrUpdateProvider(origConfig, TEST_CREATOR_UID, TEST_PACKAGE, true));
+ verify(mWifiConfigManager, never()).removePasspointConfiguredNetwork(
+ origProvider.getWifiConfig().configKey());
+ verify(mWifiConfigManager).saveToStore(true);
+ verify(mWifiMetrics).incrementNumPasspointProviderInstallation();
+ verify(mWifiMetrics).incrementNumPasspointProviderInstallSuccess();
+ assertEquals(2, mSharedDataSource.getProviderIndex());
+ reset(mWifiMetrics);
+ reset(mWifiConfigManager);
+
+ // Add another provider with the same base domain as the existing saved provider.
+ // This should replace the existing provider with the new configuration.
+ PasspointConfiguration newConfig = createTestConfigWithUserCredential(TEST_FQDN,
+ TEST_FRIENDLY_NAME);
+ PasspointProvider newProvider = createMockProvider(newConfig);
+ when(newProvider.isFromSuggestion()).thenReturn(true);
+ when(newProvider.getPackageName()).thenReturn(TEST_PACKAGE);
+ when(mObjectFactory.makePasspointProvider(eq(newConfig), eq(mWifiKeyStore),
+ eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE),
+ eq(true))).thenReturn(newProvider);
+ assertTrue(mManager.addOrUpdateProvider(newConfig, TEST_CREATOR_UID, TEST_PACKAGE, true));
+ verify(mWifiConfigManager).removePasspointConfiguredNetwork(
+ newProvider.getWifiConfig().configKey());
+ verify(mWifiConfigManager).saveToStore(true);
+ verify(mWifiMetrics).incrementNumPasspointProviderInstallation();
+ verify(mWifiMetrics).incrementNumPasspointProviderInstallSuccess();
+
+ // Verify data source content.
+ List<PasspointProvider> newProviders = mUserDataSource.getProviders();
+ assertEquals(1, newProviders.size());
+ assertEquals(newConfig, newProviders.get(0).getConfig());
+ assertEquals(3, mSharedDataSource.getProviderIndex());
+ }
+
+ /**
+ * Verify that adding a saved provider with the same base domain as the existing
+ * suggestion provider will succeed, and verify that the existing provider is
+ * replaced by the new provider with the new configuration.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void addSavedProviderWithExistingSuggestionConfig() throws Exception {
+ // Add a provider with the original configuration.
+ PasspointConfiguration origConfig = createTestConfigWithSimCredential(TEST_FQDN, TEST_IMSI,
+ TEST_REALM);
+ PasspointProvider origProvider = createMockProvider(origConfig);
+ when(origProvider.getPackageName()).thenReturn(TEST_PACKAGE);
+ when(mObjectFactory.makePasspointProvider(eq(origConfig), eq(mWifiKeyStore),
+ eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE),
+ eq(true))).thenReturn(origProvider);
+ assertTrue(mManager.addOrUpdateProvider(origConfig, TEST_CREATOR_UID, TEST_PACKAGE, true));
+ verify(mWifiMetrics).incrementNumPasspointProviderInstallation();
+ verify(mWifiMetrics).incrementNumPasspointProviderInstallSuccess();
+ reset(mWifiMetrics);
+ reset(mWifiConfigManager);
+
+ // Verify data source content.
+ List<PasspointProvider> origProviders = mUserDataSource.getProviders();
+ assertEquals(1, origProviders.size());
+ assertEquals(origConfig, origProviders.get(0).getConfig());
+ assertEquals(1, mSharedDataSource.getProviderIndex());
+
+ // Add another provider with the same base domain as the existing saved provider.
+ // This should replace the existing provider with the new configuration.
+ PasspointConfiguration newConfig = createTestConfigWithUserCredential(TEST_FQDN,
+ TEST_FRIENDLY_NAME);
+ PasspointProvider newProvider = createMockProvider(newConfig);
+ when(mObjectFactory.makePasspointProvider(eq(newConfig), eq(mWifiKeyStore),
+ eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE),
+ eq(false))).thenReturn(newProvider);
+ assertTrue(mManager.addOrUpdateProvider(newConfig, TEST_CREATOR_UID, TEST_PACKAGE, false));
+ verify(mWifiConfigManager).removePasspointConfiguredNetwork(
+ newProvider.getWifiConfig().configKey());
+ verify(mWifiConfigManager).saveToStore(true);
+ verify(mWifiMetrics).incrementNumPasspointProviderInstallation();
+ verify(mWifiMetrics).incrementNumPasspointProviderInstallSuccess();
+
+ // Verify data source content.
+ List<PasspointProvider> newProviders = mUserDataSource.getProviders();
+ assertEquals(1, newProviders.size());
+ assertEquals(newConfig, newProviders.get(0).getConfig());
+ assertEquals(2, mSharedDataSource.getProviderIndex());
+ }
+
+ /**
+ * Verify that adding a suggestion provider with the same base domain as the existing provider
+ * from different apps will fail, and verify that the existing provider is not replaced by the
+ * new provider with the new configuration.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void addSuggestionProviderWithExistingConfigFromDifferentSource() throws Exception {
+ // Add a provider with the original configuration.
+ PasspointConfiguration origConfig = createTestConfigWithSimCredential(TEST_FQDN, TEST_IMSI,
+ TEST_REALM);
+ PasspointProvider origProvider = createMockProvider(origConfig);
+ when(origProvider.getPackageName()).thenReturn(TEST_PACKAGE);
+ when(mObjectFactory.makePasspointProvider(eq(origConfig), eq(mWifiKeyStore),
+ eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE),
+ eq(false))).thenReturn(origProvider);
+ assertTrue(mManager.addOrUpdateProvider(origConfig, TEST_CREATOR_UID, TEST_PACKAGE, false));
+ verifyInstalledConfig(origConfig);
+ verify(mWifiMetrics).incrementNumPasspointProviderInstallation();
+ verify(mWifiMetrics).incrementNumPasspointProviderInstallSuccess();
+ reset(mWifiMetrics);
+ reset(mWifiConfigManager);
+
+ // Verify data source content.
+ List<PasspointProvider> origProviders = mUserDataSource.getProviders();
+ assertEquals(1, origProviders.size());
+ assertEquals(origConfig, origProviders.get(0).getConfig());
+ assertEquals(1, mSharedDataSource.getProviderIndex());
+
+ // Add another provider with the same base domain as the existing saved provider but from
+ // different app. This should not replace the existing provider with the new configuration.
+ PasspointConfiguration newConfig = createTestConfigWithUserCredential(TEST_FQDN,
+ TEST_FRIENDLY_NAME);
+ PasspointProvider newProvider = createMockProvider(newConfig);
+ when(newProvider.isFromSuggestion()).thenReturn(true);
+ when(newProvider.getPackageName()).thenReturn(TEST_PACKAGE1);
+ when(mObjectFactory.makePasspointProvider(eq(newConfig), eq(mWifiKeyStore),
+ eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE1),
+ eq(true))).thenReturn(newProvider);
+ assertFalse(mManager.addOrUpdateProvider(newConfig, TEST_CREATOR_UID, TEST_PACKAGE1, true));
+ verify(mWifiConfigManager, never()).removePasspointConfiguredNetwork(
+ newProvider.getWifiConfig().configKey());
+ verify(mWifiConfigManager, never()).saveToStore(true);
+ verify(mWifiMetrics).incrementNumPasspointProviderInstallation();
+ verify(mWifiMetrics, never()).incrementNumPasspointProviderInstallSuccess();
+
+ // Verify data source content.
+ List<PasspointProvider> newProviders = mUserDataSource.getProviders();
+ assertEquals(1, newProviders.size());
+ assertEquals(origConfig, newProviders.get(0).getConfig());
+ assertEquals(2, mSharedDataSource.getProviderIndex());
+ }
+
+ /**
+ * Verify that an expected map of FQDN and a list of ScanResult will be returned when provided
+ * scanResults are matched to installed Passpoint profiles. If matched Passpoint profiles is
+ * from suggestion, will check if it is approved. If it is not approved, send the user approved
+ * notification, and not to add into the matched list.
+ */
+ @Test
+ public void getAllMatchingFqdnsForScanResultsWithSuggestionProvider() {
+ // static mocking
+ MockitoSession session =
+ com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession().mockStatic(
+ InformationElementUtil.class).startMocking();
+ try {
+ PasspointProvider providerApproved = addTestProvider(TEST_FQDN + 0, TEST_FRIENDLY_NAME,
+ TEST_PACKAGE);
+ providerApproved.getWifiConfig().isHomeProviderNetwork = true;
+ PasspointProvider providerNeedApprove = addTestProvider(TEST_FQDN + 1,
+ TEST_FRIENDLY_NAME, TEST_PACKAGE1);
+ providerNeedApprove.getWifiConfig().isHomeProviderNetwork = true;
+
+ ANQPData entry = new ANQPData(mClock, null);
+ InformationElementUtil.Vsa vsa = new InformationElementUtil.Vsa();
+ vsa.anqpDomainID = TEST_ANQP_DOMAIN_ID2;
+
+ when(mAnqpCache.getEntry(TEST_ANQP_KEY2)).thenReturn(entry);
+ when(InformationElementUtil.getHS2VendorSpecificIE(isNull())).thenReturn(vsa);
+ when(providerApproved.match(anyMap(), isNull()))
+ .thenReturn(PasspointMatch.HomeProvider);
+ when(providerNeedApprove.match(anyMap(), isNull()))
+ .thenReturn(PasspointMatch.HomeProvider);
+ when(providerApproved.isFromSuggestion()).thenReturn(true);
+ when(providerNeedApprove.isFromSuggestion()).thenReturn(true);
+ when(mWifiNetworkSuggestionsManager
+ .sendUserApprovalNotificationIfNotApproved(eq(TEST_PACKAGE), anyInt()))
+ .thenReturn(false);
+ when(mWifiNetworkSuggestionsManager
+ .sendUserApprovalNotificationIfNotApproved(eq(TEST_PACKAGE1), anyInt()))
+ .thenReturn(true);
+ Map<String, Map<Integer, List<ScanResult>>> configs =
+ mManager.getAllMatchingFqdnsForScanResults(
+ createTestScanResults());
+ verify(mWifiNetworkSuggestionsManager, times(2))
+ .sendUserApprovalNotificationIfNotApproved(eq(TEST_PACKAGE), anyInt());
+ verify(mWifiNetworkSuggestionsManager, times(2))
+ .sendUserApprovalNotificationIfNotApproved(eq(TEST_PACKAGE1), anyInt());
+ // Expects to be matched with home Provider for each AP (two APs).
+ assertEquals(2, configs.get(TEST_FQDN + 0).get(
+ WifiManager.PASSPOINT_HOME_NETWORK).size());
+ assertFalse(
+ configs.get(TEST_FQDN + 0).containsKey(WifiManager.PASSPOINT_ROAMING_NETWORK));
+
+ // Expects there is no matched AP.
+ assertNull(configs.get(TEST_FQDN + 1));
+ } finally {
+ session.finishMocking();
+ }
+ }
}
diff --git a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointProviderTest.java b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointProviderTest.java
index 4ee91fa8d..ec0533214 100644
--- a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointProviderTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointProviderTest.java
@@ -154,7 +154,7 @@ public class PasspointProviderTest extends WifiBaseTest {
*/
private PasspointProvider createProvider(PasspointConfiguration config) {
return new PasspointProvider(config, mKeyStore, mSimAccessor, PROVIDER_ID, CREATOR_UID,
- CREATOR_PACKAGE);
+ CREATOR_PACKAGE, false);
}
/**