diff options
author | Roshan Pius <rpius@google.com> | 2016-06-13 14:52:36 -0700 |
---|---|---|
committer | Roshan Pius <rpius@google.com> | 2016-06-21 22:30:48 -0700 |
commit | f918b154ddceb58c3d214d75ad02180d1907429a (patch) | |
tree | 5a13ef85f1dc5b36074ce7b2f3e691d1e8e58267 /tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java | |
parent | e505d1b7b6b301a1bbbe0a6665467e758bcfd62e (diff) | |
download | android_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.java | 129 |
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); + } + } } |