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.BroadcastReceiver; 20120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangimport android.content.Intent; 21120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangimport android.content.Context; 22120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangimport android.app.Instrumentation; 23120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangimport android.os.Handler; 24120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangimport android.os.Message; 25120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangimport android.net.ConnectivityManager; 26120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangimport android.net.wifi.WifiManager; 27120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangimport android.net.wifi.WifiConfiguration; 28120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangimport android.net.wifi.WifiConfiguration.KeyMgmt; 29120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang 30120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangimport android.test.suitebuilder.annotation.LargeTest; 31120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangimport android.test.AndroidTestCase; 32120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang 33120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangimport java.util.ArrayList; 34120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang 35120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangimport android.util.Log; 36120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang 37120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang/** 38120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang * Test Wifi soft AP configuration 39120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang */ 40120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wangpublic class WifiSoftAPTest extends AndroidTestCase { 41120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang 42120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang private WifiManager mWifiManager; 43120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang private WifiConfiguration mWifiConfig = null; 44120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang private final String TAG = "WifiSoftAPTest"; 45120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang private final int DURATION = 10000; 46120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang 47120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang @Override 48120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang protected void setUp() throws Exception { 49120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang super.setUp(); 50120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang mWifiManager = (WifiManager) getContext().getSystemService(Context.WIFI_SERVICE); 51120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang assertNotNull(mWifiManager); 52120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang assertTrue(mWifiManager.setWifiApEnabled(null, true)); 53120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang mWifiConfig = mWifiManager.getWifiApConfiguration(); 54120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang if (mWifiConfig != null) { 55120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang Log.v(TAG, "mWifiConfig is " + mWifiConfig.toString()); 56120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang } else { 57120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang Log.v(TAG, "mWifiConfig is null."); 58120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang } 59120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang } 60120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang 61120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang @Override 62120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang protected void tearDown() throws Exception { 63120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang Log.v(TAG, "turn off wifi tethering"); 64120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang mWifiManager.setWifiApEnabled(null, false); 65120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang super.tearDown(); 66120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang } 67120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang 68120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang // Test case 1: Test the soft AP SSID with letters 69120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang @LargeTest 70120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang public void testApSsidWithAlphabet() { 71120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang WifiConfiguration config = new WifiConfiguration(); 72120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang config.SSID = "abcdefghijklmnopqrstuvwxyz"; 73120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang config.allowedKeyManagement.set(KeyMgmt.NONE); 74120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang mWifiConfig = config; 75120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang assertTrue(mWifiManager.setWifiApEnabled(mWifiConfig, true)); 76120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang try { 77120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang Thread.sleep(DURATION); 78120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang } catch (InterruptedException e) { 79120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang Log.v(TAG, "exception " + e.getStackTrace()); 80120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang assertFalse(true); 81120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang } 82120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang assertNotNull(mWifiManager.getWifiApConfiguration()); 83120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang assertEquals("wifi AP state is not enabled", WifiManager.WIFI_AP_STATE_ENABLED, 84120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang mWifiManager.getWifiApState()); 85120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang } 86120a58fb80ec9ba5b62e4b7453ea45703d1ce58aXia Wang} 87