1120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang/* 2120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang * Copyright (C) 2010 The Android Open Source Project 3120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang * 4120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang * Licensed under the Apache License, Version 2.0 (the "License"); 5120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang * you may not use this file except in compliance with the License. 6120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang * You may obtain a copy of the License at 7120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang * 8120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang * http://www.apache.org/licenses/LICENSE-2.0 9120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang * 10120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang * Unless required by applicable law or agreed to in writing, software 11120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang * distributed under the License is distributed on an "AS IS" BASIS, 12120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang * See the License for the specific language governing permissions and 14120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang * limitations under the License. 15120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang */ 16120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang 17120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangpackage com.android.connectivitymanagertest.unit; 18120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang 19120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangimport android.content.Context; 20120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangimport android.net.wifi.WifiManager; 21120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangimport android.net.wifi.WifiConfiguration; 22120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangimport android.net.wifi.WifiConfiguration.KeyMgmt; 23120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang 24120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangimport android.test.suitebuilder.annotation.LargeTest; 25120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangimport android.test.AndroidTestCase; 26120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang 27120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangimport android.util.Log; 28120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang 29120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang/** 30120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang * Test Wifi soft AP configuration 31120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang */ 32120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangpublic class WifiSoftAPTest extends AndroidTestCase { 33120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang 34120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang private WifiManager mWifiManager; 35120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang private WifiConfiguration mWifiConfig = null; 36120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang private final String TAG = "WifiSoftAPTest"; 37120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang private final int DURATION = 10000; 38120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang 39120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang @Override 40120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang protected void setUp() throws Exception { 41120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang super.setUp(); 42120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang mWifiManager = (WifiManager) getContext().getSystemService(Context.WIFI_SERVICE); 43120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang assertNotNull(mWifiManager); 44120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang assertTrue(mWifiManager.setWifiApEnabled(null, true)); 45120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang mWifiConfig = mWifiManager.getWifiApConfiguration(); 46120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang if (mWifiConfig != null) { 47120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang Log.v(TAG, "mWifiConfig is " + mWifiConfig.toString()); 48120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang } else { 49120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang Log.v(TAG, "mWifiConfig is null."); 50120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang } 51120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang } 52120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang 53120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang @Override 54120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang protected void tearDown() throws Exception { 55120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang Log.v(TAG, "turn off wifi tethering"); 56120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang mWifiManager.setWifiApEnabled(null, false); 57120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang super.tearDown(); 58120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang } 59120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang 60120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang // Test case 1: Test the soft AP SSID with letters 61120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang @LargeTest 62120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang public void testApSsidWithAlphabet() { 63120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang WifiConfiguration config = new WifiConfiguration(); 64120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang config.SSID = "abcdefghijklmnopqrstuvwxyz"; 65120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang config.allowedKeyManagement.set(KeyMgmt.NONE); 66120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang mWifiConfig = config; 67120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang assertTrue(mWifiManager.setWifiApEnabled(mWifiConfig, true)); 68120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang try { 69120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang Thread.sleep(DURATION); 70120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang } catch (InterruptedException e) { 71120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang Log.v(TAG, "exception " + e.getStackTrace()); 72120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang assertFalse(true); 73120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang } 74120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang assertNotNull(mWifiManager.getWifiApConfiguration()); 75120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang assertEquals("wifi AP state is not enabled", WifiManager.WIFI_AP_STATE_ENABLED, 76120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang mWifiManager.getWifiApState()); 77120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang } 78120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang} 79