summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorPeter Qiu <zqiu@google.com>2017-02-16 14:07:37 -0800
committerPeter Qiu <zqiu@google.com>2017-02-24 09:25:06 -0800
commit9432358b816df5530aed86d4107756854e5ac4f0 (patch)
tree0945f4a29730c4b1dd7b5342de06b67b599866dd /tests
parent15eeedd83c258ae7eec5065880b0887545124456 (diff)
WifiConfigStoreLegacy: read legacy Passpoint configuration file
Read and load Passpoint configuration from the legacy Passpoint configuration file (PerProviderSubscription.conf). Copy the missing configuration fields to WifiConfiguration, so that a WifiConfiguration will contained all configuration data for Hotspot 2.0 Release 1 configuration. The WifiConfiguration for Passpoint configuration will be stored temporarily in the share store until its owner logs in. When the configuration owner logs in, the configuration will be converted to PasspointConfiguration and added to PasspointManager. Then the shared WifiConfiguration will be removed to complete the migration. This will be done in the follow-on CLs. Bug: 34206769 Test: frameworks/opt/net/tests/wifitests/runtests.sh Change-Id: I946984822599b46e7e79babdf84272290ecf2431
Diffstat (limited to 'tests')
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiConfigStoreLegacyTest.java54
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java6
2 files changed, 56 insertions, 4 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiConfigStoreLegacyTest.java b/tests/wifitests/src/com/android/server/wifi/WifiConfigStoreLegacyTest.java
index 5772430b4..906c895ef 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiConfigStoreLegacyTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiConfigStoreLegacyTest.java
@@ -28,6 +28,8 @@ import android.text.TextUtils;
import android.util.SparseArray;
import com.android.server.net.IpConfigStore;
+import com.android.server.wifi.hotspot2.LegacyPasspointConfig;
+import com.android.server.wifi.hotspot2.LegacyPasspointConfigParser;
import org.junit.After;
import org.junit.Before;
@@ -51,6 +53,7 @@ public class WifiConfigStoreLegacyTest {
@Mock private WifiNative mWifiNative;
@Mock private WifiNetworkHistory mWifiNetworkHistory;
@Mock private IpConfigStore mIpconfigStore;
+ @Mock private LegacyPasspointConfigParser mPasspointConfigParser;
/**
* Test instance of WifiConfigStore.
@@ -65,9 +68,8 @@ public class WifiConfigStoreLegacyTest {
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
- mWifiConfigStore =
- new WifiConfigStoreLegacy(
- mWifiNetworkHistory, mWifiNative, mIpconfigStore);
+ mWifiConfigStore = new WifiConfigStoreLegacy(mWifiNetworkHistory, mWifiNative,
+ mIpconfigStore, mPasspointConfigParser);
}
/**
@@ -83,16 +85,45 @@ public class WifiConfigStoreLegacyTest {
* of the masked wpa_supplicant fields using wpa_supplicant.conf file.
*/
@Test
- public void testLoadFromStores() {
+ public void testLoadFromStores() throws Exception {
WifiConfiguration pskNetwork = WifiConfigurationTestUtil.createPskNetwork();
WifiConfiguration wepNetwork = WifiConfigurationTestUtil.createWepNetwork();
WifiConfiguration eapNetwork = WifiConfigurationTestUtil.createEapNetwork();
+ WifiConfiguration passpointNetwork = WifiConfigurationTestUtil.createPasspointNetwork();
eapNetwork.enterpriseConfig.setPassword("EapPassword");
+ // Initialize Passpoint configuration data.
+ int passpointNetworkId = 1234;
+ String fqdn = passpointNetwork.FQDN;
+ String providerFriendlyName = passpointNetwork.providerFriendlyName;
+ long[] roamingConsortiumIds = new long[] {0x1234, 0x5678};
+ String realm = "test.com";
+ String imsi = "214321";
+
+ // Update Passpoint network.
+ // Network ID is used for lookup network extras, so use an unique ID for passpoint network.
+ passpointNetwork.networkId = passpointNetworkId;
+ passpointNetwork.enterpriseConfig.setPassword("PaspointPassword");
+ // Reset FQDN and provider friendly name so that the derived network from #read will
+ // obtained these information from networkExtras and {@link LegacyPasspointConfigParser}.
+ passpointNetwork.FQDN = null;
+ passpointNetwork.providerFriendlyName = null;
+
final List<WifiConfiguration> networks = new ArrayList<>();
networks.add(pskNetwork);
networks.add(wepNetwork);
networks.add(eapNetwork);
+ networks.add(passpointNetwork);
+
+ // Setup legacy Passpoint configuration data.
+ Map<String, LegacyPasspointConfig> passpointConfigs = new HashMap<>();
+ LegacyPasspointConfig passpointConfig = new LegacyPasspointConfig();
+ passpointConfig.mFqdn = fqdn;
+ passpointConfig.mFriendlyName = providerFriendlyName;
+ passpointConfig.mRoamingConsortiumOis = roamingConsortiumIds;
+ passpointConfig.mRealm = realm;
+ passpointConfig.mImsi = imsi;
+ passpointConfigs.put(fqdn, passpointConfig);
// Return the config data with passwords masked from wpa_supplicant control interface.
doAnswer(new AnswerWithArguments() {
@@ -102,6 +133,8 @@ public class WifiConfigStoreLegacyTest {
createWpaSupplicantLoadData(networks).entrySet()) {
configs.put(entry.getKey(), entry.getValue());
}
+ // Setup networkExtras for Passpoint configuration.
+ networkExtras.put(passpointNetworkId, createNetworkExtrasForPasspointConfig(fqdn));
return true;
}
}).when(mWifiNative).migrateNetworksFromSupplicant(any(Map.class), any(SparseArray.class));
@@ -126,8 +159,16 @@ public class WifiConfigStoreLegacyTest {
}
}).when(mWifiNative).readNetworkVariablesFromSupplicantFile(anyString());
+ when(mPasspointConfigParser.parseConfig(anyString())).thenReturn(passpointConfigs);
WifiConfigStoreLegacy.WifiConfigStoreDataLegacy storeData = mWifiConfigStore.read();
+ // Update the expected configuration for Passpoint network.
+ passpointNetwork.FQDN = fqdn;
+ passpointNetwork.providerFriendlyName = providerFriendlyName;
+ passpointNetwork.roamingConsortiumIds = roamingConsortiumIds;
+ passpointNetwork.enterpriseConfig.setRealm(realm);
+ passpointNetwork.enterpriseConfig.setPlmn(imsi);
+
WifiConfigurationTestUtil.assertConfigurationsEqualForConfigStore(
networks, storeData.getConfigurations());
}
@@ -252,4 +293,9 @@ public class WifiConfigStoreLegacyTest {
return newConfig;
}
+ private Map<String, String> createNetworkExtrasForPasspointConfig(String fqdn) {
+ Map<String, String> extras = new HashMap<>();
+ extras.put(WifiSupplicantControl.ID_STRING_KEY_FQDN, fqdn);
+ return extras;
+ }
}
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java b/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java
index 28587d129..7e60d9c8b 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java
@@ -30,6 +30,7 @@ import android.text.TextUtils;
import java.net.InetAddress;
import java.security.cert.X509Certificate;
+import java.util.Arrays;
import java.util.List;
/**
@@ -429,6 +430,7 @@ public class WifiConfigurationTestUtil {
assertEquals(expected.status, actual.status);
assertEquals(expected.FQDN, actual.FQDN);
assertEquals(expected.providerFriendlyName, actual.providerFriendlyName);
+ assertTrue(Arrays.equals(expected.roamingConsortiumIds, actual.roamingConsortiumIds));
assertEquals(expected.linkedConfigurations, actual.linkedConfigurations);
assertEquals(expected.defaultGwMacAddress, actual.defaultGwMacAddress);
assertEquals(expected.validatedInternetAccess, actual.validatedInternetAccess);
@@ -566,6 +568,10 @@ public class WifiConfigurationTestUtil {
actual.getFieldValue(WifiEnterpriseConfig.DOM_SUFFIX_MATCH_KEY));
assertEquals(expected.getFieldValue(WifiEnterpriseConfig.CA_PATH_KEY),
actual.getFieldValue(WifiEnterpriseConfig.CA_PATH_KEY));
+ assertEquals(expected.getFieldValue(WifiEnterpriseConfig.REALM_KEY),
+ actual.getFieldValue(WifiEnterpriseConfig.REALM_KEY));
+ assertEquals(expected.getFieldValue(WifiEnterpriseConfig.PLMN_KEY),
+ actual.getFieldValue(WifiEnterpriseConfig.PLMN_KEY));
assertEquals(expected.getEapMethod(), actual.getEapMethod());
assertEquals(expected.getPhase2Method(), actual.getPhase2Method());
}