Merge remote branch 'goog/gingerbread' into manualmerge
diff --git a/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java b/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java
index 12cc21e..3751b3c 100644
--- a/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java
+++ b/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java
@@ -48,11 +48,13 @@
public static final int TYPE_MOBILE = ConnectivityManager.TYPE_MOBILE;
public static final int TYPE_WIFI = ConnectivityManager.TYPE_WIFI;
private static final int HOST_ADDRESS = 0x7f000001;// represent ip 127.0.0.1
+
+ // device could have only one interface: data, wifi.
+ private static final int MIN_NUM_NETWORK_TYPES = 1;
+
private ConnectivityManager mCm;
private WifiManager mWifiManager;
private PackageManager mPackageManager;
- // must include both mobile data + wifi
- private static final int MIN_NUM_NETWORK_TYPES = 2;
@Override
protected void setUp() throws Exception {
@@ -68,28 +70,27 @@
args = {int.class}
)
public void testGetNetworkInfo() {
-
- // this test assumes that there are at least two network types.
assertTrue(mCm.getAllNetworkInfo().length >= MIN_NUM_NETWORK_TYPES);
- NetworkInfo ni = mCm.getNetworkInfo(1);
- State state = ni.getState();
- assertTrue(State.UNKNOWN.ordinal() >= state.ordinal()
- && state.ordinal() >= State.CONNECTING.ordinal());
- DetailedState ds = ni.getDetailedState();
- assertTrue(DetailedState.FAILED.ordinal() >= ds.ordinal()
- && ds.ordinal() >= DetailedState.IDLE.ordinal());
-
- ni = mCm.getNetworkInfo(0);
- state = ni.getState();
- assertTrue(State.UNKNOWN.ordinal() >= state.ordinal()
- && state.ordinal() >= State.CONNECTING.ordinal());
- ds = ni.getDetailedState();
- assertTrue(DetailedState.FAILED.ordinal() >= ds.ordinal()
- && ds.ordinal() >= DetailedState.IDLE.ordinal());
-
+ NetworkInfo ni = mCm.getNetworkInfo(TYPE_WIFI);
+ if (ni != null) {
+ State state = ni.getState();
+ assertTrue(State.UNKNOWN.ordinal() >= state.ordinal()
+ && state.ordinal() >= State.CONNECTING.ordinal());
+ DetailedState ds = ni.getDetailedState();
+ assertTrue(DetailedState.FAILED.ordinal() >= ds.ordinal()
+ && ds.ordinal() >= DetailedState.IDLE.ordinal());
+ }
+ ni = mCm.getNetworkInfo(TYPE_MOBILE);
+ if (ni != null) {
+ State state = ni.getState();
+ assertTrue(State.UNKNOWN.ordinal() >= state.ordinal()
+ && state.ordinal() >= State.CONNECTING.ordinal());
+ DetailedState ds = ni.getDetailedState();
+ assertTrue(DetailedState.FAILED.ordinal() >= ds.ordinal()
+ && ds.ordinal() >= DetailedState.IDLE.ordinal());
+ }
ni = mCm.getNetworkInfo(-1);
assertNull(ni);
-
}
@TestTargets({
@@ -142,9 +143,21 @@
final String invalidateFeature = "invalidateFeature";
final String mmsFeature = "enableMMS";
final int failureCode = -1;
+ final int wifiOnlyStartFailureCode = 3;
+ final int wifiOnlyStopFailureCode = 1;
- assertEquals(failureCode, mCm.startUsingNetworkFeature(TYPE_MOBILE, invalidateFeature));
- assertEquals(failureCode, mCm.stopUsingNetworkFeature(TYPE_MOBILE, invalidateFeature));
+ NetworkInfo ni = mCm.getNetworkInfo(TYPE_MOBILE);
+ if (ni != null) {
+ assertEquals(failureCode, mCm.startUsingNetworkFeature(TYPE_MOBILE,
+ invalidateFeature));
+ assertEquals(failureCode, mCm.stopUsingNetworkFeature(TYPE_MOBILE,
+ invalidateFeature));
+ } else {
+ assertEquals(wifiOnlyStartFailureCode, mCm.startUsingNetworkFeature(TYPE_MOBILE,
+ invalidateFeature));
+ assertEquals(wifiOnlyStopFailureCode, mCm.stopUsingNetworkFeature(TYPE_MOBILE,
+ invalidateFeature));
+ }
// Should return failure(-1) because MMS is not supported on WIFI.
assertEquals(failureCode, mCm.startUsingNetworkFeature(TYPE_WIFI, mmsFeature));
diff --git a/tests/cts/net/src/android/net/cts/NetworkInfoTest.java b/tests/cts/net/src/android/net/cts/NetworkInfoTest.java
index 99e8e15..b333be7 100644
--- a/tests/cts/net/src/android/net/cts/NetworkInfoTest.java
+++ b/tests/cts/net/src/android/net/cts/NetworkInfoTest.java
@@ -120,50 +120,47 @@
public void testAccessNetworkInfoProperties() {
ConnectivityManager cm = (ConnectivityManager) getContext().getSystemService(
Context.CONNECTIVITY_SERVICE);
-
NetworkInfo[] ni = cm.getAllNetworkInfo();
assertTrue(ni.length >= 2);
- assertFalse(ni[TYPE_MOBILE].isFailover());
- assertFalse(ni[TYPE_WIFI].isFailover());
-
- // test environment:connect as TYPE_MOBILE, and connect to internet.
- assertEquals(TYPE_MOBILE, ni[TYPE_MOBILE].getType());
- assertEquals(TYPE_WIFI, ni[TYPE_WIFI].getType());
-
- // don't know the return value
- ni[TYPE_MOBILE].getSubtype();
- ni[TYPE_WIFI].getSubtype();
-
- assertEquals(MOBILE_TYPE_NAME, ni[TYPE_MOBILE].getTypeName());
- assertEquals(WIFI_TYPE_NAME, ni[TYPE_WIFI].getTypeName());
-
- // don't know the return value
- ni[TYPE_MOBILE].getSubtypeName();
- ni[TYPE_WIFI].getSubtypeName();
-
- if(ni[TYPE_MOBILE].isConnectedOrConnecting()) {
- assertTrue(ni[TYPE_MOBILE].isAvailable());
- assertTrue(ni[TYPE_MOBILE].isConnected());
- assertEquals(State.CONNECTED, ni[TYPE_MOBILE].getState());
- assertEquals(DetailedState.CONNECTED, ni[TYPE_MOBILE].getDetailedState());
- ni[TYPE_MOBILE].getReason();
- ni[TYPE_MOBILE].getExtraInfo();
+ for (NetworkInfo netInfo: ni) {
+ switch (netInfo.getType()) {
+ case TYPE_MOBILE:
+ // don't know the return value
+ netInfo.getSubtype();
+ assertEquals(MOBILE_TYPE_NAME, netInfo.getTypeName());
+ // don't know the return value
+ netInfo.getSubtypeName();
+ if(netInfo.isConnectedOrConnecting()) {
+ assertTrue(netInfo.isAvailable());
+ assertTrue(netInfo.isConnected());
+ assertEquals(State.CONNECTED, netInfo.getState());
+ assertEquals(DetailedState.CONNECTED, netInfo.getDetailedState());
+ netInfo.getReason();
+ netInfo.getExtraInfo();
+ }
+ assertFalse(netInfo.isRoaming());
+ assertNotNull(netInfo.toString());
+ break;
+ case TYPE_WIFI:
+ netInfo.getSubtype();
+ assertEquals(WIFI_TYPE_NAME, netInfo.getTypeName());
+ netInfo.getSubtypeName();
+ if(netInfo.isConnectedOrConnecting()) {
+ assertTrue(netInfo.isAvailable());
+ assertTrue(netInfo.isConnected());
+ assertEquals(State.CONNECTED, netInfo.getState());
+ assertEquals(DetailedState.CONNECTED, netInfo.getDetailedState());
+ netInfo.getReason();
+ netInfo.getExtraInfo();
+ }
+ assertFalse(netInfo.isRoaming());
+ assertNotNull(netInfo.toString());
+ break;
+ // TODO: Add BLUETOOTH_TETHER testing
+ default:
+ break;
+ }
}
-
- if(ni[TYPE_WIFI].isConnectedOrConnecting()) {
- assertTrue(ni[TYPE_WIFI].isAvailable());
- assertTrue(ni[TYPE_WIFI].isConnected());
- assertEquals(State.CONNECTED, ni[TYPE_WIFI].getState());
- assertEquals(DetailedState.CONNECTED, ni[TYPE_WIFI].getDetailedState());
- ni[TYPE_WIFI].getReason();
- ni[TYPE_WIFI].getExtraInfo();
- }
-
- assertFalse(ni[TYPE_MOBILE].isRoaming());
- assertFalse(ni[TYPE_WIFI].isRoaming());
-
- assertNotNull(ni[TYPE_MOBILE].toString());
- assertNotNull(ni[TYPE_WIFI].toString());
}
}