|
|
|
|
@@ -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)) {
|
|
|
|
|
|