diff options
author | Xia Wang <xiaw@google.com> | 2011-03-04 19:23:21 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-03-04 19:23:21 -0800 |
commit | 928ec5e021162fe371da8bdac7f5bb2c854b1aa1 (patch) | |
tree | 11a5788c086ae021071512ffd573fa237d23eea1 | |
parent | fa331d0dfee0bc7324c788915292066e31842d49 (diff) | |
parent | b97435c94f4d35a70d63e5dcba5415b0110cf2c9 (diff) | |
download | frameworks_base-928ec5e021162fe371da8bdac7f5bb2c854b1aa1.zip frameworks_base-928ec5e021162fe371da8bdac7f5bb2c854b1aa1.tar.gz frameworks_base-928ec5e021162fe371da8bdac7f5bb2c854b1aa1.tar.bz2 |
Merge "Modify connectivity manager test suite so that it can be run on Wi-Fi only device." into honeycomb
4 files changed, 145 insertions, 65 deletions
diff --git a/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerStressTestRunner.java b/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerStressTestRunner.java index 5b76e39..3f78ce0 100644 --- a/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerStressTestRunner.java +++ b/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerStressTestRunner.java @@ -19,6 +19,7 @@ package com.android.connectivitymanagertest; import android.os.Bundle; import android.test.InstrumentationTestRunner; import android.test.InstrumentationTestSuite; + import com.android.connectivitymanagertest.stress.WifiApStress; import com.android.connectivitymanagertest.stress.WifiStressTest; @@ -44,8 +45,18 @@ public class ConnectivityManagerStressTestRunner extends InstrumentationTestRunn @Override public TestSuite getAllTests() { TestSuite suite = new InstrumentationTestSuite(this); - suite.addTestSuite(WifiApStress.class); - suite.addTestSuite(WifiStressTest.class); + if (!UtilHelper.isWifiOnly()) { + suite.addTestSuite(WifiApStress.class); + suite.addTestSuite(WifiStressTest.class); + } else { + // create a new test suite + suite.setName("WifiOnlyStressTests"); + String[] methodNames = {"testWifiScanning"}; + Class<WifiStressTest> testClass = WifiStressTest.class; + for (String method: methodNames) { + suite.addTest(TestSuite.createTest(testClass, method)); + } + } return suite; } diff --git a/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerTestRunner.java b/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerTestRunner.java index 3d4dc3d..20aae47 100644 --- a/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerTestRunner.java +++ b/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/ConnectivityManagerTestRunner.java @@ -19,7 +19,7 @@ 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 com.android.connectivitymanagertest.functional.WifiConnectionTest; @@ -35,10 +35,24 @@ import junit.framework.TestSuite; */ public class ConnectivityManagerTestRunner extends InstrumentationTestRunner { + public String TEST_SSID = null; + @Override public TestSuite getAllTests() { TestSuite suite = new InstrumentationTestSuite(this); - suite.addTestSuite(ConnectivityManagerMobileTest.class); + if (!UtilHelper.isWifiOnly()) { + suite.addTestSuite(ConnectivityManagerMobileTest.class); + } else { + // create a new test suite + suite.setName("ConnectivityManagerWifiOnlyFunctionalTests"); + String[] methodNames = {"testConnectToWifi", "testConnectToWifWithKnownAP", + "testDisconnectWifi", "testDataConnectionOverAMWithWifi", + "testDataConnectionWithWifiToAMToWifi", "testWifiStateChange"}; + Class<ConnectivityManagerMobileTest> testClass = ConnectivityManagerMobileTest.class; + for (String method: methodNames) { + suite.addTest(TestSuite.createTest(testClass, method)); + } + } suite.addTestSuite(WifiConnectionTest.class); return suite; } @@ -56,6 +70,4 @@ public class ConnectivityManagerTestRunner extends InstrumentationTestRunner { TEST_SSID = testSSID; } } - - public String TEST_SSID = null; } diff --git a/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/UtilHelper.java b/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/UtilHelper.java new file mode 100644 index 0000000..1b966bf --- /dev/null +++ b/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/UtilHelper.java @@ -0,0 +1,27 @@ +/* + * 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; + +import android.os.SystemProperties; + +public class UtilHelper { + public static boolean isWifiOnly() { + return "wifi-only".equals(SystemProperties.get("ro.carrier")); + } + + +} diff --git a/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/functional/ConnectivityManagerMobileTest.java b/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/functional/ConnectivityManagerMobileTest.java index 1655e27..bfa53bb 100644 --- a/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/functional/ConnectivityManagerMobileTest.java +++ b/core/tests/ConnectivityManagerTest/src/com/android/connectivitymanagertest/functional/ConnectivityManagerMobileTest.java @@ -17,6 +17,7 @@ package com.android.connectivitymanagertest.functional; import com.android.connectivitymanagertest.ConnectivityManagerTestActivity; +import com.android.connectivitymanagertest.UtilHelper; import android.content.Intent; import android.content.Context; @@ -48,7 +49,7 @@ public class ConnectivityManagerMobileTest private WakeLock wl; public ConnectivityManagerMobileTest() { - super(PKG_NAME, ConnectivityManagerTestActivity.class); + super(ConnectivityManagerTestActivity.class); } @Override @@ -68,13 +69,15 @@ public class ConnectivityManagerMobileTest Log.v(LOG_TAG, "airplane is not disabled, disable it."); cmActivity.setAirplaneMode(getInstrumentation().getContext(), false); } - if (!cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE, State.CONNECTED, - ConnectivityManagerTestActivity.LONG_TIMEOUT)) { - // Note: When the test fails in setUp(), tearDown is not called. In that case, - // the activity is destroyed which blocks the next test at "getActivity()". - // tearDown() is called here to avoid that situation. - tearDown(); - fail("Device is not connected to Mobile, setUp failed"); + if (!UtilHelper.isWifiOnly()) { + if (!cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE, State.CONNECTED, + ConnectivityManagerTestActivity.LONG_TIMEOUT)) { + // Note: When the test fails in setUp(), tearDown is not called. In that case, + // the activity is destroyed which blocks the next test at "getActivity()". + // tearDown() is called here to avoid that situation. + tearDown(); + fail("Device is not connected to Mobile, setUp failed"); + } } } @@ -118,8 +121,8 @@ public class ConnectivityManagerMobileTest // As Wifi stays in DISCONNETED, 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); + 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); @@ -152,10 +155,13 @@ public class ConnectivityManagerMobileTest @LargeTest public void testConnectToWifi() { assertNotNull("SSID is null", TEST_ACCESS_POINT); - //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 networkInfo; + if (!UtilHelper.isWifiOnly()) { + //Prepare for connectivity verification + 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); @@ -169,8 +175,10 @@ public class ConnectivityManagerMobileTest Log.v(LOG_TAG, "wifi state is enabled"); assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); - assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE, State.DISCONNECTED, - ConnectivityManagerTestActivity.LONG_TIMEOUT)); + if (!UtilHelper.isWifiOnly()) { + assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE, + State.DISCONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); + } // validate states if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_WIFI)) { @@ -179,11 +187,13 @@ public class ConnectivityManagerMobileTest 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); + if (!UtilHelper.isWifiOnly()) { + 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); + } } } @@ -215,16 +225,21 @@ public class ConnectivityManagerMobileTest // Wait for the Wifi state to be DISABLED assertTrue(cmActivity.waitForWifiState(WifiManager.WIFI_STATE_DISABLED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); - assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.DISCONNECTED, - ConnectivityManagerTestActivity.LONG_TIMEOUT)); - assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE, State.CONNECTED, - ConnectivityManagerTestActivity.LONG_TIMEOUT)); + assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, + State.DISCONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); + if (!UtilHelper.isWifiOnly()) { + assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE, + State.CONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); + } - //Prepare for connectivity state verification - NetworkInfo networkInfo = cmActivity.mCM.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); - cmActivity.setStateTransitionCriteria(ConnectivityManager.TYPE_MOBILE, - networkInfo.getState(), NetworkState.DO_NOTHING, - State.DISCONNECTED); + NetworkInfo networkInfo; + if (!UtilHelper.isWifiOnly()) { + //Prepare for connectivity state verification + networkInfo = cmActivity.mCM.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); + cmActivity.setStateTransitionCriteria(ConnectivityManager.TYPE_MOBILE, + networkInfo.getState(), NetworkState.DO_NOTHING, + State.DISCONNECTED); + } networkInfo = cmActivity.mCM.getNetworkInfo(ConnectivityManager.TYPE_WIFI); cmActivity.setStateTransitionCriteria(ConnectivityManager.TYPE_WIFI, networkInfo.getState(), NetworkState.TO_CONNECTION, State.CONNECTED); @@ -236,8 +251,10 @@ public class ConnectivityManagerMobileTest // Wait for Wifi to be connected and mobile to be disconnected assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); - assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE, State.DISCONNECTED, - ConnectivityManagerTestActivity.LONG_TIMEOUT)); + if (!UtilHelper.isWifiOnly()) { + assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE, + State.DISCONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); + } // validate wifi states if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_WIFI)) { @@ -267,11 +284,14 @@ public class ConnectivityManagerMobileTest Log.v(LOG_TAG, "exception: " + e.toString()); } - NetworkInfo networkInfo = cmActivity.mCM.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); - cmActivity.setStateTransitionCriteria(ConnectivityManager.TYPE_MOBILE, - networkInfo.getState(), - NetworkState.TO_CONNECTION, - State.CONNECTED); + NetworkInfo networkInfo; + if (!UtilHelper.isWifiOnly()) { + networkInfo = cmActivity.mCM.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); + cmActivity.setStateTransitionCriteria(ConnectivityManager.TYPE_MOBILE, + networkInfo.getState(), + NetworkState.TO_CONNECTION, + State.CONNECTED); + } networkInfo = cmActivity.mCM.getNetworkInfo(ConnectivityManager.TYPE_WIFI); cmActivity.setStateTransitionCriteria(ConnectivityManager.TYPE_WIFI, networkInfo.getState(), NetworkState.TO_DISCONNECTION, State.DISCONNECTED); @@ -281,8 +301,10 @@ public class ConnectivityManagerMobileTest assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.DISCONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); - assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE, State.CONNECTED, - ConnectivityManagerTestActivity.LONG_TIMEOUT)); + if (!UtilHelper.isWifiOnly()) { + assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE, + State.CONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); + } // validate states if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_WIFI)) { @@ -291,11 +313,13 @@ public class ConnectivityManagerMobileTest 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); + if (!UtilHelper.isWifiOnly()) { + 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); + } } } @@ -367,14 +391,16 @@ public class ConnectivityManagerMobileTest // Eanble airplane mode cmActivity.setAirplaneMode(getInstrumentation().getContext(), true); - assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE, State.DISCONNECTED, - ConnectivityManagerTestActivity.LONG_TIMEOUT)); - - NetworkInfo networkInfo = cmActivity.mCM.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); - cmActivity.setStateTransitionCriteria(ConnectivityManager.TYPE_MOBILE, - networkInfo.getState(), - NetworkState.DO_NOTHING, - State.DISCONNECTED); + NetworkInfo networkInfo; + if (!UtilHelper.isWifiOnly()) { + assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE, + State.DISCONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); + networkInfo = cmActivity.mCM.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); + cmActivity.setStateTransitionCriteria(ConnectivityManager.TYPE_MOBILE, + networkInfo.getState(), + NetworkState.DO_NOTHING, + State.DISCONNECTED); + } networkInfo = cmActivity.mCM.getNetworkInfo(ConnectivityManager.TYPE_WIFI); cmActivity.setStateTransitionCriteria(ConnectivityManager.TYPE_WIFI, networkInfo.getState(), NetworkState.TO_CONNECTION, State.CONNECTED); @@ -392,11 +418,13 @@ public class ConnectivityManagerMobileTest cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_WIFI)); assertTrue("State validation failed", false); } - if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_MOBILE)) { - Log.v(LOG_TAG, "state validation for Mobile failed"); - Log.v(LOG_TAG, "reason: " + - cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_MOBILE)); - assertTrue("state validation failed", false); + if (!UtilHelper.isWifiOnly()) { + if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_MOBILE)) { + Log.v(LOG_TAG, "state validation for Mobile failed"); + Log.v(LOG_TAG, "reason: " + + cmActivity.getTransitionFailureReason(ConnectivityManager.TYPE_MOBILE)); + assertTrue("state validation failed", false); + } } cmActivity.setAirplaneMode(getInstrumentation().getContext(), false); } @@ -442,8 +470,10 @@ public class ConnectivityManagerMobileTest assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_WIFI, State.CONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); - assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE, State.DISCONNECTED, - ConnectivityManagerTestActivity.LONG_TIMEOUT)); + if (!UtilHelper.isWifiOnly()) { + assertTrue(cmActivity.waitForNetworkState(ConnectivityManager.TYPE_MOBILE, + State.DISCONNECTED, ConnectivityManagerTestActivity.LONG_TIMEOUT)); + } // validate the state transition if (!cmActivity.validateNetworkStates(ConnectivityManager.TYPE_WIFI)) { |