WifiConfigurationTestUtil.java revision 50eed92fe9556fdd9934683690181fea77ce4eac
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; 32f918b154ddceb58c3d214d75ad02180d1907429aRoshan Piusimport java.util.List; 33e33a4bb414892435c016486585c26022cafdab68Roshan Pius 34bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski/** 35bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski * Helper for creating and populating WifiConfigurations in unit tests. 36bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski */ 370fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowskipublic class WifiConfigurationTestUtil { 38b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe /** 39b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe * These values are used to describe AP's security setting. One AP can support multiple of them, 40b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe * only if there is no conflict. 41b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe */ 42b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe public static final int SECURITY_NONE = 0; 43b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe public static final int SECURITY_WEP = 1 << 0; 44b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe public static final int SECURITY_PSK = 1 << 1; 45b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe public static final int SECURITY_EAP = 1 << 2; 46b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe 470fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski /** 48f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * These values are used to describe ip configuration parameters for a network. 49f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius */ 50f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius public static final int STATIC_IP_ASSIGNMENT = 0; 51f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius public static final int DHCP_IP_ASSIGNMENT = 1; 52f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius public static final int STATIC_PROXY_SETTING = 0; 53f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius public static final int PAC_PROXY_SETTING = 1; 54f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius public static final int NONE_PROXY_SETTING = 2; 55f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius 56f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius /** 57f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius * These are constants used to generate predefined WifiConfiguration objects. 58f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius */ 59f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final int TEST_NETWORK_ID = -1; 60f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final int TEST_UID = 1; 61f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final String TEST_SSID = "WifiConfigurationTestUtilSSID_"; 62f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final String TEST_PSK = "WifiConfigurationTestUtilPsk"; 63f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final String[] TEST_WEP_KEYS = 64f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius {"WifiConfigurationTestUtilWep1", "WifiConfigurationTestUtilWep2", 65f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius "WifiConfigurationTestUtilWep3", "WifiConfigurationTestUtilWep3"}; 66f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final int TEST_WEP_TX_KEY_INDEX = 1; 67f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final String TEST_FQDN = "WifiConfigurationTestUtilFQDN"; 68f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final String TEST_PROVIDER_FRIENDLY_NAME = 69f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius "WifiConfigurationTestUtilFriendlyName"; 70f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final String TEST_STATIC_IP_LINK_ADDRESS = "192.168.48.2"; 71f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final int TEST_STATIC_IP_LINK_PREFIX_LENGTH = 8; 72f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final String TEST_STATIC_IP_GATEWAY_ADDRESS = "192.168.48.1"; 73f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final String[] TEST_STATIC_IP_DNS_SERVER_ADDRESSES = 74f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius new String[]{"192.168.48.1", "192.168.48.10"}; 75f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final String TEST_STATIC_PROXY_HOST = "192.168.48.1"; 76f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final int TEST_STATIC_PROXY_PORT = 8000; 77f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final String TEST_STATIC_PROXY_EXCLUSION_LIST = ""; 78f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static final String TEST_PAC_PROXY_LOCATION = "http://"; 79f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 80f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius /** 81f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius * Index used to assign unique SSIDs for the generation of predefined WifiConfiguration objects. 82f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius */ 83f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius private static int sNetworkIndex = 0; 84f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius 85f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius /** 860fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * Construct a {@link android.net.wifi.WifiConfiguration}. 870fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param networkId the configuration's networkId 880fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param uid the configuration's creator uid 890fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param ssid the configuration's ssid 900fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param shared whether the configuration is shared with other users on the device 910fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param enabled whether the configuration is enabled 920fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param fqdn the configuration's FQDN (Hotspot 2.0 only) 930fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param providerFriendlyName the configuration's provider's friendly name (Hotspot 2.0 only) 940fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @return the constructed {@link android.net.wifi.WifiConfiguration} 950fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski */ 96bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski public static WifiConfiguration generateWifiConfig(int networkId, int uid, String ssid, 97bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski boolean shared, boolean enabled, String fqdn, String providerFriendlyName) { 98bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski final WifiConfiguration config = new WifiConfiguration(); 99bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski config.SSID = ssid; 100bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski config.networkId = networkId; 101bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski config.creatorUid = uid; 102bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski config.shared = shared; 103bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski config.status = enabled ? WifiConfiguration.Status.ENABLED 104bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski : WifiConfiguration.Status.DISABLED; 105bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski if (fqdn != null) { 106bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski config.FQDN = fqdn; 107bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski config.providerFriendlyName = providerFriendlyName; 108bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski config.enterpriseConfig.setEapMethod(WifiEnterpriseConfig.Eap.SIM); 109bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski } 110bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski return config; 111bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski } 112b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe 1130fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski /** 1140fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * Construct a {@link android.net.wifi.WifiConfiguration}. 1150fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param networkId the configuration's networkId 1160fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param uid the configuration's creator uid 1170fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param ssid the configuration's ssid 1180fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param shared whether the configuration is shared with other users on the device 1190fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param enabled whether the configuration is enabled 1200fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param fqdn the configuration's FQDN (Hotspot 2.0 only) 1210fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param providerFriendlyName the configuration's provider's friendly name (Hotspot 2.0 only) 1220fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @param security the configuration's security type 1230fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski * @return the constructed {@link android.net.wifi.WifiConfiguration} 1240fb9cf43830d67894b519c9a6271320c4842a5c0Bartosz Fabianowski */ 125b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe public static WifiConfiguration generateWifiConfig(int networkId, int uid, String ssid, 126b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe boolean shared, boolean enabled, String fqdn, String providerFriendlyName, 127b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe int security) { 128b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe WifiConfiguration config = generateWifiConfig(networkId, uid, ssid, shared, enabled, fqdn, 129b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe providerFriendlyName); 130b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe 131b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe if (security == SECURITY_NONE) { 132b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); 133b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe } else { 134b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe if (((security & SECURITY_WEP) != 0) || ((security & SECURITY_PSK) != 0)) { 135b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); 136b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe } 137b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe 138b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe if ((security & SECURITY_EAP) != 0) { 139b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP); 140b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.IEEE8021X); 141b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe } 142b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe } 143b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe return config; 144b50356194ccfdaf5e127d9f705f99713d6f1e98cxinhe } 145e33a4bb414892435c016486585c26022cafdab68Roshan Pius 146e33a4bb414892435c016486585c26022cafdab68Roshan Pius /** 147f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * Construct a {@link android.net.IpConfiguration }. 148f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @param ipAssignmentType One of {@link #STATIC_IP_ASSIGNMENT} or {@link #DHCP_IP_ASSIGNMENT}. 149f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @param proxySettingType One of {@link #STATIC_PROXY_SETTING} or {@link #PAC_PROXY_SETTING} or 150f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * {@link #NONE_PROXY_SETTING}. 151f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @param linkAddress static ip address string. 152f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @param linkPrefixLength static ip address prefix length. 153f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @param gatewayAddress static gateway address. 154f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @param dnsServerAddresses list of dns servers for static ip configuration. 155f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @param proxyHost Static proxy server address. 156f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @param proxyPort Static proxy server port. 157f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @param proxyExclusionList Static proxy exclusion list. 158f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @param pacProxyPath Pac proxy server path. 159f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * @return the constructed {@link android.net.IpConfiguration} 160f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius */ 161f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius public static IpConfiguration generateIpConfig( 162f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius int ipAssignmentType, int proxySettingType, String linkAddress, int linkPrefixLength, 163f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius String gatewayAddress, String[] dnsServerAddresses, String proxyHost, 164f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius int proxyPort, String proxyExclusionList, String pacProxyPath) { 165f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius StaticIpConfiguration staticIpConfiguration = null; 166f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius ProxyInfo proxyInfo = null; 167f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius IpConfiguration.IpAssignment ipAssignment = IpConfiguration.IpAssignment.UNASSIGNED; 168f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius IpConfiguration.ProxySettings proxySettings = IpConfiguration.ProxySettings.UNASSIGNED; 169f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius 170f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius if (ipAssignmentType == STATIC_IP_ASSIGNMENT) { 171f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius staticIpConfiguration = new StaticIpConfiguration(); 172f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius if (!TextUtils.isEmpty(linkAddress)) { 173f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius LinkAddress linkAddr = 174f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius new LinkAddress( 175f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius NetworkUtils.numericToInetAddress(linkAddress), linkPrefixLength); 176f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius staticIpConfiguration.ipAddress = linkAddr; 177f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 178f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius 179f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius if (!TextUtils.isEmpty(gatewayAddress)) { 180f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius InetAddress gatewayAddr = 181f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius NetworkUtils.numericToInetAddress(gatewayAddress); 182f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius staticIpConfiguration.gateway = gatewayAddr; 183f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 184f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius if (dnsServerAddresses != null) { 185f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius for (String dnsServerAddress : dnsServerAddresses) { 186f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius if (!TextUtils.isEmpty(dnsServerAddress)) { 187f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius staticIpConfiguration.dnsServers.add( 188f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius NetworkUtils.numericToInetAddress(dnsServerAddress)); 189f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 190f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius 191f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 192f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 193f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius ipAssignment = IpConfiguration.IpAssignment.STATIC; 194f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } else if (ipAssignmentType == DHCP_IP_ASSIGNMENT) { 195f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius ipAssignment = IpConfiguration.IpAssignment.DHCP; 196f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 197f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius 198f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius if (proxySettingType == STATIC_PROXY_SETTING) { 199f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius proxyInfo = new ProxyInfo(proxyHost, proxyPort, proxyExclusionList); 200f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius proxySettings = IpConfiguration.ProxySettings.STATIC; 201f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } else if (proxySettingType == PAC_PROXY_SETTING) { 202f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius proxyInfo = new ProxyInfo(pacProxyPath); 203f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius proxySettings = IpConfiguration.ProxySettings.PAC; 204f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } else if (proxySettingType == NONE_PROXY_SETTING) { 205f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius proxySettings = IpConfiguration.ProxySettings.NONE; 206f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 207f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius return new IpConfiguration(ipAssignment, proxySettings, staticIpConfiguration, proxyInfo); 208f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 209f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius 210f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius /** 211f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius * Create a new SSID for the the network being created. 212f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius */ 213f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius private static String createNewSSID() { 214f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return "\"" + TEST_SSID + sNetworkIndex++ + "\""; 215f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 216f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 217f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius /** 218f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius * Helper methods to generate predefined WifiConfiguration objects of the required type. These 219f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius * use a static index to avoid duplicate configurations. 220f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius */ 221f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static WifiConfiguration createOpenNetwork() { 222f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return generateWifiConfig(TEST_NETWORK_ID, TEST_UID, createNewSSID(), true, true, null, 223f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius null, SECURITY_NONE); 224f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 225f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 226f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static WifiConfiguration createOpenHiddenNetwork() { 227f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius WifiConfiguration configuration = createOpenNetwork(); 228f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius configuration.hiddenSSID = true; 229f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return configuration; 230f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 231f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 232f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static WifiConfiguration createPskNetwork() { 233f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius WifiConfiguration configuration = 234f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius generateWifiConfig(TEST_NETWORK_ID, TEST_UID, createNewSSID(), true, true, null, 235f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius null, SECURITY_PSK); 236f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius configuration.preSharedKey = TEST_PSK; 237f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return configuration; 238f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 239f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 240f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static WifiConfiguration createPskHiddenNetwork() { 241f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius WifiConfiguration configuration = createPskNetwork(); 242f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius configuration.hiddenSSID = true; 243f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return configuration; 244f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 245f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 246f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static WifiConfiguration createWepNetwork() { 247f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius WifiConfiguration configuration = 248f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius generateWifiConfig(TEST_NETWORK_ID, TEST_UID, createNewSSID(), true, true, null, 249f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius null, SECURITY_WEP); 250f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius configuration.wepKeys = TEST_WEP_KEYS; 251f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius configuration.wepTxKeyIndex = TEST_WEP_TX_KEY_INDEX; 252f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return configuration; 253f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 254f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 255f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static WifiConfiguration createWepHiddenNetwork() { 256f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius WifiConfiguration configuration = createWepNetwork(); 257f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius configuration.hiddenSSID = true; 258f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return configuration; 259f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 260f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 261f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 262f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static WifiConfiguration createWepNetworkWithSingleKey() { 263f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius WifiConfiguration configuration = 264f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius generateWifiConfig(TEST_NETWORK_ID, TEST_UID, createNewSSID(), true, true, null, 265f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius null, SECURITY_WEP); 266f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius configuration.wepKeys[0] = TEST_WEP_KEYS[0]; 267f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius configuration.wepTxKeyIndex = 0; 268f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return configuration; 269f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 270f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 271f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 272f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static WifiConfiguration createEapNetwork() { 273f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius WifiConfiguration configuration = 274f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius generateWifiConfig(TEST_NETWORK_ID, TEST_UID, createNewSSID(), true, true, 275f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_FQDN, TEST_PROVIDER_FRIENDLY_NAME, SECURITY_EAP); 276f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return configuration; 277f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 278f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 279f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static IpConfiguration createStaticIpConfigurationWithPacProxy() { 280f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return generateIpConfig( 281f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius STATIC_IP_ASSIGNMENT, PAC_PROXY_SETTING, 282f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_LINK_ADDRESS, TEST_STATIC_IP_LINK_PREFIX_LENGTH, 283f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_GATEWAY_ADDRESS, TEST_STATIC_IP_DNS_SERVER_ADDRESSES, 284f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_PROXY_HOST, TEST_STATIC_PROXY_PORT, TEST_STATIC_PROXY_EXCLUSION_LIST, 285f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_PAC_PROXY_LOCATION); 286f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 287f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 288f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static IpConfiguration createStaticIpConfigurationWithStaticProxy() { 289f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return generateIpConfig( 290f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius STATIC_IP_ASSIGNMENT, STATIC_PROXY_SETTING, 291f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_LINK_ADDRESS, TEST_STATIC_IP_LINK_PREFIX_LENGTH, 292f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_GATEWAY_ADDRESS, TEST_STATIC_IP_DNS_SERVER_ADDRESSES, 293f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_PROXY_HOST, TEST_STATIC_PROXY_PORT, TEST_STATIC_PROXY_EXCLUSION_LIST, 294f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_PAC_PROXY_LOCATION); 295f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 296f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 297f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static IpConfiguration createPartialStaticIpConfigurationWithPacProxy() { 298f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return generateIpConfig( 299f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius STATIC_IP_ASSIGNMENT, PAC_PROXY_SETTING, 300f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_LINK_ADDRESS, TEST_STATIC_IP_LINK_PREFIX_LENGTH, 301f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius null, null, 302f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_PROXY_HOST, TEST_STATIC_PROXY_PORT, TEST_STATIC_PROXY_EXCLUSION_LIST, 303f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_PAC_PROXY_LOCATION); 304f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 305f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 306f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static IpConfiguration createDHCPIpConfigurationWithPacProxy() { 307f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return generateIpConfig( 308f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius DHCP_IP_ASSIGNMENT, PAC_PROXY_SETTING, 309f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_LINK_ADDRESS, TEST_STATIC_IP_LINK_PREFIX_LENGTH, 310f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_GATEWAY_ADDRESS, TEST_STATIC_IP_DNS_SERVER_ADDRESSES, 311f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_PROXY_HOST, TEST_STATIC_PROXY_PORT, TEST_STATIC_PROXY_EXCLUSION_LIST, 312f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_PAC_PROXY_LOCATION); 313f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 314f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 315f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static IpConfiguration createDHCPIpConfigurationWithStaticProxy() { 316f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return generateIpConfig( 317f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius DHCP_IP_ASSIGNMENT, STATIC_PROXY_SETTING, 318f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_LINK_ADDRESS, TEST_STATIC_IP_LINK_PREFIX_LENGTH, 319f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_GATEWAY_ADDRESS, TEST_STATIC_IP_DNS_SERVER_ADDRESSES, 320f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_PROXY_HOST, TEST_STATIC_PROXY_PORT, TEST_STATIC_PROXY_EXCLUSION_LIST, 321f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_PAC_PROXY_LOCATION); 322f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 323f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 324f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius public static IpConfiguration createDHCPIpConfigurationWithNoProxy() { 325f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius return generateIpConfig( 326f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius DHCP_IP_ASSIGNMENT, NONE_PROXY_SETTING, 327f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_LINK_ADDRESS, TEST_STATIC_IP_LINK_PREFIX_LENGTH, 328f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_IP_GATEWAY_ADDRESS, TEST_STATIC_IP_DNS_SERVER_ADDRESSES, 329f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_STATIC_PROXY_HOST, TEST_STATIC_PROXY_PORT, TEST_STATIC_PROXY_EXCLUSION_LIST, 330f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius TEST_PAC_PROXY_LOCATION); 331f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius } 332f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius 333f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius /** 3342fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius * Asserts that the 2 WifiConfigurations are equal in the elements saved for both backup/restore 3352fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius * and config store. 336e33a4bb414892435c016486585c26022cafdab68Roshan Pius */ 3372fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius private static void assertCommonConfigurationElementsEqual( 338e33a4bb414892435c016486585c26022cafdab68Roshan Pius WifiConfiguration expected, WifiConfiguration actual) { 339e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.SSID, actual.SSID); 340e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.BSSID, actual.BSSID); 341e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.preSharedKey, actual.preSharedKey); 342e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.wepKeys, actual.wepKeys); 343e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.wepTxKeyIndex, actual.wepTxKeyIndex); 344e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.hiddenSSID, actual.hiddenSSID); 345e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.allowedKeyManagement, actual.allowedKeyManagement); 346e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.allowedProtocols, actual.allowedProtocols); 347e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.allowedAuthAlgorithms, actual.allowedAuthAlgorithms); 348e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.shared, actual.shared); 349e33a4bb414892435c016486585c26022cafdab68Roshan Pius assertEquals(expected.getIpConfiguration(), actual.getIpConfiguration()); 350e33a4bb414892435c016486585c26022cafdab68Roshan Pius } 3512fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius 3522fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius /** 3532fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius * Asserts that the 2 WifiConfigurations are equal. This only compares the elements saved 3542fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius * fpr backup/restore. 3552fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius */ 3562fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius public static void assertConfigurationEqualForBackup( 3572fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius WifiConfiguration expected, WifiConfiguration actual) { 3582fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius assertCommonConfigurationElementsEqual(expected, actual); 3592fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius } 3602fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius 3612fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius /** 3622fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius * Asserts that the 2 WifiConfigurations are equal. This compares all the elements saved for 3632fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius * config store. 3642fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius */ 3652fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius public static void assertConfigurationEqualForConfigStore( 3662fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius WifiConfiguration expected, WifiConfiguration actual) { 3672fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius assertCommonConfigurationElementsEqual(expected, actual); 368030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.FQDN, actual.FQDN); 369030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.providerFriendlyName, actual.providerFriendlyName); 370030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.linkedConfigurations, actual.linkedConfigurations); 371030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.defaultGwMacAddress, actual.defaultGwMacAddress); 372030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.validatedInternetAccess, actual.validatedInternetAccess); 373030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.noInternetAccessExpected, actual.noInternetAccessExpected); 374030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.userApproved, actual.userApproved); 375030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.meteredHint, actual.meteredHint); 376030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.useExternalScores, actual.useExternalScores); 377030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.numAssociation, actual.numAssociation); 3782fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius assertEquals(expected.creatorUid, actual.creatorUid); 3792fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius assertEquals(expected.creatorName, actual.creatorName); 380030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.creationTime, actual.creationTime); 381030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.lastUpdateUid, actual.lastUpdateUid); 382030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.lastUpdateName, actual.lastUpdateName); 383030c5debfefddf0512cd53fec48b269c08d9972eRoshan Pius assertEquals(expected.lastConnectUid, actual.lastConnectUid); 384f03d366f869da748d97706dbcfbd30b989186f4eRoshan Pius assertEquals(expected.updateTime, actual.updateTime); 3855d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius assertNetworkSelectionStatusEqualForConfigStore( 3865d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius expected.getNetworkSelectionStatus(), actual.getNetworkSelectionStatus()); 387642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius assertWifiEnterpriseConfigEqualForConfigStore( 388642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius expected.enterpriseConfig, actual.enterpriseConfig); 3895d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius } 3905d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius 3915d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius /** 39250eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius * Asserts that the 2 WifiConfigurations are equal. This compares all the elements that are 39350eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius * saved into internal database by WifiConfigurationManager for network additions/updates. 39450eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius */ 39550eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius public static void assertConfigurationEqualForConfigManagerAddOrUpdate( 39650eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius WifiConfiguration expected, WifiConfiguration actual) { 39750eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertCommonConfigurationElementsEqual(expected, actual); 39850eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.FQDN, actual.FQDN); 39950eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.providerFriendlyName, actual.providerFriendlyName); 40050eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.noInternetAccessExpected, actual.noInternetAccessExpected); 40150eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.meteredHint, actual.meteredHint); 40250eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.useExternalScores, actual.useExternalScores); 40350eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.ephemeral, actual.ephemeral); 40450eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.creatorUid, actual.creatorUid); 40550eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.creatorName, actual.creatorName); 40650eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.creationTime, actual.creationTime); 40750eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.lastUpdateUid, actual.lastUpdateUid); 40850eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.lastUpdateName, actual.lastUpdateName); 40950eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.updateTime, actual.updateTime); 41050eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertNetworkSelectionStatusEqualForConfigStore( 41150eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius expected.getNetworkSelectionStatus(), actual.getNetworkSelectionStatus()); 41250eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertWifiEnterpriseConfigEqualForConfigStore( 41350eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius expected.enterpriseConfig, actual.enterpriseConfig); 41450eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius } 41550eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius 41650eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius /** 4175d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius * Assert that the 2 NetworkSelectionStatus's are equal. This compares all the elements saved 4185d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius * for config store. 4195d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius */ 4205d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius public static void assertNetworkSelectionStatusEqualForConfigStore( 4215d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius NetworkSelectionStatus expected, NetworkSelectionStatus actual) { 4225d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius if (expected.isNetworkTemporaryDisabled()) { 4235d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius // Temporarily disabled networks are enabled when persisted. 4245d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius assertEquals( 4255d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius NetworkSelectionStatus.NETWORK_SELECTION_ENABLED, 4265d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius actual.getNetworkSelectionStatus()); 4275d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius } else { 4285d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius assertEquals(expected.getNetworkSelectionStatus(), actual.getNetworkSelectionStatus()); 4295d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius } 4305d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius assertEquals( 4315d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius expected.getNetworkSelectionDisableReason(), 4325d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius actual.getNetworkSelectionDisableReason()); 4335d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius assertEquals(expected.getConnectChoice(), actual.getConnectChoice()); 4345d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius assertEquals(expected.getConnectChoiceTimestamp(), actual.getConnectChoiceTimestamp()); 4355d3609b1931180c37d7292619146ad7d33df9a21Roshan Pius assertEquals(expected.getHasEverConnected(), actual.getHasEverConnected()); 4362fafcc56fda54b1adf8b6743beaac59dbb84dfecRoshan Pius } 437642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius 438642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius /** 439642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius * Assert that the 2 WifiEnterpriseConfig's are equal. This compares all the elements saved 440642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius * for config store. 441642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius */ 442642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius public static void assertWifiEnterpriseConfigEqualForConfigStore( 443642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius WifiEnterpriseConfig expected, WifiEnterpriseConfig actual) { 444642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.IDENTITY_KEY, ""), 445642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius actual.getFieldValue(WifiEnterpriseConfig.IDENTITY_KEY, "")); 446642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.ANON_IDENTITY_KEY, ""), 447642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius actual.getFieldValue(WifiEnterpriseConfig.ANON_IDENTITY_KEY, "")); 448642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.PASSWORD_KEY, ""), 449642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius actual.getFieldValue(WifiEnterpriseConfig.PASSWORD_KEY, "")); 450642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.CLIENT_CERT_KEY, ""), 451642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius actual.getFieldValue(WifiEnterpriseConfig.CLIENT_CERT_KEY, "")); 452642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.CA_CERT_KEY, ""), 453642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius actual.getFieldValue(WifiEnterpriseConfig.CA_CERT_KEY, "")); 454642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.SUBJECT_MATCH_KEY, ""), 455642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius actual.getFieldValue(WifiEnterpriseConfig.SUBJECT_MATCH_KEY, "")); 456642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.ENGINE_KEY, ""), 457642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius actual.getFieldValue(WifiEnterpriseConfig.ENGINE_KEY, "")); 458642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.ENGINE_ID_KEY, ""), 459642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius actual.getFieldValue(WifiEnterpriseConfig.ENGINE_ID_KEY, "")); 460642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.PRIVATE_KEY_ID_KEY, ""), 461642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius actual.getFieldValue(WifiEnterpriseConfig.PRIVATE_KEY_ID_KEY, "")); 462642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.ALTSUBJECT_MATCH_KEY, ""), 463642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius actual.getFieldValue(WifiEnterpriseConfig.ALTSUBJECT_MATCH_KEY, "")); 464642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.DOM_SUFFIX_MATCH_KEY, ""), 465642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius actual.getFieldValue(WifiEnterpriseConfig.DOM_SUFFIX_MATCH_KEY, "")); 466642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius assertEquals(expected.getFieldValue(WifiEnterpriseConfig.CA_PATH_KEY, ""), 467642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius actual.getFieldValue(WifiEnterpriseConfig.CA_PATH_KEY, "")); 468642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius assertEquals(expected.getEapMethod(), actual.getEapMethod()); 469642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius assertEquals(expected.getPhase2Method(), actual.getPhase2Method()); 470642b0bb43ed856bac0503d3169d67026de2c1b02Roshan Pius } 471f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius 472f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius /** 473f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * Asserts that the 2 lists of WifiConfigurations are equal. This compares all the elements 474f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * saved for backup/restore. 475f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius */ 476f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius public static void assertConfigurationsEqualForBackup( 477f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius List<WifiConfiguration> expected, List<WifiConfiguration> actual) { 478f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius assertEquals(expected.size(), actual.size()); 479f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius for (WifiConfiguration expectedConfiguration : expected) { 480f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius String expectedConfigKey = expectedConfiguration.configKey(); 481f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius boolean didCompare = false; 482f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius for (WifiConfiguration actualConfiguration : actual) { 483f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius String actualConfigKey = actualConfiguration.configKey(); 484f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius if (actualConfigKey.equals(expectedConfigKey)) { 485f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius assertConfigurationEqualForBackup( 486f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius expectedConfiguration, actualConfiguration); 487f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius didCompare = true; 488f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 489f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 490f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius assertTrue(didCompare); 49150eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius } 49250eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius } 49350eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius 49450eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius /** 49550eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius * Asserts that the 2 lists of WifiConfigurations are equal. This compares all the elements 49650eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius * that are saved into internal database by WifiConfigurationManager for network 49750eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius * additions/updates. 49850eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius */ 49950eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius public static void assertConfigurationsEqualForConfigManagerAddOrUpdate( 50050eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius List<WifiConfiguration> expected, List<WifiConfiguration> actual) { 50150eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertEquals(expected.size(), actual.size()); 50250eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius for (WifiConfiguration expectedConfiguration : expected) { 50350eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius String expectedConfigKey = expectedConfiguration.configKey(); 50450eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius boolean didCompare = false; 50550eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius for (WifiConfiguration actualConfiguration : actual) { 50650eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius String actualConfigKey = actualConfiguration.configKey(); 50750eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius if (actualConfigKey.equals(expectedConfigKey)) { 50850eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertConfigurationEqualForConfigManagerAddOrUpdate( 50950eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius expectedConfiguration, actualConfiguration); 51050eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius didCompare = true; 51150eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius } 51250eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius } 51350eed92fe9556fdd9934683690181fea77ce4eacRoshan Pius assertTrue(didCompare); 514f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 515f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 516f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius 517f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius /** 518f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * Asserts that the 2 lists of WifiConfigurations are equal. This compares all the elements 519f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius * saved for config store. 520f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius */ 521f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius public static void assertConfigurationsEqualForConfigStore( 522f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius List<WifiConfiguration> expected, List<WifiConfiguration> actual) { 523f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius assertEquals(expected.size(), actual.size()); 524f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius for (WifiConfiguration expectedConfiguration : expected) { 525f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius String expectedConfigKey = expectedConfiguration.configKey(); 526f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius boolean didCompare = false; 527f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius for (WifiConfiguration actualConfiguration : actual) { 528f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius String actualConfigKey = actualConfiguration.configKey(); 529f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius if (actualConfigKey.equals(expectedConfigKey)) { 530f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius assertConfigurationEqualForConfigStore( 531f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius expectedConfiguration, actualConfiguration); 532f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius didCompare = true; 533f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 534f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 535f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius assertTrue(didCompare); 536f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 537f918b154ddceb58c3d214d75ad02180d1907429aRoshan Pius } 538bcdabb1fa1894fcca610692ec94459fe623afa74Bartosz Fabianowski} 539