summaryrefslogtreecommitdiffstats
path: root/core/tests/ConnectivityManagerTest
diff options
context:
space:
mode:
authorIrfan Sheriff <isheriff@google.com>2010-10-28 14:41:39 -0700
committerIrfan Sheriff <isheriff@google.com>2010-11-02 16:08:35 -0700
commit1406bcb75150e8386b4d858f27089cc1359e7f14 (patch)
tree56c913612bea3ddecd86080ad0da3666e1416b1f /core/tests/ConnectivityManagerTest
parent3521e2202d76141c1c5b6db75bcc4d3cf32b4217 (diff)
downloadframeworks_base-1406bcb75150e8386b4d858f27089cc1359e7f14.zip
frameworks_base-1406bcb75150e8386b4d858f27089cc1359e7f14.tar.gz
frameworks_base-1406bcb75150e8386b4d858f27089cc1359e7f14.tar.bz2
Use AsynChannel for synchronous API
also cleaned up some unnecessary synchronous commands from state machine, and fixed an issue with a synchronous WPS command Change-Id: I55bf4379d9810e11f2ba2e03e2e703b132d1488f
Diffstat (limited to 'core/tests/ConnectivityManagerTest')
-rw-r--r--core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerUnitTestRunner.java2
-rw-r--r--core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/unit/WifiClientTest.java186
2 files changed, 188 insertions, 0 deletions
diff --git a/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerUnitTestRunner.java b/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerUnitTestRunner.java
index 6adfc74..3a78f26 100644
--- a/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerUnitTestRunner.java
+++ b/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerUnitTestRunner.java
@@ -20,6 +20,7 @@ import android.os.Bundle;
import android.test.InstrumentationTestRunner;
import android.test.InstrumentationTestSuite;
import android.util.Log;
+import com.android.connectivitymanagertest.unit.WifiClientTest;
import com.android.connectivitymanagertest.unit.WifiSoftAPTest;
import junit.framework.TestSuite;
@@ -35,6 +36,7 @@ public class ConnectivityManagerUnitTestRunner extends InstrumentationTestRunner
@Override
public TestSuite getAllTests() {
TestSuite suite = new InstrumentationTestSuite(this);
+ suite.addTestSuite(WifiClientTest.class);
suite.addTestSuite(WifiSoftAPTest.class);
return suite;
}
diff --git a/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/unit/WifiClientTest.java b/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/unit/WifiClientTest.java
new file mode 100644
index 0000000..6717bda
--- /dev/null
+++ b/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/unit/WifiClientTest.java
@@ -0,0 +1,186 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.connectivitymanagertest.unit;
+
+import android.content.BroadcastReceiver;
+import android.content.Intent;
+import android.content.Context;
+import android.app.Instrumentation;
+import android.os.Handler;
+import android.os.Message;
+import android.net.wifi.WifiManager;
+import android.net.wifi.WifiConfiguration;
+import android.net.wifi.WifiConfiguration.KeyMgmt;
+import android.net.wifi.WifiConfiguration.Status;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.test.AndroidTestCase;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import android.util.Log;
+
+/**
+ * Test wifi client
+ */
+public class WifiClientTest extends AndroidTestCase {
+
+ private WifiManager mWifiManager;
+ private final String TAG = "WifiClientTest";
+
+ //10s delay for turning on wifi
+ private static final int DELAY = 10000;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ mWifiManager = (WifiManager) getContext().getSystemService(Context.WIFI_SERVICE);
+ mWifiManager.setWifiEnabled(true);
+ assertNotNull(mWifiManager);
+ }
+
+ private void sleepAfterWifiEnable() {
+ try {
+ Thread.sleep(DELAY);
+ } catch (Exception e) {
+ fail("Sleep timeout " + e);
+ }
+ }
+
+ // Test case 1: add/remove a open network
+ @LargeTest
+ public void testAddRemoveNetwork() {
+ WifiConfiguration config = new WifiConfiguration();
+ config.SSID = "\"TestSSID1\"";
+ config.allowedKeyManagement.set(KeyMgmt.NONE);
+
+ //add
+ int netId = mWifiManager.addNetwork(config);
+ assertTrue(netId != -1);
+
+ //check config list
+ List<WifiConfiguration> configList = mWifiManager.getConfiguredNetworks();
+ boolean found = false;
+ for (WifiConfiguration c : configList) {
+ if (c.networkId == netId) {
+ found = true;
+ }
+ }
+ assertTrue(found);
+
+ //remove
+ boolean ret = mWifiManager.removeNetwork(netId);
+ assertTrue(ret);
+
+ //check config list
+ configList = mWifiManager.getConfiguredNetworks();
+ found = false;
+ for (WifiConfiguration c : configList) {
+ if (c.networkId == netId) {
+ found = true;
+ }
+ }
+
+ assertFalse(found);
+ }
+
+ // Test case 2: enable/disable a open network
+ @LargeTest
+ public void testEnableDisableNetwork() {
+ WifiConfiguration config = new WifiConfiguration();
+ config.SSID = "\"TestSSID2\"";
+ config.allowedKeyManagement.set(KeyMgmt.NONE);
+
+ //add
+ int netId = mWifiManager.addNetwork(config);
+ assertTrue(netId != -1);
+
+ //enable network and disable others
+ boolean ret = mWifiManager.enableNetwork(netId, true);
+ assertTrue(ret);
+
+ //check config list
+ List<WifiConfiguration> configList = mWifiManager.getConfiguredNetworks();
+ for (WifiConfiguration c : configList) {
+ if (c.networkId == netId) {
+ assertTrue(c.status == Status.ENABLED);
+ } else {
+ assertFalse(c.status == Status.ENABLED);
+ }
+ }
+
+ //disable network
+ ret = mWifiManager.disableNetwork(netId);
+ assertTrue(ret);
+
+ //check config list
+ configList = mWifiManager.getConfiguredNetworks();
+ for (WifiConfiguration c : configList) {
+ if (c.networkId == netId) {
+ assertTrue(c.status == Status.DISABLED);
+ }
+ }
+ }
+
+ // Test case 3: ping supplicant
+ @LargeTest
+ public void testPingSupplicant() {
+ assertTrue(mWifiManager.pingSupplicant());
+ mWifiManager.setWifiEnabled(false);
+ sleepAfterWifiEnable();
+
+ assertFalse(mWifiManager.pingSupplicant());
+ mWifiManager.setWifiEnabled(true);
+ sleepAfterWifiEnable();
+ }
+
+ // Test case 4: save config
+ @LargeTest
+ public void testSaveConfig() {
+ WifiConfiguration config = new WifiConfiguration();
+ config.SSID = "\"TestSSID3\"";
+ config.allowedKeyManagement.set(KeyMgmt.NONE);
+
+ //add
+ int netId = mWifiManager.addNetwork(config);
+ assertTrue(netId != -1);
+
+ mWifiManager.saveConfiguration();
+
+ //restart wifi
+ mWifiManager.setWifiEnabled(false);
+ mWifiManager.setWifiEnabled(true);
+
+ sleepAfterWifiEnable();
+
+ //check config list
+ List<WifiConfiguration> configList = mWifiManager.getConfiguredNetworks();
+ boolean found = false;
+ for (WifiConfiguration c : configList) {
+ if (c.SSID.equals("TestSSID3")) {
+ found = true;
+ }
+ }
+ assertTrue(found);
+
+ //restore config
+ boolean ret = mWifiManager.removeNetwork(netId);
+ assertTrue(ret);
+ mWifiManager.saveConfiguration();
+ }
+}