Home | History | Annotate | Download | only in wifi
      1 /*
      2  * Copyright 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.managedprovisioning.task.wifi;
     18 
     19 import static org.junit.Assert.assertEquals;
     20 import static org.junit.Assert.assertTrue;
     21 
     22 import android.net.IpConfiguration;
     23 import android.net.wifi.WifiConfiguration;
     24 import android.support.test.filters.SmallTest;
     25 
     26 import com.android.managedprovisioning.model.WifiInfo;
     27 
     28 import org.junit.Test;
     29 
     30 /**
     31  * Unit test for {@link WifiConfigurationProvider}.
     32  */
     33 @SmallTest
     34 public class WifiConfigurationProviderTest {
     35     private static final String TEST_SSID = "test_ssid";
     36     private static final boolean TEST_HIDDEN = true;
     37     private static final String TEST_PAC_URL = "test.pac.url";
     38     private static final String TEST_PROXY_BYPASS_HOST = "testProxyBypassHost";
     39     private static final String TEST_PROXY_HOST = "TestProxyHost";
     40     private static final int TEST_PROXY_PORT = 1234;
     41     private static final String TEST_PASSWORD = "testPassword";
     42     private static final String TEST_PASSWORD_WEP = "0123456789"; // length needs to be 10
     43 
     44     private static final WifiInfo.Builder BASE_BUILDER = new WifiInfo.Builder()
     45             .setSsid(TEST_SSID)
     46             .setHidden(TEST_HIDDEN);
     47 
     48     private static final WifiInfo WIFI_INFO_WPA = BASE_BUILDER
     49             .setSecurityType(WifiConfigurationProvider.WPA)
     50             .setPassword(TEST_PASSWORD)
     51             .build();
     52 
     53     private static final WifiInfo WIFI_INFO_WEP = BASE_BUILDER
     54             .setSecurityType(WifiConfigurationProvider.WEP)
     55             .setPassword(TEST_PASSWORD)
     56             .build();
     57 
     58     private static final WifiInfo WIFI_INFO_WEP_2 = BASE_BUILDER
     59             .setSecurityType(WifiConfigurationProvider.WEP)
     60             .setPassword(TEST_PASSWORD_WEP)
     61             .build();
     62 
     63     private static final WifiInfo WIFI_INFO_NONE = BASE_BUILDER
     64             .setSecurityType(WifiConfigurationProvider.NONE)
     65             .build();
     66 
     67     private static final WifiInfo WIFI_INFO_NULL = BASE_BUILDER
     68             .build();
     69 
     70     private static final WifiInfo WIFI_INFO_PAC = BASE_BUILDER
     71             .setPacUrl(TEST_PAC_URL)
     72             .build();
     73 
     74     private static final WifiInfo WIFI_INFO_PROXY = BASE_BUILDER
     75             .setProxyBypassHosts(TEST_PROXY_BYPASS_HOST)
     76             .setProxyHost(TEST_PROXY_HOST)
     77             .setProxyPort(TEST_PROXY_PORT)
     78             .build();
     79 
     80 
     81     private final WifiConfigurationProvider mProvider = new WifiConfigurationProvider();
     82 
     83     @Test
     84     public void testWpa() {
     85         WifiConfiguration wifiConf = mProvider.generateWifiConfiguration(WIFI_INFO_WPA);
     86 
     87         assertBase(wifiConf);
     88         assertTrue(wifiConf.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WPA_PSK));
     89         assertTrue(wifiConf.allowedProtocols.get(WifiConfiguration.Protocol.WPA));
     90         assertEquals("\"" + TEST_PASSWORD + "\"", wifiConf.preSharedKey);
     91         assertEquals(IpConfiguration.ProxySettings.UNASSIGNED, wifiConf.getProxySettings());
     92     }
     93 
     94     @Test
     95     public void testWep() {
     96         WifiConfiguration wifiConf = mProvider.generateWifiConfiguration(WIFI_INFO_WEP);
     97 
     98         assertBase(wifiConf);
     99         assertTrue(wifiConf.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.NONE));
    100         assertEquals("\"" + TEST_PASSWORD + "\"", wifiConf.wepKeys[0]);
    101         assertEquals(IpConfiguration.ProxySettings.UNASSIGNED, wifiConf.getProxySettings());
    102     }
    103 
    104     @Test
    105     public void testWep2() {
    106         WifiConfiguration wifiConf = mProvider.generateWifiConfiguration(WIFI_INFO_WEP_2);
    107 
    108         assertBase(wifiConf);
    109         assertTrue(wifiConf.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.NONE));
    110         assertEquals(TEST_PASSWORD_WEP, wifiConf.wepKeys[0]);
    111         assertEquals(IpConfiguration.ProxySettings.UNASSIGNED, wifiConf.getProxySettings());
    112     }
    113 
    114     @Test
    115     public void testNone() {
    116         WifiConfiguration wifiConf = mProvider.generateWifiConfiguration(WIFI_INFO_NONE);
    117 
    118         assertBase(wifiConf);
    119         assertTrue(wifiConf.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.NONE));
    120         assertTrue(wifiConf.allowedAuthAlgorithms.get(WifiConfiguration.AuthAlgorithm.OPEN));
    121         assertEquals(IpConfiguration.ProxySettings.UNASSIGNED, wifiConf.getProxySettings());
    122     }
    123 
    124     @Test
    125     public void testNull() {
    126         WifiConfiguration wifiConf = mProvider.generateWifiConfiguration(WIFI_INFO_NULL);
    127 
    128         assertBase(wifiConf);
    129         assertTrue(wifiConf.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.NONE));
    130         assertTrue(wifiConf.allowedAuthAlgorithms.get(WifiConfiguration.AuthAlgorithm.OPEN));
    131         assertEquals(IpConfiguration.ProxySettings.UNASSIGNED, wifiConf.getProxySettings());
    132     }
    133 
    134     @Test
    135     public void testPac() {
    136         WifiConfiguration wifiConf = mProvider.generateWifiConfiguration(WIFI_INFO_PAC);
    137 
    138         assertBase(wifiConf);
    139         assertEquals(IpConfiguration.ProxySettings.PAC, wifiConf.getProxySettings());
    140     }
    141 
    142     @Test
    143     public void testStaticProxy() {
    144         WifiConfiguration wifiConf = mProvider.generateWifiConfiguration(WIFI_INFO_PROXY);
    145 
    146         assertBase(wifiConf);
    147         assertEquals(IpConfiguration.ProxySettings.STATIC, wifiConf.getProxySettings());
    148     }
    149 
    150     private void assertBase(WifiConfiguration wifiConf) {
    151         assertEquals(TEST_SSID, wifiConf.SSID);
    152         assertEquals(TEST_HIDDEN, wifiConf.hiddenSSID);
    153         assertEquals(WifiConfiguration.Status.ENABLED, wifiConf.status);
    154         assertEquals(WifiConfiguration.USER_APPROVED, wifiConf.userApproved);
    155     }
    156 }
    157