summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorXia Wang <xiaw@google.com>2010-03-23 12:17:06 -0700
committerXia Wang <xiaw@google.com>2010-03-23 14:19:07 -0700
commitfc2dbd04005c32360eead803e29df3cc62209cd8 (patch)
tree1dcbec4a7c2524633c9ba90826800839f710c297 /tests
parent0ee0a2ea57197cb2f03905454098d9a7a309f77b (diff)
downloadframeworks_base-fc2dbd04005c32360eead803e29df3cc62209cd8.zip
frameworks_base-fc2dbd04005c32360eead803e29df3cc62209cd8.tar.gz
frameworks_base-fc2dbd04005c32360eead803e29df3cc62209cd8.tar.bz2
* Move connectivity manager test closer to source.
* Add license header to java files * Remove google related information from the test Change-Id: I2e57960f9ac963cdf3591385e21ed68832f74bd0
Diffstat (limited to 'tests')
-rw-r--r--tests/ConnectivityManagerTest/Android.mk30
-rw-r--r--tests/ConnectivityManagerTest/AndroidManifest.xml50
-rw-r--r--tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerTestActivity.java329
-rw-r--r--tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerTestRunner.java43
-rw-r--r--tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/NetworkState.java177
-rw-r--r--tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/functional/ConnectivityManagerMobileTest.java135
6 files changed, 0 insertions, 764 deletions
diff --git a/tests/ConnectivityManagerTest/Android.mk b/tests/ConnectivityManagerTest/Android.mk
deleted file mode 100644
index bd773d0..0000000
--- a/tests/ConnectivityManagerTest/Android.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 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.
-
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-# We only want this apk build for tests.
-LOCAL_MODULE_TAGS := tests
-
-LOCAL_JAVA_LIBRARIES := android.test.runner
-
-# Include all test java files.
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_PACKAGE_NAME := ConnectivityManagerTest
-
-#LOCAL_INSTRUMENTATION_FOR := connectivitymanagertest
-
-include $(BUILD_PACKAGE)
diff --git a/tests/ConnectivityManagerTest/AndroidManifest.xml b/tests/ConnectivityManagerTest/AndroidManifest.xml
deleted file mode 100644
index 76b58e1..0000000
--- a/tests/ConnectivityManagerTest/AndroidManifest.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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 name must be unique so suffix with "tests" so package loader doesn't ignore us -->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.connectivitymanagertest">
-
- <!-- We add an application tag here just so that we can indicate that
- this package needs to link against the android.test library,
- which is needed when building test cases. -->
- <application>
- <uses-library android:name="android.test.runner" />
- <activity android:name="ConnectivityManagerTestActivity"
- android:label="CMTest">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.TEST" />
- </intent-filter>
- </activity>
- </application>
- <!--
- This declares that this app uses the instrumentation test runner targeting
- the package of browserpowertest. To run the tests use the command:
- "adb shell am instrument -w com.android.connectivitymanagertest/.ConnectivityManagerTestRunner"
- -->
- <instrumentation android:name=".ConnectivityManagerTestRunner"
- android:targetPackage="com.android.connectivitymanagertest"
- android:label="Test runner for Connectivity Manager Tests"
- />
-
- <uses-permission android:name="android.permission.INTERNET" />
- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
- <uses-permission android:name="android.permission.WRITE_SETTINGS" />
-
-</manifest>
diff --git a/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerTestActivity.java b/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerTestActivity.java
deleted file mode 100644
index 1dffa02..0000000
--- a/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerTestActivity.java
+++ /dev/null
@@ -1,329 +0,0 @@
-package com.android.connectivitymanagertest;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.BroadcastReceiver;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.os.Bundle;
-import android.provider.Settings;
-import android.util.Log;
-import java.util.List;
-import android.widget.LinearLayout;
-import android.net.ConnectivityManager;
-import android.net.NetworkInfo;
-import android.net.NetworkInfo.State;
-
-import android.net.wifi.WifiConfiguration;
-import android.net.wifi.WifiManager;
-import android.net.wifi.ScanResult;
-import android.net.wifi.WifiConfiguration.KeyMgmt;
-
-
-/**
- * An activity registered with connectivity manager broadcast
- * provides network connectivity information and
- * can be used to set device states: Cellular, Wifi, Airplane mode.
- */
-public class ConnectivityManagerTestActivity extends Activity {
-
- public static final String LOG_TAG = "ConnectivityManagerTestActivity";
- public static final int WAIT_FOR_SCAN_RESULT = 5 * 1000; //5 seconds
- public static final int WIFI_SCAN_TIMEOUT = 20 * 1000;
- public ConnectivityReceiver mConnectivityReceiver = null;
- public WifiReceiver mWifiReceiver = null;
- /*
- * Track network connectivity information
- */
- public State mState;
- public NetworkInfo mNetworkInfo;
- public NetworkInfo mOtherNetworkInfo;
- public boolean mIsFailOver;
- public String mReason;
- public boolean mScanResultIsAvailable = false;
- public ConnectivityManager mCM;
-
- /*
- * Control Wifi States
- */
- public WifiManager mWifiManager;
-
- /*
- * Verify connectivity state
- */
- public static final int NUM_NETWORK_TYPES = ConnectivityManager.MAX_NETWORK_TYPE;
- NetworkState[] connectivityState = new NetworkState[NUM_NETWORK_TYPES];
-
- /**
- * A wrapper of a broadcast receiver which provides network connectivity information
- * for all kinds of network: wifi, mobile, etc.
- */
- private class ConnectivityReceiver extends BroadcastReceiver {
- @Override
- public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
- if (!action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
- Log.v("ConnectivityReceiver", "onReceive() called with " + intent);
- return;
- }
-
- boolean noConnectivity =
- intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
-
- if (noConnectivity) {
- mState = State.DISCONNECTED;
- } else {
- mState = State.CONNECTED;
- }
-
- mNetworkInfo = (NetworkInfo)
- intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
-
- mOtherNetworkInfo = (NetworkInfo)
- intent.getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);
-
- mReason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON);
- mIsFailOver = intent.getBooleanExtra(ConnectivityManager.EXTRA_IS_FAILOVER, false);
- recordNetworkState(mNetworkInfo.getType(), mNetworkInfo.getState());
- if (mOtherNetworkInfo != null) {
- recordNetworkState(mOtherNetworkInfo.getType(), mOtherNetworkInfo.getState());
- }
- }
- }
-
- private class WifiReceiver extends BroadcastReceiver {
- @Override
- public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
- if (!action.equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) {
- Log.v(LOG_TAG, "onReceive() is calleld with " + intent);
- return;
- }
- notifyScanResult();
- }
- }
-
- public ConnectivityManagerTestActivity() {
- mState = State.UNKNOWN;
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- Log.v(LOG_TAG, "onCreate, inst=" + Integer.toHexString(hashCode()));
-
- // Create a simple layout
- LinearLayout contentView = new LinearLayout(this);
- contentView.setOrientation(LinearLayout.VERTICAL);
- setContentView(contentView);
- setTitle("ConnectivityManagerTestActivity");
-
- mConnectivityReceiver = new ConnectivityReceiver();
- // register a connectivity receiver for CONNECTIVITY_ACTION;
- registerReceiver(mConnectivityReceiver,
- new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
-
- mWifiReceiver = new WifiReceiver();
- registerReceiver(mWifiReceiver,
- new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
- // Get an instance of ConnectivityManager
- mCM = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
- // Get an instance of WifiManager
- mWifiManager =(WifiManager)getSystemService(Context.WIFI_SERVICE);
- initializeNetworkStates();
-
- if (mWifiManager.isWifiEnabled()) {
- Log.v(LOG_TAG, "Clear Wifi before we start the test.");
- clearWifi();
- }
- }
-
- // for each network type, initialize network states to UNKNOWN, and no verification flag is set
- public void initializeNetworkStates() {
- for (int networkType = NUM_NETWORK_TYPES - 1; networkType >=0; networkType--) {
- connectivityState[networkType] = new NetworkState();
- Log.v(LOG_TAG, "Initialize network state for " + networkType + ": " +
- connectivityState[networkType].toString());
- }
- }
-
- // deposit a network state
- public void recordNetworkState(int networkType, State networkState) {
- Log.v(LOG_TAG, "record network state for network " + networkType +
- " state is " + networkState);
- connectivityState[networkType].recordState(networkState);
- }
-
- // set the state transition criteria
- public void setStateTransitionCriteria(int networkType, State initState,
- int transitionDir, State targetState) {
- connectivityState[networkType].setStateTransitionCriteria(
- initState, transitionDir, targetState);
- }
-
- // Validate the states recorded
- public boolean validateNetworkStates(int networkType) {
- Log.v(LOG_TAG, "validate network state for " + networkType + ": ");
- return connectivityState[networkType].validateStateTransition();
- }
-
- // return result from network state validation
- public String getTransitionFailureReason(int networkType) {
- Log.v(LOG_TAG, "get network state transition failure reason for " + networkType + ": " +
- connectivityState[networkType].toString());
- return connectivityState[networkType].getReason();
- }
-
- private void notifyScanResult() {
- synchronized (this) {
- Log.v(LOG_TAG, "notify that scan results are available");
- this.notify();
- }
- }
-
- // Return true if device is currently connected to mobile network
- public boolean isConnectedToMobile() {
- return (mNetworkInfo.getType() == ConnectivityManager.TYPE_MOBILE);
- }
-
- // Return true if device is currently connected to Wifi
- public boolean isConnectedToWifi() {
- return (mNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI);
- }
-
- public boolean enableWifi() {
- return mWifiManager.setWifiEnabled(true);
- }
-
- /**
- * Associate the device to given SSID
- * If the device is already associated with a WiFi, disconnect and forget it,
- * We don't verify whether the connection is successful or not, leave this to the test
- */
- public boolean connectToWifi(String knownSSID) {
- //If Wifi is not enabled, enable it
- if (!mWifiManager.isWifiEnabled()) {
- Log.v(LOG_TAG, "Wifi is not enabled, enable it");
- mWifiManager.setWifiEnabled(true);
- }
-
- List<ScanResult> netList = mWifiManager.getScanResults();
- if (netList == null) {
- // if no scan results are available, start active scan
- mWifiManager.startScanActive();
- mScanResultIsAvailable = false;
- long startTime = System.currentTimeMillis();
- while (!mScanResultIsAvailable) {
- if ((System.currentTimeMillis() - startTime) > WIFI_SCAN_TIMEOUT) {
- return false;
- }
- // wait for the scan results to be available
- synchronized (this) {
- // wait for the scan result to be available
- try {
- this.wait(WAIT_FOR_SCAN_RESULT);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- if ((mWifiManager.getScanResults() == null) ||
- (mWifiManager.getScanResults().size() <= 0)) {
- continue;
- }
- mScanResultIsAvailable = true;
- }
- }
- }
-
- netList = mWifiManager.getScanResults();
- for (int i = 0; i < netList.size(); i++) {
- ScanResult sr= netList.get(i);
- if (sr.SSID.equals(knownSSID)) {
- Log.v(LOG_TAG, "found " + knownSSID + " in the scan result list");
- WifiConfiguration config = new WifiConfiguration();
- config.SSID = sr.SSID;
- config.allowedKeyManagement.set(KeyMgmt.NONE);
- int networkId = mWifiManager.addNetwork(config);
- mWifiManager.saveConfiguration();
- // Connect to network by disabling others.
- mWifiManager.enableNetwork(networkId, true);
- mWifiManager.reconnect();
- break;
- }
- }
-
- List<WifiConfiguration> netConfList = mWifiManager.getConfiguredNetworks();
- if (netConfList.size() <= 0) {
- Log.v(LOG_TAG, knownSSID + " is not available");
- return false;
- }
- return true;
- }
-
- /**
- * Disable Wifi
- * @return true if Wifi is disabled successfully
- */
- public boolean disableWiFi() {
- return mWifiManager.setWifiEnabled(false);
- }
-
- /**
- * Disconnect from the current Wifi and clear the configuration list
- */
- public boolean clearWifi() {
- if (mWifiManager.isWifiEnabled()) {
- //remove the current network Id
- int curNetworkId = mWifiManager.getConnectionInfo().getNetworkId();
- mWifiManager.removeNetwork(curNetworkId);
- mWifiManager.saveConfiguration();
-
- // remove other saved networks
- List<WifiConfiguration> netConfList = mWifiManager.getConfiguredNetworks();
- if (netConfList != null) {
- Log.v(LOG_TAG, "remove configured network ids");
- for (int i = 0; i < netConfList.size(); i++) {
- WifiConfiguration conf = new WifiConfiguration();
- conf = netConfList.get(i);
- mWifiManager.removeNetwork(conf.networkId);
- }
- }
- mWifiManager.saveConfiguration();
- // disable Wifi
- if (!mWifiManager.setWifiEnabled(false)) {
- return false;
- }
- // wait for the actions to be completed
- try {
- Thread.sleep(5*1000);
- } catch (InterruptedException e) {}
- }
- return true;
- }
-
- /**
- * Set airplane mode
- */
- public void setAirplaneMode(Context context, boolean enableAM) {
- //set the airplane mode
- Settings.System.putInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON,
- enableAM ? 1 : 0);
- // Post the intent
- Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
- intent.putExtra("state", enableAM);
- context.sendBroadcast(intent);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
-
- //Unregister receiver
- if (mConnectivityReceiver != null) {
- unregisterReceiver(mConnectivityReceiver);
- }
- if (mWifiReceiver != null) {
- unregisterReceiver(mWifiReceiver);
- }
- Log.v(LOG_TAG, "onDestroy, inst=" + Integer.toHexString(hashCode()));
- }
-}
diff --git a/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerTestRunner.java b/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerTestRunner.java
deleted file mode 100644
index 3affa65..0000000
--- a/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerTestRunner.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.android.connectivitymanagertest;
-
-import android.os.Bundle;
-import android.test.InstrumentationTestRunner;
-import android.test.InstrumentationTestSuite;
-import android.util.Log;
-import com.android.connectivitymanagertest.functional.ConnectivityManagerMobileTest;
-
-import junit.framework.TestSuite;
-
-/**
- * Instrumentation Test Runner for all connectivity manager tests.
- *
- * To run the connectivity manager tests:
- *
- * adb shell am instrument \
- * -w com.android.connectivitymanagertest/.ConnectivityManagerTestRunner
- */
-
-public class ConnectivityManagerTestRunner extends InstrumentationTestRunner {
- @Override
- public TestSuite getAllTests() {
- TestSuite suite = new InstrumentationTestSuite(this);
- suite.addTestSuite(ConnectivityManagerMobileTest.class);
- return suite;
- }
-
- @Override
- public ClassLoader getLoader() {
- return ConnectivityManagerTestRunner.class.getClassLoader();
- }
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- String testSSID = (String) icicle.get("ssid");
- if (testSSID != null) {
- TEST_SSID = testSSID;
- }
- }
-
- public String TEST_SSID = "GoogleGuest";
-}
diff --git a/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/NetworkState.java b/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/NetworkState.java
deleted file mode 100644
index 925120e..0000000
--- a/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/NetworkState.java
+++ /dev/null
@@ -1,177 +0,0 @@
-package com.android.connectivitymanagertest;
-
-import android.net.NetworkInfo.State;
-import android.util.Log;
-
-import java.util.List;
-import java.util.ArrayList;
-
-public class NetworkState {
- public static final int TO_DISCONNECTION = 0; // transition to disconnection
- public static final int TO_CONNECTION = 1; // transition to connection
- public static final int DO_NOTHING = -1; // no state change
- private final String LOG_TAG = "NetworkState";
- private List<State> mStateDepository;
- private State mTransitionTarget;
- private int mTransitionDirection;
- private String mReason = null; // record mReason of state transition failure
-
- public NetworkState() {
- mStateDepository = new ArrayList<State>();
- mTransitionDirection = DO_NOTHING;
- mTransitionTarget = State.UNKNOWN;
- }
-
- public NetworkState(State currentState) {
- mStateDepository = new ArrayList<State>();
- mStateDepository.add(currentState);
- mTransitionDirection = DO_NOTHING;
- mTransitionTarget = State.UNKNOWN;
- }
-
- // Reinitialize the network state
- public void resetNetworkState() {
- mStateDepository.clear();
- mTransitionDirection = DO_NOTHING;
- mTransitionTarget = State.UNKNOWN;
- }
-
- // set the transition criteria, transitionDir could be:
- // DO_NOTHING, TO_CONNECTION, TO_DISCONNECTION
- public void setStateTransitionCriteria(State initState, int transitionDir, State targetState) {
- if (!mStateDepository.isEmpty()) {
- mStateDepository.clear();
- }
- mStateDepository.add(initState);
- mTransitionDirection = transitionDir;
- mTransitionTarget = targetState;
- Log.v(LOG_TAG, "setStateTransitionCriteria: " + printStates());
- }
-
- public void recordState(State currentState) {
- mStateDepository.add(currentState);
- }
-
- // Verify state transition
- public boolean validateStateTransition() {
- Log.v(LOG_TAG, "print state depository: " + printStates());
- if (mTransitionDirection == DO_NOTHING) {
- if (mStateDepository.isEmpty()) {
- Log.v(LOG_TAG, "no state is recorded");
- mReason = "no state is recorded.";
- return false;
- } else if (mStateDepository.size() > 1) {
- Log.v(LOG_TAG, "no broadcast is expected, " +
- "instead broadcast is probably received");
- mReason = "no broadcast is expected, instead broadcast is probably received";
- return false;
- } else if (mStateDepository.get(0) != mTransitionTarget) {
- Log.v(LOG_TAG, mTransitionTarget + " is expected, but it is " +
- mStateDepository.get(0));
- mReason = mTransitionTarget + " is expected, but it is " + mStateDepository.get(0);
- return false;
- }
- return true;
- } else if (mTransitionDirection == TO_CONNECTION) {
- Log.v(LOG_TAG, "transition to CONNECTED");
- return transitToConnection();
- } else {
- Log.v(LOG_TAG, "transition to DISCONNECTED");
- return transitToDisconnection();
- }
- }
-
- /*
- * Transition from CONNECTED -> DISCONNECTED:
- * CONNECTED->DISCONNECTING->DISCONNECTED
- * return false if any state transition is not valid and save a message in mReason
- */
- public boolean transitToDisconnection () {
- mReason = "states: " + printStates();
- if (mStateDepository.get(0) != State.CONNECTED) {
- mReason += " initial state should be CONNECTED, but it is " +
- mStateDepository.get(0) + ".";
- return false;
- }
- State lastState = mStateDepository.get(mStateDepository.size() - 1);
- if ( lastState != mTransitionTarget) {
- mReason += " the last state should be DISCONNECTED, but it is " + lastState;
- return false;
- }
- for (int i = 1; i < mStateDepository.size() - 1; i++) {
- State preState = mStateDepository.get(i-1);
- State curState = mStateDepository.get(i);
- if ((preState == State.CONNECTED) && ((curState == State.DISCONNECTING) ||
- (curState == State.DISCONNECTED))) {
- continue;
- } else if ((preState == State.DISCONNECTING) && (curState == State.DISCONNECTED)) {
- continue;
- } else if ((preState == State.DISCONNECTED) && (curState == State.DISCONNECTED)) {
- continue;
- } else {
- mReason += " Transition state from " + preState.toString() + " to " +
- curState.toString() + " is not valid.";
- return false;
- }
- }
- return true;
- }
-
- // DISCONNECTED->CONNECTING->CONNECTED
- public boolean transitToConnection() {
- mReason = "states: " + printStates();
- if (mStateDepository.get(0) != State.DISCONNECTED) {
- mReason += " initial state should be DISCONNECTED, but it is " +
- mStateDepository.get(0) + ".";
- return false;
- }
- State lastState = mStateDepository.get(mStateDepository.size() - 1);
- if ( lastState != mTransitionTarget) {
- mReason += " the last state should be CONNECTED, but it is " + lastState;
- return false;
- }
- for (int i = 1; i < mStateDepository.size(); i++) {
- State preState = mStateDepository.get(i-1);
- State curState = mStateDepository.get(i);
- if ((preState == State.DISCONNECTED) && ((curState == State.CONNECTING) ||
- (curState == State.CONNECTED))) {
- continue;
- } else if ((preState == State.CONNECTING) && (curState == State.CONNECTED)) {
- continue;
- } else if ((preState == State.CONNECTED) && (curState == State.CONNECTED)) {
- continue;
- } else {
- mReason += " Transition state from " + preState.toString() + " to " +
- curState.toString() + " is not valid.";
- return false;
- }
- }
- return true;
- }
-
- public List<State> getTransitionStates() {
- return mStateDepository;
- }
-
- // return state failure mReason
- public String getReason() {
- return mReason;
- }
-
- public String printStates() {
- StringBuilder stateBuilder = new StringBuilder("");
- for (int i = 0; i < mStateDepository.size(); i++) {
- stateBuilder.append(" ").append(mStateDepository.get(i).toString()).append("->");
- }
- return stateBuilder.toString();
- }
-
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder(" ");
- builder.append("mTransitionDirection: ").append(Integer.toString(mTransitionDirection)).
- append("; ").append("states:").
- append(printStates()).append("; ");
- return builder.toString();
- }
-}
diff --git a/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/functional/ConnectivityManagerMobileTest.java b/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/functional/ConnectivityManagerMobileTest.java
deleted file mode 100644
index ab81bb8..0000000
--- a/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/functional/ConnectivityManagerMobileTest.java
+++ /dev/null
@@ -1,135 +0,0 @@
-package com.android.connectivitymanagertest.functional;
-
-import com.android.connectivitymanagertest.ConnectivityManagerTestActivity;
-
-import android.content.Intent;
-import android.content.Context;
-import android.app.Instrumentation;
-import android.os.Handler;
-import android.os.Message;
-import android.net.ConnectivityManager;
-import android.net.NetworkInfo;
-import android.net.NetworkInfo.State;
-import android.net.NetworkInfo.DetailedState;
-
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.ActivityInstrumentationTestCase2;
-import com.android.connectivitymanagertest.ConnectivityManagerTestRunner;
-import com.android.connectivitymanagertest.NetworkState;
-import android.util.Log;
-import junit.framework.*;
-
-public class ConnectivityManagerMobileTest
- extends ActivityInstrumentationTestCase2<ConnectivityManagerTestActivity> {
-
- private static final String LOG_TAG = "ConnectivityManagerMobileTest";
- private static final String PKG_NAME = "com.android.connectivitymanagertest";
- private static final long WIFI_CONNECTION_TIMEOUT = 30 * 1000;
- private static final long WIFI_NOTIFICATION_TIMEOUT = 10 * 1000;
- private String TEST_ACCESS_POINT;
- private ConnectivityManagerTestActivity cmActivity;
-
- public ConnectivityManagerMobileTest() {
- super(PKG_NAME, ConnectivityManagerTestActivity.class);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- cmActivity = getActivity();
- ConnectivityManagerTestRunner mRunner =
- (ConnectivityManagerTestRunner)getInstrumentation();
- TEST_ACCESS_POINT = mRunner.TEST_SSID;
- // Each test case will start with cellular connection
- verifyCellularConnection();
- }
-
- @Override
- public void tearDown() throws Exception {
- // clear Wifi after each test case
- cmActivity.clearWifi();
- cmActivity.finish();
- Log.v(LOG_TAG, "tear down ConnectivityManager test activity");
- super.tearDown();
- }
-
- // help function to verify 3G connection
- public void verifyCellularConnection() {
- NetworkInfo extraNetInfo = cmActivity.mNetworkInfo;
- assertEquals("network type is not MOBILE", ConnectivityManager.TYPE_MOBILE,
- extraNetInfo.getType());
- assertTrue("not connected to cellular network", extraNetInfo.isConnected());
- assertTrue("no data connection", cmActivity.mState.equals(State.CONNECTED));
- }
-
- // Test case 1: Test enabling Wifi without associating with any AP
- @LargeTest
- public void test3GToWifiNotification() {
- // As Wifi stays in DISCONNECTED, the connectivity manager will not broadcast
- // any network connectivity event for Wifi
- NetworkInfo networkInfo = cmActivity.mCM.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
- cmActivity.setStateTransitionCriteria(ConnectivityManager.TYPE_MOBILE, networkInfo.getState(),
- NetworkState.DO_NOTHING, State.CONNECTED);
- networkInfo = cmActivity.mCM.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
- cmActivity.setStateTransitionCriteria(ConnectivityManager.TYPE_WIFI, networkInfo.getState(),
- NetworkState.DO_NOTHING, State.DISCONNECTED);
- // Eanble Wifi
- cmActivity.enableWifi();
- try {
- Thread.sleep(WIFI_NOTIFICATION_TIMEOUT);
- } catch (Exception e) {
- Log.v(LOG_TAG, "exception: " + e.toString());
- }
-
- // validate state and broadcast
- if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_WIFI)) {
- Log.v(LOG_TAG, "the state for WIFI is changed");
- Log.v(LOG_TAG, "reason: " +
- cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_WIFI));
- assertTrue(false);
- }
- if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_MOBILE)) {
- Log.v(LOG_TAG, "the state for MOBILE is changed");
- Log.v(LOG_TAG, "reason: " +
- cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_MOBILE));
- assertTrue(false);
- }
- // Verify that the device is still connected to MOBILE
- verifyCellularConnection();
- }
-
- // Test case 2: test connection to a given AP
- @LargeTest
- public void testConnectToWifi() {
- //Prepare for connectivity verification
- NetworkInfo networkInfo = cmActivity.mCM.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
- cmActivity.setStateTransitionCriteria(ConnectivityManager.TYPE_MOBILE, networkInfo.getState(),
- NetworkState.TO_DISCONNECTION, State.DISCONNECTED);
- networkInfo = cmActivity.mCM.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
- cmActivity.setStateTransitionCriteria(ConnectivityManager.TYPE_WIFI, networkInfo.getState(),
- NetworkState.TO_CONNECTION, State.CONNECTED);
-
- // Enable Wifi and connect to a test access point
- assertTrue("failed to connect to " + TEST_ACCESS_POINT,
- cmActivity.connectToWifi(TEST_ACCESS_POINT));
- try {
- Thread.sleep(WIFI_CONNECTION_TIMEOUT);
- } catch (Exception e) {
- Log.v(LOG_TAG, "exception: " + e.toString());
- }
-
- // validate states
- if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_WIFI)) {
- Log.v(LOG_TAG, "Wifi state transition validation failed.");
- Log.v(LOG_TAG, "reason: " +
- cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_WIFI));
- assertTrue(false);
- }
- if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_MOBILE)) {
- Log.v(LOG_TAG, "Mobile state transition validation failed.");
- Log.v(LOG_TAG, "reason: " +
- cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_MOBILE));
- assertTrue(false);
- }
- }
-}