1bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski/* 2bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski * Copyright (C) 2016 The Android Open Source Project 3bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski * 4bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski * Licensed under the Apache License, Version 2.0 (the "License"); 5bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski * you may not use this file except in compliance with the License. 6bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski * You may obtain a copy of the License at 7bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski * 8bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski * http://www.apache.org/licenses/LICENSE-2.0 9bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski * 10bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski * Unless required by applicable law or agreed to in writing, software 11bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski * distributed under the License is distributed on an "AS IS" BASIS, 12bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski * See the License for the specific language governing permissions and 140fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * limitations under the License. 15bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski */ 16bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski 17bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowskipackage com.android.server.wifi; 18bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski 19f918b154ddceb58c3d214d75ad02180d1907429aRoshan Piusimport static org.junit.Assert.*; 20f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius 21f918b154ddceb58c3d214d75ad02180d1907429aRoshan Piusimport android.net.IpConfiguration; 22f918b154ddceb58c3d214d75ad02180d1907429aRoshan Piusimport android.net.LinkAddress; 23f918b154ddceb58c3d214d75ad02180d1907429aRoshan Piusimport android.net.NetworkUtils; 24f918b154ddceb58c3d214d75ad02180d1907429aRoshan Piusimport android.net.ProxyInfo; 25f918b154ddceb58c3d214d75ad02180d1907429aRoshan Piusimport android.net.StaticIpConfiguration; 26bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowskiimport android.net.wifi.WifiConfiguration; 275d3609b1931180c37d7292619146ad7d33df9a21Roshan Piusimport android.net.wifi.WifiConfiguration.NetworkSelectionStatus; 28bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowskiimport android.net.wifi.WifiEnterpriseConfig; 29f918b154ddceb58c3d214d75ad02180d1907429aRoshan Piusimport android.text.TextUtils; 30bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski 31f918b154ddceb58c3d214d75ad02180d1907429aRoshan Piusimport java.net.InetAddress; 321fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Piusimport java.security.cert.X509Certificate; 339432358b816df5530aed86d4107756854e5ac4f0Peter Qiuimport java.util.Arrays; 34f918b154ddceb58c3d214d75ad02180d1907429aRoshan Piusimport java.util.List; 35e33a4bb414892435c016486585c26022cafdab68Roshan Pius 36bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski/** 37bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski * Helper for creating and populating WifiConfigurations in unit tests. 38bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski */ 390fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowskipublic class WifiConfigurationTestUtil { 40b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe /** 41b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe * These values are used to describe AP's security setting. One AP can support multiple of them, 42b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe * only if there is no conflict. 43b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe */ 44b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe public static final int SECURITY_NONE = 0; 45b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe public static final int SECURITY_WEP = 1 << 0; 46b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe public static final int SECURITY_PSK = 1 << 1; 47b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe public static final int SECURITY_EAP = 1 << 2; 48b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe 490fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski /** 50f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * These values are used to describe ip configuration parameters for a network. 51f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius */ 52f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius public static final int STATIC_IP_ASSIGNMENT = 0; 53f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius public static final int DHCP_IP_ASSIGNMENT = 1; 54f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius public static final int STATIC_PROXY_SETTING = 0; 55f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius public static final int PAC_PROXY_SETTING = 1; 56f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius public static final int NONE_PROXY_SETTING = 2; 57f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius 58f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius /** 59f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius * These are constants used to generate predefined WifiConfiguration objects. 60f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius */ 61f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final int TEST_NETWORK_ID = -1; 621fe1065da82165183fa057ddbbd2e33bc5708c1bRobin Lee public static final int TEST_UID = 5; 638600bb5b23872d2f67cf7a12c3d8c40c5f990e84Roshan Pius public static final String TEST_SSID = "WifiConfigurationTestUtilSSID"; 64f50550926a7bddc24adf822876f35812d7d8c7beRoshan Pius public static final String TEST_PSK = "\"WifiConfigurationTestUtilPsk\""; 65f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final String[] TEST_WEP_KEYS = 666a8908d2bc0367397eb92444ac78cc8d43160ef6Roshan Pius {"\"WifiConfigurationTestUtilWep1\"", "\"WifiConfigurationTestUtilWep2\"", 676a8908d2bc0367397eb92444ac78cc8d43160ef6Roshan Pius "45342312ab", "45342312ab45342312ab34ac12"}; 68327bd4253115abc757ebaf5f1bddd9f5ad2253e4Roshan Pius public static final String TEST_EAP_PASSWORD = "WifiConfigurationTestUtilEapPassword"; 69f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final int TEST_WEP_TX_KEY_INDEX = 1; 70f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final String TEST_FQDN = "WifiConfigurationTestUtilFQDN"; 71f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final String TEST_PROVIDER_FRIENDLY_NAME = 72f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius "WifiConfigurationTestUtilFriendlyName"; 73f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final String TEST_STATIC_IP_LINK_ADDRESS = "192.168.48.2"; 74f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final int TEST_STATIC_IP_LINK_PREFIX_LENGTH = 8; 75f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final String TEST_STATIC_IP_GATEWAY_ADDRESS = "192.168.48.1"; 76f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final String[] TEST_STATIC_IP_DNS_SERVER_ADDRESSES = 77f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius new String[]{"192.168.48.1", "192.168.48.10"}; 78f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final String TEST_STATIC_PROXY_HOST = "192.168.48.1"; 79f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final int TEST_STATIC_PROXY_PORT = 8000; 80f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final String TEST_STATIC_PROXY_EXCLUSION_LIST = ""; 81f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final String TEST_PAC_PROXY_LOCATION = "http://"; 821fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Pius public static final String TEST_CA_CERT_ALIAS = "WifiConfigurationTestUtilCaCertAlias"; 83f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 848600bb5b23872d2f67cf7a12c3d8c40c5f990e84Roshan Pius private static final int MAX_SSID_LENGTH = 32; 85f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius /** 86f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius * Index used to assign unique SSIDs for the generation of predefined WifiConfiguration objects. 87f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius */ 88f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius private static int sNetworkIndex = 0; 89f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius 90f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius /** 910fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * Construct a {@link android.net.wifi.WifiConfiguration}. 920fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param networkId the configuration's networkId 930fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param uid the configuration's creator uid 940fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param ssid the configuration's ssid 950fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param shared whether the configuration is shared with other users on the device 960fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param enabled whether the configuration is enabled 970fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param fqdn the configuration's FQDN (Hotspot 2.0 only) 980fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param providerFriendlyName the configuration's provider's friendly name (Hotspot 2.0 only) 990fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @return the constructed {@link android.net.wifi.WifiConfiguration} 1000fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski */ 101bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski public static WifiConfiguration generateWifiConfig(int networkId, int uid, String ssid, 102bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski boolean shared, boolean enabled, String fqdn, String providerFriendlyName) { 103bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski final WifiConfiguration config = new WifiConfiguration(); 104bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski config.SSID = ssid; 105bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski config.networkId = networkId; 106bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski config.creatorUid = uid; 107bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski config.shared = shared; 108bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski config.status = enabled ? WifiConfiguration.Status.ENABLED 109bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski : WifiConfiguration.Status.DISABLED; 1109cc8b06885dc5889a1ed503b25faff5b83d20978Peter Qiu config.FQDN = fqdn; 1119cc8b06885dc5889a1ed503b25faff5b83d20978Peter Qiu config.providerFriendlyName = providerFriendlyName; 112bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski return config; 113bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski } 114b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe 1150fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski /** 1160fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * Construct a {@link android.net.wifi.WifiConfiguration}. 1170fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param networkId the configuration's networkId 1180fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param uid the configuration's creator uid 1190fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param ssid the configuration's ssid 1200fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param shared whether the configuration is shared with other users on the device 1210fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param enabled whether the configuration is enabled 1220fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param fqdn the configuration's FQDN (Hotspot 2.0 only) 1230fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param providerFriendlyName the configuration's provider's friendly name (Hotspot 2.0 only) 1240fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param security the configuration's security type 1250fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @return the constructed {@link android.net.wifi.WifiConfiguration} 1260fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski */ 127b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe public static WifiConfiguration generateWifiConfig(int networkId, int uid, String ssid, 128b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe boolean shared, boolean enabled, String fqdn, String providerFriendlyName, 129b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe int security) { 130b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe WifiConfiguration config = generateWifiConfig(networkId, uid, ssid, shared, enabled, fqdn, 131b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe providerFriendlyName); 132b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe 13322b5eca14a99c2bbeeae8361c665923ce71e1603Roshan Pius if ((security == SECURITY_NONE) || ((security & SECURITY_WEP) != 0)) { 134b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); 135b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe } else { 13622b5eca14a99c2bbeeae8361c665923ce71e1603Roshan Pius if ((security & SECURITY_PSK) != 0) { 137b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); 138b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe } 139b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe 140b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe if ((security & SECURITY_EAP) != 0) { 141b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP); 142b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.IEEE8021X); 1439cc8b06885dc5889a1ed503b25faff5b83d20978Peter Qiu config.enterpriseConfig.setEapMethod(WifiEnterpriseConfig.Eap.TTLS); 144b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe } 145b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe } 146b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe return config; 147b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe } 148e33a4bb414892435c016486585c26022cafdab68Roshan Pius 149e33a4bb414892435c016486585c26022cafdab68Roshan Pius /** 150f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * Construct a {@link android.net.IpConfiguration }. 151f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @param ipAssignmentType One of {@link #STATIC_IP_ASSIGNMENT} or {@link #DHCP_IP_ASSIGNMENT}. 152f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @param proxySettingType One of {@link #STATIC_PROXY_SETTING} or {@link #PAC_PROXY_SETTING} or 153f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * {@link #NONE_PROXY_SETTING}. 154f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @param linkAddress static ip address string. 155f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @param linkPrefixLength static ip address prefix length. 156f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @param gatewayAddress static gateway address. 157f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @param dnsServerAddresses list of dns servers for static ip configuration. 158f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @param proxyHost Static proxy server address. 159f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @param proxyPort Static proxy server port. 160f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @param proxyExclusionList Static proxy exclusion list. 161f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @param pacProxyPath Pac proxy server path. 162f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @return the constructed {@link android.net.IpConfiguration} 163f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius */ 164f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius public static IpConfiguration generateIpConfig( 165f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius int ipAssignmentType, int proxySettingType, String linkAddress, int linkPrefixLength, 166f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius String gatewayAddress, String[] dnsServerAddresses, String proxyHost, 167f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius int proxyPort, String proxyExclusionList, String pacProxyPath) { 168f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius StaticIpConfiguration staticIpConfiguration = null; 169f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius ProxyInfo proxyInfo = null; 170f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius IpConfiguration.IpAssignment ipAssignment = IpConfiguration.IpAssignment.UNASSIGNED; 171f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius IpConfiguration.ProxySettings proxySettings = IpConfiguration.ProxySettings.UNASSIGNED; 172f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius 173f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius if (ipAssignmentType == STATIC_IP_ASSIGNMENT) { 174f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius staticIpConfiguration = new StaticIpConfiguration(); 175f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius if (!TextUtils.isEmpty(linkAddress)) { 176f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius LinkAddress linkAddr = 177f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius new LinkAddress( 178f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius NetworkUtils.numericToInetAddress(linkAddress), linkPrefixLength); 179f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius staticIpConfiguration.ipAddress = linkAddr; 180f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 181f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius 182f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius if (!TextUtils.isEmpty(gatewayAddress)) { 183f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius InetAddress gatewayAddr = 184f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius NetworkUtils.numericToInetAddress(gatewayAddress); 185f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius staticIpConfiguration.gateway = gatewayAddr; 186f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 187f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius if (dnsServerAddresses != null) { 188f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius for (String dnsServerAddress : dnsServerAddresses) { 189f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius if (!TextUtils.isEmpty(dnsServerAddress)) { 190f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius staticIpConfiguration.dnsServers.add( 191f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius NetworkUtils.numericToInetAddress(dnsServerAddress)); 192f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 193f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius 194f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 195f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 196f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius ipAssignment = IpConfiguration.IpAssignment.STATIC; 197f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } else if (ipAssignmentType == DHCP_IP_ASSIGNMENT) { 198f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius ipAssignment = IpConfiguration.IpAssignment.DHCP; 199f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 200f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius 201f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius if (proxySettingType == STATIC_PROXY_SETTING) { 202f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius proxyInfo = new ProxyInfo(proxyHost, proxyPort, proxyExclusionList); 203f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius proxySettings = IpConfiguration.ProxySettings.STATIC; 204f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } else if (proxySettingType == PAC_PROXY_SETTING) { 205f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius proxyInfo = new ProxyInfo(pacProxyPath); 206f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius proxySettings = IpConfiguration.ProxySettings.PAC; 207f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } else if (proxySettingType == NONE_PROXY_SETTING) { 208f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius proxySettings = IpConfiguration.ProxySettings.NONE; 209f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 210f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius return new IpConfiguration(ipAssignment, proxySettings, staticIpConfiguration, proxyInfo); 211f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 212f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius 213f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius /** 214f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius * Create a new SSID for the the network being created. 215f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius */ 216f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius private static String createNewSSID() { 2178600bb5b23872d2f67cf7a12c3d8c40c5f990e84Roshan Pius String ssid = TEST_SSID + sNetworkIndex++; 2188600bb5b23872d2f67cf7a12c3d8c40c5f990e84Roshan Pius assertTrue(ssid.length() <= MAX_SSID_LENGTH); 2198600bb5b23872d2f67cf7a12c3d8c40c5f990e84Roshan Pius return "\"" + ssid + "\""; 220f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 221f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 222f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius /** 223f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius * Helper methods to generate predefined WifiConfiguration objects of the required type. These 224f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius * use a static index to avoid duplicate configurations. 225f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius */ 226f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static WifiConfiguration createOpenNetwork() { 227f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return generateWifiConfig(TEST_NETWORK_ID, TEST_UID, createNewSSID(), true, true, null, 228f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius null, SECURITY_NONE); 229f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 230f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 231f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static WifiConfiguration createOpenHiddenNetwork() { 232f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius WifiConfiguration configuration = createOpenNetwork(); 233f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius configuration.hiddenSSID = true; 234f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return configuration; 235f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 236f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 237f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static WifiConfiguration createPskNetwork() { 238f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius WifiConfiguration configuration = 239f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius generateWifiConfig(TEST_NETWORK_ID, TEST_UID, createNewSSID(), true, true, null, 240f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius null, SECURITY_PSK); 241f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius configuration.preSharedKey = TEST_PSK; 242f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return configuration; 243f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 244f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 245ff27ddf1923d9d4d4cfa8cc1a1ddb8748d0f2426Ningyuan Wang public static WifiConfiguration createPskNetwork(String ssid) { 246ff27ddf1923d9d4d4cfa8cc1a1ddb8748d0f2426Ningyuan Wang WifiConfiguration configuration = 247ff27ddf1923d9d4d4cfa8cc1a1ddb8748d0f2426Ningyuan Wang generateWifiConfig(TEST_NETWORK_ID, TEST_UID, ssid, true, true, null, 248ff27ddf1923d9d4d4cfa8cc1a1ddb8748d0f2426Ningyuan Wang null, SECURITY_PSK); 249ff27ddf1923d9d4d4cfa8cc1a1ddb8748d0f2426Ningyuan Wang configuration.preSharedKey = TEST_PSK; 250ff27ddf1923d9d4d4cfa8cc1a1ddb8748d0f2426Ningyuan Wang return configuration; 251ff27ddf1923d9d4d4cfa8cc1a1ddb8748d0f2426Ningyuan Wang } 252ff27ddf1923d9d4d4cfa8cc1a1ddb8748d0f2426Ningyuan Wang 253ff27ddf1923d9d4d4cfa8cc1a1ddb8748d0f2426Ningyuan Wang 254f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static WifiConfiguration createPskHiddenNetwork() { 255f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius WifiConfiguration configuration = createPskNetwork(); 256f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius configuration.hiddenSSID = true; 257f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return configuration; 258f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 259f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 260f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static WifiConfiguration createWepNetwork() { 261f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius WifiConfiguration configuration = 262f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius generateWifiConfig(TEST_NETWORK_ID, TEST_UID, createNewSSID(), true, true, null, 263f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius null, SECURITY_WEP); 264f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius configuration.wepKeys = TEST_WEP_KEYS; 265f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius configuration.wepTxKeyIndex = TEST_WEP_TX_KEY_INDEX; 266f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return configuration; 267f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 268f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 269f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static WifiConfiguration createWepHiddenNetwork() { 270f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius WifiConfiguration configuration = createWepNetwork(); 271f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius configuration.hiddenSSID = true; 272f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return configuration; 273f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 274f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 275f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 276f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static WifiConfiguration createWepNetworkWithSingleKey() { 277f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius WifiConfiguration configuration = 278f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius generateWifiConfig(TEST_NETWORK_ID, TEST_UID, createNewSSID(), true, true, null, 279f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius null, SECURITY_WEP); 280f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius configuration.wepKeys[0] = TEST_WEP_KEYS[0]; 281f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius configuration.wepTxKeyIndex = 0; 282f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return configuration; 283f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 284f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 285f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 286f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static WifiConfiguration createEapNetwork() { 287f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius WifiConfiguration configuration = 288f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius generateWifiConfig(TEST_NETWORK_ID, TEST_UID, createNewSSID(), true, true, 2899cc8b06885dc5889a1ed503b25faff5b83d20978Peter Qiu null, null, SECURITY_EAP); 290f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return configuration; 291f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 292f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 293ff27ddf1923d9d4d4cfa8cc1a1ddb8748d0f2426Ningyuan Wang public static WifiConfiguration createEapNetwork(String ssid) { 294ff27ddf1923d9d4d4cfa8cc1a1ddb8748d0f2426Ningyuan Wang WifiConfiguration configuration = 295ff27ddf1923d9d4d4cfa8cc1a1ddb8748d0f2426Ningyuan Wang generateWifiConfig(TEST_NETWORK_ID, TEST_UID, ssid, true, true, 296ff27ddf1923d9d4d4cfa8cc1a1ddb8748d0f2426Ningyuan Wang null, null, SECURITY_EAP); 297ff27ddf1923d9d4d4cfa8cc1a1ddb8748d0f2426Ningyuan Wang return configuration; 298ff27ddf1923d9d4d4cfa8cc1a1ddb8748d0f2426Ningyuan Wang } 299ff27ddf1923d9d4d4cfa8cc1a1ddb8748d0f2426Ningyuan Wang 300ff27ddf1923d9d4d4cfa8cc1a1ddb8748d0f2426Ningyuan Wang 3018757adcc5e1f17354d09b4bacd3abda911974448Paul Stewart public static WifiConfiguration createEapNetwork(int eapMethod, int phase2Method) { 3028757adcc5e1f17354d09b4bacd3abda911974448Paul Stewart WifiConfiguration configuration = 3038757adcc5e1f17354d09b4bacd3abda911974448Paul Stewart generateWifiConfig(TEST_NETWORK_ID, TEST_UID, createNewSSID(), true, true, 3048757adcc5e1f17354d09b4bacd3abda911974448Paul Stewart null, null, SECURITY_EAP); 3058757adcc5e1f17354d09b4bacd3abda911974448Paul Stewart configuration.enterpriseConfig.setEapMethod(eapMethod); 3068757adcc5e1f17354d09b4bacd3abda911974448Paul Stewart configuration.enterpriseConfig.setPhase2Method(phase2Method); 3078757adcc5e1f17354d09b4bacd3abda911974448Paul Stewart return configuration; 3088757adcc5e1f17354d09b4bacd3abda911974448Paul Stewart } 3098757adcc5e1f17354d09b4bacd3abda911974448Paul Stewart 310d7e8058288bdc5085b54fef77dbfa38597cea348Peter Qiu public static WifiConfiguration createPasspointNetwork() { 311d7e8058288bdc5085b54fef77dbfa38597cea348Peter Qiu WifiConfiguration configuration = 312d7e8058288bdc5085b54fef77dbfa38597cea348Peter Qiu generateWifiConfig(TEST_NETWORK_ID, TEST_UID, createNewSSID(), true, true, 313d7e8058288bdc5085b54fef77dbfa38597cea348Peter Qiu TEST_FQDN, TEST_PROVIDER_FRIENDLY_NAME, SECURITY_EAP); 314d7e8058288bdc5085b54fef77dbfa38597cea348Peter Qiu return configuration; 315d7e8058288bdc5085b54fef77dbfa38597cea348Peter Qiu } 316d7e8058288bdc5085b54fef77dbfa38597cea348Peter Qiu 317f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static IpConfiguration createStaticIpConfigurationWithPacProxy() { 318f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return generateIpConfig( 319f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius STATIC_IP_ASSIGNMENT, PAC_PROXY_SETTING, 320f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_LINK_ADDRESS, TEST_STATIC_IP_LINK_PREFIX_LENGTH, 321f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_GATEWAY_ADDRESS, TEST_STATIC_IP_DNS_SERVER_ADDRESSES, 322f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_PROXY_HOST, TEST_STATIC_PROXY_PORT, TEST_STATIC_PROXY_EXCLUSION_LIST, 323f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_PAC_PROXY_LOCATION); 324f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 325f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 326f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static IpConfiguration createStaticIpConfigurationWithStaticProxy() { 327f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return generateIpConfig( 328f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius STATIC_IP_ASSIGNMENT, STATIC_PROXY_SETTING, 329f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_LINK_ADDRESS, TEST_STATIC_IP_LINK_PREFIX_LENGTH, 330f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_GATEWAY_ADDRESS, TEST_STATIC_IP_DNS_SERVER_ADDRESSES, 331f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_PROXY_HOST, TEST_STATIC_PROXY_PORT, TEST_STATIC_PROXY_EXCLUSION_LIST, 332f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_PAC_PROXY_LOCATION); 333f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 334f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 335f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static IpConfiguration createPartialStaticIpConfigurationWithPacProxy() { 336f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return generateIpConfig( 337f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius STATIC_IP_ASSIGNMENT, PAC_PROXY_SETTING, 338f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_LINK_ADDRESS, TEST_STATIC_IP_LINK_PREFIX_LENGTH, 339f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius null, null, 340f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_PROXY_HOST, TEST_STATIC_PROXY_PORT, TEST_STATIC_PROXY_EXCLUSION_LIST, 341f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_PAC_PROXY_LOCATION); 342f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 343f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 344f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static IpConfiguration createDHCPIpConfigurationWithPacProxy() { 345f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return generateIpConfig( 346f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius DHCP_IP_ASSIGNMENT, PAC_PROXY_SETTING, 347f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_LINK_ADDRESS, TEST_STATIC_IP_LINK_PREFIX_LENGTH, 348f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_GATEWAY_ADDRESS, TEST_STATIC_IP_DNS_SERVER_ADDRESSES, 349f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_PROXY_HOST, TEST_STATIC_PROXY_PORT, TEST_STATIC_PROXY_EXCLUSION_LIST, 350f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_PAC_PROXY_LOCATION); 351f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 352f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 353f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static IpConfiguration createDHCPIpConfigurationWithStaticProxy() { 354f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return generateIpConfig( 355f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius DHCP_IP_ASSIGNMENT, STATIC_PROXY_SETTING, 356f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_LINK_ADDRESS, TEST_STATIC_IP_LINK_PREFIX_LENGTH, 357f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_GATEWAY_ADDRESS, TEST_STATIC_IP_DNS_SERVER_ADDRESSES, 358f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_PROXY_HOST, TEST_STATIC_PROXY_PORT, TEST_STATIC_PROXY_EXCLUSION_LIST, 359f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_PAC_PROXY_LOCATION); 360f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 361f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 362f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static IpConfiguration createDHCPIpConfigurationWithNoProxy() { 363f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return generateIpConfig( 364f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius DHCP_IP_ASSIGNMENT, NONE_PROXY_SETTING, 365f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_LINK_ADDRESS, TEST_STATIC_IP_LINK_PREFIX_LENGTH, 366f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_GATEWAY_ADDRESS, TEST_STATIC_IP_DNS_SERVER_ADDRESSES, 367f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_PROXY_HOST, TEST_STATIC_PROXY_PORT, TEST_STATIC_PROXY_EXCLUSION_LIST, 368f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_PAC_PROXY_LOCATION); 369f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 370f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 3710d14dbc1da819e72054b9f168c8e3db767dd34bfGlen Kuhne /** 3720d14dbc1da819e72054b9f168c8e3db767dd34bfGlen Kuhne * Creates an IP configuration with specific parameters. 3730d14dbc1da819e72054b9f168c8e3db767dd34bfGlen Kuhne * @param proxySetting Must be one of {@link WifiConfigurationTestUtil#STATIC_PROXY_SETTING}, 3740d14dbc1da819e72054b9f168c8e3db767dd34bfGlen Kuhne * {@link WifiConfigurationTestUtil#PAC_PROXY_SETTING}, 3750d14dbc1da819e72054b9f168c8e3db767dd34bfGlen Kuhne * {@link WifiConfigurationTestUtil#NONE_PROXY_SETTING} 3760d14dbc1da819e72054b9f168c8e3db767dd34bfGlen Kuhne */ 3770d14dbc1da819e72054b9f168c8e3db767dd34bfGlen Kuhne public static IpConfiguration createDHCPIpConfigurationWithSpecificProxy( 3780d14dbc1da819e72054b9f168c8e3db767dd34bfGlen Kuhne int proxySetting, 3790d14dbc1da819e72054b9f168c8e3db767dd34bfGlen Kuhne String staticProxyHost, 3800d14dbc1da819e72054b9f168c8e3db767dd34bfGlen Kuhne int staticProxyPort, 3810d14dbc1da819e72054b9f168c8e3db767dd34bfGlen Kuhne String staticProxyExclusionList, 3820d14dbc1da819e72054b9f168c8e3db767dd34bfGlen Kuhne String pacProxyLocation) { 3830d14dbc1da819e72054b9f168c8e3db767dd34bfGlen Kuhne return generateIpConfig( 3840d14dbc1da819e72054b9f168c8e3db767dd34bfGlen Kuhne DHCP_IP_ASSIGNMENT, proxySetting, 3850d14dbc1da819e72054b9f168c8e3db767dd34bfGlen Kuhne TEST_STATIC_IP_LINK_ADDRESS, TEST_STATIC_IP_LINK_PREFIX_LENGTH, 3860d14dbc1da819e72054b9f168c8e3db767dd34bfGlen Kuhne TEST_STATIC_IP_GATEWAY_ADDRESS, TEST_STATIC_IP_DNS_SERVER_ADDRESSES, 3870d14dbc1da819e72054b9f168c8e3db767dd34bfGlen Kuhne staticProxyHost, staticProxyPort, staticProxyExclusionList, 3880d14dbc1da819e72054b9f168c8e3db767dd34bfGlen Kuhne pacProxyLocation); 3890d14dbc1da819e72054b9f168c8e3db767dd34bfGlen Kuhne } 3900d14dbc1da819e72054b9f168c8e3db767dd34bfGlen Kuhne 3911fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Pius // TODO: These enterprise configurations may need more parameters set. 3921fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Pius public static WifiEnterpriseConfig createPEAPWifiEnterpriseConfigWithGTCPhase2() { 3931fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Pius WifiEnterpriseConfig config = new WifiEnterpriseConfig(); 3941fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Pius config.setEapMethod(WifiEnterpriseConfig.Eap.PEAP); 3951fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Pius config.setPhase2Method(WifiEnterpriseConfig.Phase2.GTC); 3961fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Pius config.setCaCertificateAliases(new String[] {TEST_CA_CERT_ALIAS + "PEAP"}); 3971fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Pius config.setCaCertificates(new X509Certificate[] {FakeKeys.CA_CERT0, FakeKeys.CA_CERT1}); 3981fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Pius return config; 3991fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Pius } 4001fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Pius 4011fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Pius public static WifiEnterpriseConfig createTLSWifiEnterpriseConfigWithNonePhase2() { 4021fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Pius WifiEnterpriseConfig config = new WifiEnterpriseConfig(); 4031fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Pius config.setEapMethod(WifiEnterpriseConfig.Eap.TLS); 4041fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Pius config.setPhase2Method(WifiEnterpriseConfig.Phase2.NONE); 4051fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Pius config.setCaCertificateAliases(new String[] {TEST_CA_CERT_ALIAS + "TLS"}); 4061fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Pius config.setCaCertificates(new X509Certificate[] {FakeKeys.CA_CERT0, FakeKeys.CA_CERT1}); 4071fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Pius return config; 4081fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Pius } 4091fa858ae90e82658e2d5332f66c62c671e736bfbRoshan Pius 410cb9565f0cb8fa92346549bcacdfbf91cdf8e6bd3Roshan Pius public static WifiEnterpriseConfig createTLSWifiEnterpriseConfigWithAkaPhase2() { 411cb9565f0cb8fa92346549bcacdfbf91cdf8e6bd3Roshan Pius WifiEnterpriseConfig config = new WifiEnterpriseConfig(); 412cb9565f0cb8fa92346549bcacdfbf91cdf8e6bd3Roshan Pius config.setEapMethod(WifiEnterpriseConfig.Eap.TLS); 413cb9565f0cb8fa92346549bcacdfbf91cdf8e6bd3Roshan Pius config.setPhase2Method(WifiEnterpriseConfig.Phase2.AKA); 414cb9565f0cb8fa92346549bcacdfbf91cdf8e6bd3Roshan Pius return config; 415cb9565f0cb8fa92346549bcacdfbf91cdf8e6bd3Roshan Pius } 416cb9565f0cb8fa92346549bcacdfbf91cdf8e6bd3Roshan Pius 417f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius /** 4182fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius * Asserts that the 2 WifiConfigurations are equal in the elements saved for both backup/restore 4192fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius * and config store. 420e33a4bb414892435c016486585c26022cafdab68Roshan Pius */ 4212fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius private static void assertCommonConfigurationElementsEqual( 422e33a4bb414892435c016486585c26022cafdab68Roshan Pius WifiConfiguration expected, WifiConfiguration actual) { 423009ba55ea70190ab6f98d72698d6ee426bcefd9eRoshan Pius assertNotNull(expected); 424009ba55ea70190ab6f98d72698d6ee426bcefd9eRoshan Pius assertNotNull(actual); 425e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.SSID, actual.SSID); 426e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.BSSID, actual.BSSID); 427e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.preSharedKey, actual.preSharedKey); 428e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.wepKeys, actual.wepKeys); 429e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.wepTxKeyIndex, actual.wepTxKeyIndex); 430e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.hiddenSSID, actual.hiddenSSID); 431241605aebc6a8f55624026e8b72246bceb1c2ac2Roshan Pius assertEquals(expected.requirePMF, actual.requirePMF); 432e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.allowedKeyManagement, actual.allowedKeyManagement); 433e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.allowedProtocols, actual.allowedProtocols); 434e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.allowedAuthAlgorithms, actual.allowedAuthAlgorithms); 435241605aebc6a8f55624026e8b72246bceb1c2ac2Roshan Pius assertEquals(expected.allowedGroupCiphers, actual.allowedGroupCiphers); 436241605aebc6a8f55624026e8b72246bceb1c2ac2Roshan Pius assertEquals(expected.allowedPairwiseCiphers, actual.allowedPairwiseCiphers); 437e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.shared, actual.shared); 438e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.getIpConfiguration(), actual.getIpConfiguration()); 439e33a4bb414892435c016486585c26022cafdab68Roshan Pius } 4402fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius 4412fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius /** 4422fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius * Asserts that the 2 WifiConfigurations are equal. This only compares the elements saved 4432fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius * fpr backup/restore. 4442fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius */ 4452fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius public static void assertConfigurationEqualForBackup( 4462fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius WifiConfiguration expected, WifiConfiguration actual) { 4472fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius assertCommonConfigurationElementsEqual(expected, actual); 4482fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius } 4492fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius 4502fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius /** 4512fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius * Asserts that the 2 WifiConfigurations are equal. This compares all the elements saved for 4522fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius * config store. 4532fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius */ 4542fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius public static void assertConfigurationEqualForConfigStore( 4552fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius WifiConfiguration expected, WifiConfiguration actual) { 4562fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius assertCommonConfigurationElementsEqual(expected, actual); 4576296902ef69724b106973b57b268c30ea4f1ab51Roshan Pius assertEquals(expected.status, actual.status); 458030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.FQDN, actual.FQDN); 459030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.providerFriendlyName, actual.providerFriendlyName); 4609432358b816df5530aed86d4107756854e5ac4f0Peter Qiu assertTrue(Arrays.equals(expected.roamingConsortiumIds, actual.roamingConsortiumIds)); 461030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.linkedConfigurations, actual.linkedConfigurations); 462030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.defaultGwMacAddress, actual.defaultGwMacAddress); 463030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.validatedInternetAccess, actual.validatedInternetAccess); 464030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.noInternetAccessExpected, actual.noInternetAccessExpected); 465030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.userApproved, actual.userApproved); 466030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.meteredHint, actual.meteredHint); 467030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.useExternalScores, actual.useExternalScores); 468030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.numAssociation, actual.numAssociation); 4692fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius assertEquals(expected.creatorUid, actual.creatorUid); 4702fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius assertEquals(expected.creatorName, actual.creatorName); 471030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.creationTime, actual.creationTime); 472030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.lastUpdateUid, actual.lastUpdateUid); 473030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.lastUpdateName, actual.lastUpdateName); 474030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.lastConnectUid, actual.lastConnectUid); 475f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius assertEquals(expected.updateTime, actual.updateTime); 4769ef555a48ac600c8766f703fa60db15b69e20301Peter Qiu assertEquals(expected.isLegacyPasspointConfig, actual.isLegacyPasspointConfig); 4775d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius assertNetworkSelectionStatusEqualForConfigStore( 4785d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius expected.getNetworkSelectionStatus(), actual.getNetworkSelectionStatus()); 479642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius assertWifiEnterpriseConfigEqualForConfigStore( 480642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius expected.enterpriseConfig, actual.enterpriseConfig); 4815d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius } 4825d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius 4835d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius /** 48450eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius * Asserts that the 2 WifiConfigurations are equal. This compares all the elements that are 48550eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius * saved into internal database by WifiConfigurationManager for network additions/updates. 48650eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius */ 48750eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius public static void assertConfigurationEqualForConfigManagerAddOrUpdate( 48850eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius WifiConfiguration expected, WifiConfiguration actual) { 48950eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertCommonConfigurationElementsEqual(expected, actual); 49050eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.FQDN, actual.FQDN); 49150eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.providerFriendlyName, actual.providerFriendlyName); 49250eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.noInternetAccessExpected, actual.noInternetAccessExpected); 49350eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.meteredHint, actual.meteredHint); 49450eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.useExternalScores, actual.useExternalScores); 49550eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.ephemeral, actual.ephemeral); 49650eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.creatorUid, actual.creatorUid); 49750eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.creatorName, actual.creatorName); 49850eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.creationTime, actual.creationTime); 49950eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.lastUpdateUid, actual.lastUpdateUid); 50050eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.lastUpdateName, actual.lastUpdateName); 50150eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.updateTime, actual.updateTime); 50250eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertNetworkSelectionStatusEqualForConfigStore( 50350eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius expected.getNetworkSelectionStatus(), actual.getNetworkSelectionStatus()); 50450eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertWifiEnterpriseConfigEqualForConfigStore( 50550eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius expected.enterpriseConfig, actual.enterpriseConfig); 50650eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius } 50750eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius 50850eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius /** 50966e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne * Asserts that the 2 WifiConfigurations are equal. This compares all the elements that are 51066e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne * saved into wpa_supplicant by SupplicantStaNetwork. 51166e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne */ 51266e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne public static void assertConfigurationEqualForSupplicant( 51366e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne WifiConfiguration expected, WifiConfiguration actual) { 51466e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne assertNotNull(expected); 51566e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne assertNotNull(actual); 51666e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne assertEquals(expected.SSID, actual.SSID); 51766e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne assertEquals(expected.getNetworkSelectionStatus().getNetworkSelectionBSSID(), 51866e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne actual.getNetworkSelectionStatus().getNetworkSelectionBSSID()); 51966e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne assertEquals(expected.preSharedKey, actual.preSharedKey); 52066e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne assertEquals(expected.wepKeys, actual.wepKeys); 52166e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne assertEquals(expected.wepTxKeyIndex, actual.wepTxKeyIndex); 52266e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne assertEquals(expected.hiddenSSID, actual.hiddenSSID); 52366e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne assertEquals(expected.requirePMF, actual.requirePMF); 52466e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne assertEquals(expected.allowedKeyManagement, actual.allowedKeyManagement); 52566e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne assertEquals(expected.allowedProtocols, actual.allowedProtocols); 52666e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne assertEquals(expected.allowedAuthAlgorithms, actual.allowedAuthAlgorithms); 52766e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne assertEquals(expected.allowedGroupCiphers, actual.allowedGroupCiphers); 52866e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne assertEquals(expected.allowedPairwiseCiphers, actual.allowedPairwiseCiphers); 52964950d46f5469e5e6ce32ccc81a1f751c40f4202Roshan Pius assertWifiEnterpriseConfigEqualForConfigStore( 53064950d46f5469e5e6ce32ccc81a1f751c40f4202Roshan Pius expected.enterpriseConfig, actual.enterpriseConfig); 53166e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne } 53266e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne 53366e9f4ab597136cbf4accadb8e009fc68ff071a7Glen Kuhne /** 534009ba55ea70190ab6f98d72698d6ee426bcefd9eRoshan Pius * Asserts that the 2 WifiConfigurations are equal. This is a generic version of the comparator 535009ba55ea70190ab6f98d72698d6ee426bcefd9eRoshan Pius * which is used in QNS tests for comparing the network selections. 536009ba55ea70190ab6f98d72698d6ee426bcefd9eRoshan Pius * This importantly checks that the networkId's of the 2 configs are equal. 537009ba55ea70190ab6f98d72698d6ee426bcefd9eRoshan Pius */ 538009ba55ea70190ab6f98d72698d6ee426bcefd9eRoshan Pius public static void assertConfigurationEqual( 539009ba55ea70190ab6f98d72698d6ee426bcefd9eRoshan Pius WifiConfiguration expected, WifiConfiguration actual) { 540009ba55ea70190ab6f98d72698d6ee426bcefd9eRoshan Pius assertCommonConfigurationElementsEqual(expected, actual); 541009ba55ea70190ab6f98d72698d6ee426bcefd9eRoshan Pius assertEquals(expected.networkId, actual.networkId); 542009ba55ea70190ab6f98d72698d6ee426bcefd9eRoshan Pius } 543009ba55ea70190ab6f98d72698d6ee426bcefd9eRoshan Pius 544009ba55ea70190ab6f98d72698d6ee426bcefd9eRoshan Pius /** 5455d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius * Assert that the 2 NetworkSelectionStatus's are equal. This compares all the elements saved 5465d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius * for config store. 5475d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius */ 5485d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius public static void assertNetworkSelectionStatusEqualForConfigStore( 5495d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius NetworkSelectionStatus expected, NetworkSelectionStatus actual) { 5505d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius if (expected.isNetworkTemporaryDisabled()) { 5515d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius // Temporarily disabled networks are enabled when persisted. 5525d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius assertEquals( 5535d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius NetworkSelectionStatus.NETWORK_SELECTION_ENABLED, 5545d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius actual.getNetworkSelectionStatus()); 5550e2540a1c1ba3c541a229b039a90789f93c41ee7Roshan Pius assertEquals( 5560e2540a1c1ba3c541a229b039a90789f93c41ee7Roshan Pius NetworkSelectionStatus.NETWORK_SELECTION_ENABLE, 5570e2540a1c1ba3c541a229b039a90789f93c41ee7Roshan Pius actual.getNetworkSelectionDisableReason()); 5585d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius } else { 5595d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius assertEquals(expected.getNetworkSelectionStatus(), actual.getNetworkSelectionStatus()); 5600e2540a1c1ba3c541a229b039a90789f93c41ee7Roshan Pius assertEquals( 5610e2540a1c1ba3c541a229b039a90789f93c41ee7Roshan Pius expected.getNetworkSelectionDisableReason(), 5620e2540a1c1ba3c541a229b039a90789f93c41ee7Roshan Pius actual.getNetworkSelectionDisableReason()); 5635d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius } 5645d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius assertEquals(expected.getConnectChoice(), actual.getConnectChoice()); 5655d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius assertEquals(expected.getConnectChoiceTimestamp(), actual.getConnectChoiceTimestamp()); 5665d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius assertEquals(expected.getHasEverConnected(), actual.getHasEverConnected()); 5672fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius } 568642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius 569642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius /** 570642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius * Assert that the 2 WifiEnterpriseConfig's are equal. This compares all the elements saved 571642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius * for config store. 572642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius */ 573642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius public static void assertWifiEnterpriseConfigEqualForConfigStore( 574642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius WifiEnterpriseConfig expected, WifiEnterpriseConfig actual) { 575d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.IDENTITY_KEY), 576d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius actual.getFieldValue(WifiEnterpriseConfig.IDENTITY_KEY)); 577d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.ANON_IDENTITY_KEY), 578d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius actual.getFieldValue(WifiEnterpriseConfig.ANON_IDENTITY_KEY)); 579d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.PASSWORD_KEY), 580d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius actual.getFieldValue(WifiEnterpriseConfig.PASSWORD_KEY)); 581d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.CLIENT_CERT_KEY), 582d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius actual.getFieldValue(WifiEnterpriseConfig.CLIENT_CERT_KEY)); 583d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.CA_CERT_KEY), 584d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius actual.getFieldValue(WifiEnterpriseConfig.CA_CERT_KEY)); 585d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.SUBJECT_MATCH_KEY), 586d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius actual.getFieldValue(WifiEnterpriseConfig.SUBJECT_MATCH_KEY)); 587d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.ENGINE_KEY), 588d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius actual.getFieldValue(WifiEnterpriseConfig.ENGINE_KEY)); 589d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.ENGINE_ID_KEY), 590d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius actual.getFieldValue(WifiEnterpriseConfig.ENGINE_ID_KEY)); 591d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.PRIVATE_KEY_ID_KEY), 592d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius actual.getFieldValue(WifiEnterpriseConfig.PRIVATE_KEY_ID_KEY)); 593d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.ALTSUBJECT_MATCH_KEY), 594d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius actual.getFieldValue(WifiEnterpriseConfig.ALTSUBJECT_MATCH_KEY)); 595d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.DOM_SUFFIX_MATCH_KEY), 596d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius actual.getFieldValue(WifiEnterpriseConfig.DOM_SUFFIX_MATCH_KEY)); 597d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.CA_PATH_KEY), 598d83ef7d8c4948afc328d8ef0e746b32c195f271eRoshan Pius actual.getFieldValue(WifiEnterpriseConfig.CA_PATH_KEY)); 5999432358b816df5530aed86d4107756854e5ac4f0Peter Qiu assertEquals(expected.getFieldValue(WifiEnterpriseConfig.REALM_KEY), 6009432358b816df5530aed86d4107756854e5ac4f0Peter Qiu actual.getFieldValue(WifiEnterpriseConfig.REALM_KEY)); 6019432358b816df5530aed86d4107756854e5ac4f0Peter Qiu assertEquals(expected.getFieldValue(WifiEnterpriseConfig.PLMN_KEY), 6029432358b816df5530aed86d4107756854e5ac4f0Peter Qiu actual.getFieldValue(WifiEnterpriseConfig.PLMN_KEY)); 603642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius assertEquals(expected.getEapMethod(), actual.getEapMethod()); 604642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius assertEquals(expected.getPhase2Method(), actual.getPhase2Method()); 605642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius } 606f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius 607f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius /** 608f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * Asserts that the 2 lists of WifiConfigurations are equal. This compares all the elements 609f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * saved for backup/restore. 610f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius */ 611f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius public static void assertConfigurationsEqualForBackup( 612f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius List<WifiConfiguration> expected, List<WifiConfiguration> actual) { 613f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius assertEquals(expected.size(), actual.size()); 614f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius for (WifiConfiguration expectedConfiguration : expected) { 615f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius String expectedConfigKey = expectedConfiguration.configKey(); 616f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius boolean didCompare = false; 617f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius for (WifiConfiguration actualConfiguration : actual) { 618f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius String actualConfigKey = actualConfiguration.configKey(); 619f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius if (actualConfigKey.equals(expectedConfigKey)) { 620f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius assertConfigurationEqualForBackup( 621f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius expectedConfiguration, actualConfiguration); 622f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius didCompare = true; 623f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 624f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 625f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius assertTrue(didCompare); 62650eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius } 62750eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius } 62850eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius 62950eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius /** 63050eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius * Asserts that the 2 lists of WifiConfigurations are equal. This compares all the elements 63150eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius * that are saved into internal database by WifiConfigurationManager for network 63250eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius * additions/updates. 63350eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius */ 63450eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius public static void assertConfigurationsEqualForConfigManagerAddOrUpdate( 63550eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius List<WifiConfiguration> expected, List<WifiConfiguration> actual) { 63650eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.size(), actual.size()); 63750eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius for (WifiConfiguration expectedConfiguration : expected) { 63850eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius String expectedConfigKey = expectedConfiguration.configKey(); 63950eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius boolean didCompare = false; 64050eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius for (WifiConfiguration actualConfiguration : actual) { 64150eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius String actualConfigKey = actualConfiguration.configKey(); 64250eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius if (actualConfigKey.equals(expectedConfigKey)) { 64350eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertConfigurationEqualForConfigManagerAddOrUpdate( 64450eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius expectedConfiguration, actualConfiguration); 64550eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius didCompare = true; 64650eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius } 64750eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius } 64850eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertTrue(didCompare); 649f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 650f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 651f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius 652f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius /** 653f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * Asserts that the 2 lists of WifiConfigurations are equal. This compares all the elements 654f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * saved for config store. 655f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius */ 656f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius public static void assertConfigurationsEqualForConfigStore( 657f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius List<WifiConfiguration> expected, List<WifiConfiguration> actual) { 658f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius assertEquals(expected.size(), actual.size()); 659f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius for (WifiConfiguration expectedConfiguration : expected) { 660f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius String expectedConfigKey = expectedConfiguration.configKey(); 661f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius boolean didCompare = false; 662f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius for (WifiConfiguration actualConfiguration : actual) { 663f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius String actualConfigKey = actualConfiguration.configKey(); 664f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius if (actualConfigKey.equals(expectedConfigKey)) { 665f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius assertConfigurationEqualForConfigStore( 666f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius expectedConfiguration, actualConfiguration); 667f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius didCompare = true; 668f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 669f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 670f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius assertTrue(didCompare); 671f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 672f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 673bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski} 674