diff --git a/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java b/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java index 12cc21e053..2873f912db 100644 --- a/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java +++ b/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java @@ -51,8 +51,8 @@ public class ConnectivityManagerTest extends AndroidTestCase { private ConnectivityManager mCm; private WifiManager mWifiManager; private PackageManager mPackageManager; - // must include both mobile data + wifi - private static final int MIN_NUM_NETWORK_TYPES = 2; + // device could have only one interface: data, wifi. + private static final int MIN_NUM_NETWORK_TYPES = 1; @Override protected void setUp() throws Exception { @@ -68,28 +68,27 @@ public class ConnectivityManagerTest extends AndroidTestCase { 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 +141,21 @@ public class ConnectivityManagerTest extends AndroidTestCase { 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 99e8e15169..b333be747e 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 class NetworkInfoTest extends AndroidTestCase { 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()); } }