blob: 248ef9a71fcddad604b520d7d817cbfd2fbb618f [file] [log] [blame]
/*
* Copyright (C) 2008 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 android.net.cts;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.NetworkInfo.DetailedState;
import android.net.NetworkInfo.State;
import android.os.Parcel;
import android.test.AndroidTestCase;
import dalvik.annotation.TestInfo;
import dalvik.annotation.TestStatus;
import dalvik.annotation.TestTarget;
import dalvik.annotation.TestTargetClass;
@TestTargetClass(NetworkInfo.class)
public class NetworkInfoTest extends AndroidTestCase {
ConnectivityManager mConnectivityManager;
@Override
protected void setUp() throws Exception {
super.setUp();
mConnectivityManager = (ConnectivityManager) mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
}
@TestInfo(
status = TestStatus.TBR,
notes = "Test isConnectedOrConnecting().",
targets = {
@TestTarget(
methodName = "isConnectedOrConnecting",
methodArgs = {}
),
@TestTarget(
methodName = "setFailover",
methodArgs = {boolean.class}
),
@TestTarget(
methodName = "isFailover",
methodArgs = {}
),
@TestTarget(
methodName = "getType",
methodArgs = {}
),
@TestTarget(
methodName = "getTypeName",
methodArgs = {}
),
@TestTarget(
methodName = "setIsAvailable",
methodArgs = {boolean.class}
),
@TestTarget(
methodName = "isAvailable",
methodArgs = {}
),
@TestTarget(
methodName = "isConnected",
methodArgs = {}
),
@TestTarget(
methodName = "describeContents",
methodArgs = {}
),
@TestTarget(
methodName = "getDetailedState",
methodArgs = {}
),
@TestTarget(
methodName = "getState",
methodArgs = {}
),
@TestTarget(
methodName = "getReason",
methodArgs = {}
),
@TestTarget(
methodName = "getExtraInfo",
methodArgs = {}
),
@TestTarget(
methodName = "toString",
methodArgs = {}
)
})
public void testAccessNetworkInfoProperties() {
NetworkInfo[] ni = mConnectivityManager.getAllNetworkInfo();
assertTrue(ni.length >= 2);
assertFalse(ni[ConnectivityManager.TYPE_MOBILE].isFailover());
assertFalse(ni[ConnectivityManager.TYPE_WIFI].isFailover());
// test environment:connect as TYPE_MOBILE, and connect to internet.
assertEquals(ni[ConnectivityManager.TYPE_MOBILE].getType(),
ConnectivityManager.TYPE_MOBILE);
assertEquals(ni[ConnectivityManager.TYPE_WIFI].getType(),
ConnectivityManager.TYPE_WIFI);
assertEquals("MOBILE",ni[ConnectivityManager.TYPE_MOBILE].getTypeName());
assertEquals("WIFI",ni[ConnectivityManager.TYPE_WIFI].getTypeName());
assertTrue(ni[ConnectivityManager.TYPE_MOBILE]
.isConnectedOrConnecting());
assertFalse(ni[ConnectivityManager.TYPE_WIFI].isConnectedOrConnecting());
assertTrue(ni[ConnectivityManager.TYPE_MOBILE].isAvailable());
assertFalse(ni[ConnectivityManager.TYPE_WIFI].isAvailable());
assertTrue(ni[ConnectivityManager.TYPE_MOBILE].isConnected());
assertFalse(ni[ConnectivityManager.TYPE_WIFI].isConnected());
assertEquals(ni[ConnectivityManager.TYPE_MOBILE].describeContents(), 0);
assertEquals(ni[ConnectivityManager.TYPE_WIFI].describeContents(), 0);
assertEquals(ni[ConnectivityManager.TYPE_MOBILE].getState(),
State.CONNECTED);
assertEquals(ni[ConnectivityManager.TYPE_MOBILE].getDetailedState(),
DetailedState.CONNECTED);
assertNull(ni[ConnectivityManager.TYPE_MOBILE].getReason());
assertNull(ni[ConnectivityManager.TYPE_WIFI].getReason());
assertEquals("internet",ni[ConnectivityManager.TYPE_MOBILE].getExtraInfo());
assertNull(ni[ConnectivityManager.TYPE_WIFI].getExtraInfo());
assertNotNull(ni[ConnectivityManager.TYPE_MOBILE].toString());
assertNotNull(ni[ConnectivityManager.TYPE_WIFI].toString());
}
@TestInfo(
status = TestStatus.TBR,
notes = "Test writeToParcel(Parcel dest, int flags).",
targets = {
@TestTarget(
methodName = "writeToParcel",
methodArgs = {Parcel.class, Integer.class}
)
})
public void testWriteToParcel() {
NetworkInfo[] ni = mConnectivityManager.getAllNetworkInfo();
Parcel p = Parcel.obtain();
ni[ConnectivityManager.TYPE_MOBILE].writeToParcel(p, 1);
p.setDataPosition(0);
NetworkInfo mNetworkInfo = NetworkInfo.CREATOR.createFromParcel(p);
assertEquals(ni[ConnectivityManager.TYPE_MOBILE].getExtraInfo(),
mNetworkInfo.getExtraInfo());
assertEquals(ni[ConnectivityManager.TYPE_MOBILE].getReason(),
mNetworkInfo.getReason());
assertEquals(ni[ConnectivityManager.TYPE_MOBILE].getType(),
mNetworkInfo.getType());
assertEquals(ni[ConnectivityManager.TYPE_MOBILE].getState(),
mNetworkInfo.getState());
assertEquals(ni[ConnectivityManager.TYPE_MOBILE].getDetailedState(),
mNetworkInfo.getDetailedState());
assertEquals(ni[ConnectivityManager.TYPE_MOBILE].isAvailable(),
mNetworkInfo.isAvailable());
assertEquals(ni[ConnectivityManager.TYPE_MOBILE].isFailover(),
mNetworkInfo.isFailover());
}
}