summaryrefslogtreecommitdiffstats
path: root/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java
diff options
context:
space:
mode:
authorRoshan Pius <rpius@google.com>2016-06-13 14:52:36 -0700
committerRoshan Pius <rpius@google.com>2016-06-21 22:30:48 -0700
commitf918b154ddceb58c3d214d75ad02180d1907429a (patch)
tree5a13ef85f1dc5b36074ce7b2f3e691d1e8e58267 /tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java
parente505d1b7b6b301a1bbbe0a6665467e758bcfd62e (diff)
downloadandroid_frameworks_opt_net_wifi-f918b154ddceb58c3d214d75ad02180d1907429a.tar.gz
android_frameworks_opt_net_wifi-f918b154ddceb58c3d214d75ad02180d1907429a.tar.bz2
android_frameworks_opt_net_wifi-f918b154ddceb58c3d214d75ad02180d1907429a.zip
WifiConfigStoreData: Add unit tests
Add unit tests for serialization/deserialization of config store data. BUG: 29251019 Change-Id: I0fca803670f72f729c5003802ad196775dc3717e TEST: Unit tests
Diffstat (limited to 'tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java')
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java129
1 files changed, 128 insertions, 1 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java b/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java
index 3811d7b08..ed0d41f28 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java
@@ -16,11 +16,20 @@
package com.android.server.wifi;
+import static org.junit.Assert.*;
+
+import android.net.IpConfiguration;
+import android.net.LinkAddress;
+import android.net.NetworkUtils;
+import android.net.ProxyInfo;
+import android.net.StaticIpConfiguration;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiConfiguration.NetworkSelectionStatus;
import android.net.wifi.WifiEnterpriseConfig;
+import android.text.TextUtils;
-import static org.junit.Assert.*;
+import java.net.InetAddress;
+import java.util.List;
/**
* Helper for creating and populating WifiConfigurations in unit tests.
@@ -36,6 +45,16 @@ public class WifiConfigurationTestUtil {
public static final int SECURITY_EAP = 1 << 2;
/**
+ * These values are used to describe ip configuration parameters for a network.
+ */
+ public static final int STATIC_IP_ASSIGNMENT = 0;
+ public static final int DHCP_IP_ASSIGNMENT = 1;
+ public static final int STATIC_PROXY_SETTING = 0;
+ public static final int PAC_PROXY_SETTING = 1;
+ public static final int NONE_PROXY_SETTING = 2;
+
+
+ /**
* Construct a {@link android.net.wifi.WifiConfiguration}.
* @param networkId the configuration's networkId
* @param uid the configuration's creator uid
@@ -97,6 +116,70 @@ public class WifiConfigurationTestUtil {
}
/**
+ * Construct a {@link android.net.IpConfiguration }.
+ * @param ipAssignmentType One of {@link #STATIC_IP_ASSIGNMENT} or {@link #DHCP_IP_ASSIGNMENT}.
+ * @param proxySettingType One of {@link #STATIC_PROXY_SETTING} or {@link #PAC_PROXY_SETTING} or
+ * {@link #NONE_PROXY_SETTING}.
+ * @param linkAddress static ip address string.
+ * @param linkPrefixLength static ip address prefix length.
+ * @param gatewayAddress static gateway address.
+ * @param dnsServerAddresses list of dns servers for static ip configuration.
+ * @param proxyHost Static proxy server address.
+ * @param proxyPort Static proxy server port.
+ * @param proxyExclusionList Static proxy exclusion list.
+ * @param pacProxyPath Pac proxy server path.
+ * @return the constructed {@link android.net.IpConfiguration}
+ */
+ public static IpConfiguration generateIpConfig(
+ int ipAssignmentType, int proxySettingType, String linkAddress, int linkPrefixLength,
+ String gatewayAddress, String[] dnsServerAddresses, String proxyHost,
+ int proxyPort, String proxyExclusionList, String pacProxyPath) {
+ StaticIpConfiguration staticIpConfiguration = null;
+ ProxyInfo proxyInfo = null;
+ IpConfiguration.IpAssignment ipAssignment = IpConfiguration.IpAssignment.UNASSIGNED;
+ IpConfiguration.ProxySettings proxySettings = IpConfiguration.ProxySettings.UNASSIGNED;
+
+ if (ipAssignmentType == STATIC_IP_ASSIGNMENT) {
+ staticIpConfiguration = new StaticIpConfiguration();
+ if (!TextUtils.isEmpty(linkAddress)) {
+ LinkAddress linkAddr =
+ new LinkAddress(
+ NetworkUtils.numericToInetAddress(linkAddress), linkPrefixLength);
+ staticIpConfiguration.ipAddress = linkAddr;
+ }
+
+ if (!TextUtils.isEmpty(gatewayAddress)) {
+ InetAddress gatewayAddr =
+ NetworkUtils.numericToInetAddress(gatewayAddress);
+ staticIpConfiguration.gateway = gatewayAddr;
+ }
+ if (dnsServerAddresses != null) {
+ for (String dnsServerAddress : dnsServerAddresses) {
+ if (!TextUtils.isEmpty(dnsServerAddress)) {
+ staticIpConfiguration.dnsServers.add(
+ NetworkUtils.numericToInetAddress(dnsServerAddress));
+ }
+
+ }
+ }
+ ipAssignment = IpConfiguration.IpAssignment.STATIC;
+ } else if (ipAssignmentType == DHCP_IP_ASSIGNMENT) {
+ ipAssignment = IpConfiguration.IpAssignment.DHCP;
+ }
+
+ if (proxySettingType == STATIC_PROXY_SETTING) {
+ proxyInfo = new ProxyInfo(proxyHost, proxyPort, proxyExclusionList);
+ proxySettings = IpConfiguration.ProxySettings.STATIC;
+ } else if (proxySettingType == PAC_PROXY_SETTING) {
+ proxyInfo = new ProxyInfo(pacProxyPath);
+ proxySettings = IpConfiguration.ProxySettings.PAC;
+ } else if (proxySettingType == NONE_PROXY_SETTING) {
+ proxySettings = IpConfiguration.ProxySettings.NONE;
+ }
+ return new IpConfiguration(ipAssignment, proxySettings, staticIpConfiguration, proxyInfo);
+ }
+
+ /**
* Asserts that the 2 WifiConfigurations are equal in the elements saved for both backup/restore
* and config store.
*/
@@ -208,4 +291,48 @@ public class WifiConfigurationTestUtil {
assertEquals(expected.getEapMethod(), actual.getEapMethod());
assertEquals(expected.getPhase2Method(), actual.getPhase2Method());
}
+
+ /**
+ * Asserts that the 2 lists of WifiConfigurations are equal. This compares all the elements
+ * saved for backup/restore.
+ */
+ public static void assertConfigurationsEqualForBackup(
+ List<WifiConfiguration> expected, List<WifiConfiguration> actual) {
+ assertEquals(expected.size(), actual.size());
+ for (WifiConfiguration expectedConfiguration : expected) {
+ String expectedConfigKey = expectedConfiguration.configKey();
+ boolean didCompare = false;
+ for (WifiConfiguration actualConfiguration : actual) {
+ String actualConfigKey = actualConfiguration.configKey();
+ if (actualConfigKey.equals(expectedConfigKey)) {
+ assertConfigurationEqualForBackup(
+ expectedConfiguration, actualConfiguration);
+ didCompare = true;
+ }
+ }
+ assertTrue(didCompare);
+ }
+ }
+
+ /**
+ * Asserts that the 2 lists of WifiConfigurations are equal. This compares all the elements
+ * saved for config store.
+ */
+ public static void assertConfigurationsEqualForConfigStore(
+ List<WifiConfiguration> expected, List<WifiConfiguration> actual) {
+ assertEquals(expected.size(), actual.size());
+ for (WifiConfiguration expectedConfiguration : expected) {
+ String expectedConfigKey = expectedConfiguration.configKey();
+ boolean didCompare = false;
+ for (WifiConfiguration actualConfiguration : actual) {
+ String actualConfigKey = actualConfiguration.configKey();
+ if (actualConfigKey.equals(expectedConfigKey)) {
+ assertConfigurationEqualForConfigStore(
+ expectedConfiguration, actualConfiguration);
+ didCompare = true;
+ }
+ }
+ assertTrue(didCompare);
+ }
+ }
}