• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2016 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.server.wifi;
18 
19 import android.net.wifi.WifiConfiguration;
20 import android.net.wifi.WifiEnterpriseConfig;
21 
22 /**
23  * Helper for creating and populating WifiConfigurations in unit tests.
24  */
25 public class WifiConfigurationTestUtil {
26     /**
27      * These values are used to describe AP's security setting. One AP can support multiple of them,
28      * only if there is no conflict.
29      */
30     public static final int SECURITY_NONE = 0;
31     public static final int SECURITY_WEP =  1 << 0;
32     public static final int SECURITY_PSK =  1 << 1;
33     public static final int SECURITY_EAP =  1 << 2;
34 
35     /**
36      * Construct a {@link android.net.wifi.WifiConfiguration}.
37      * @param networkId the configuration's networkId
38      * @param uid the configuration's creator uid
39      * @param ssid the configuration's ssid
40      * @param shared whether the configuration is shared with other users on the device
41      * @param enabled whether the configuration is enabled
42      * @param fqdn the configuration's FQDN (Hotspot 2.0 only)
43      * @param providerFriendlyName the configuration's provider's friendly name (Hotspot 2.0 only)
44      * @return the constructed {@link android.net.wifi.WifiConfiguration}
45      */
generateWifiConfig(int networkId, int uid, String ssid, boolean shared, boolean enabled, String fqdn, String providerFriendlyName)46     public static WifiConfiguration generateWifiConfig(int networkId, int uid, String ssid,
47             boolean shared, boolean enabled, String fqdn, String providerFriendlyName) {
48         final WifiConfiguration config = new WifiConfiguration();
49         config.SSID = ssid;
50         config.networkId = networkId;
51         config.creatorUid = uid;
52         config.shared = shared;
53         config.status = enabled ? WifiConfiguration.Status.ENABLED
54                 : WifiConfiguration.Status.DISABLED;
55         if (fqdn != null) {
56             config.FQDN = fqdn;
57             config.providerFriendlyName = providerFriendlyName;
58             config.enterpriseConfig.setEapMethod(WifiEnterpriseConfig.Eap.SIM);
59         }
60         return config;
61     }
62 
63     /**
64      * Construct a {@link android.net.wifi.WifiConfiguration}.
65      * @param networkId the configuration's networkId
66      * @param uid the configuration's creator uid
67      * @param ssid the configuration's ssid
68      * @param shared whether the configuration is shared with other users on the device
69      * @param enabled whether the configuration is enabled
70      * @param fqdn the configuration's FQDN (Hotspot 2.0 only)
71      * @param providerFriendlyName the configuration's provider's friendly name (Hotspot 2.0 only)
72      * @param security the configuration's security type
73      * @return the constructed {@link android.net.wifi.WifiConfiguration}
74      */
generateWifiConfig(int networkId, int uid, String ssid, boolean shared, boolean enabled, String fqdn, String providerFriendlyName, int security)75     public static WifiConfiguration generateWifiConfig(int networkId, int uid, String ssid,
76             boolean shared, boolean enabled, String fqdn, String providerFriendlyName,
77             int security) {
78         WifiConfiguration config = generateWifiConfig(networkId, uid, ssid, shared, enabled, fqdn,
79                 providerFriendlyName);
80 
81         if (security == SECURITY_NONE) {
82             config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
83         } else {
84             if (((security & SECURITY_WEP) != 0) || ((security & SECURITY_PSK) != 0)) {
85                 config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
86             }
87 
88             if ((security & SECURITY_EAP) != 0) {
89                 config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
90                 config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.IEEE8021X);
91             }
92         }
93         return config;
94     }
95 }
96