Add NetworkInfo CTS tests
Test APIs below:
NetworkInfo(int, int, String, String)
setDetailedState(android.net.NetworkInfo.DetailedState, String, String)
Bug: 152356365
Test: atest CtsNetTestCasesLatestSdk:android.net.cts.NetworkInfoTest
on both Q and R devices
Change-Id: Idada858b1d5cd4c0907998b289aca4d6e6d04f56
Merged-In: Idada858b1d5cd4c0907998b289aca4d6e6d04f56
(cherry picked from aosp/1267480)
diff --git a/tests/tests/net/src/android/net/cts/NetworkInfoTest.kt b/tests/tests/net/src/android/net/cts/NetworkInfoTest.kt
index e1dca53..fa15e8f 100644
--- a/tests/tests/net/src/android/net/cts/NetworkInfoTest.kt
+++ b/tests/tests/net/src/android/net/cts/NetworkInfoTest.kt
@@ -16,16 +16,24 @@
package android.net.cts
+import android.os.Build
import android.content.Context
import android.net.ConnectivityManager
import android.net.NetworkInfo
import android.net.NetworkInfo.DetailedState
import android.net.NetworkInfo.State
+import android.telephony.TelephonyManager
import androidx.test.filters.SmallTest
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.runner.AndroidJUnit4
+import com.android.testutils.DevSdkIgnoreRule
+import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo
+import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotNull
+import org.junit.Assert.assertNull
import org.junit.Assert.assertTrue
+import org.junit.Assert.fail
+import org.junit.Rule
import org.junit.runner.RunWith
import org.junit.Test
@@ -33,10 +41,14 @@
const val TYPE_WIFI = ConnectivityManager.TYPE_WIFI
const val MOBILE_TYPE_NAME = "mobile"
const val WIFI_TYPE_NAME = "WIFI"
+const val LTE_SUBTYPE_NAME = "LTE"
@SmallTest
@RunWith(AndroidJUnit4::class)
class NetworkInfoTest {
+ @Rule @JvmField
+ val ignoreRule = DevSdkIgnoreRule()
+
@Test
fun testAccessNetworkInfoProperties() {
val cm = InstrumentationRegistry.getInstrumentation().context
@@ -70,4 +82,41 @@
DetailedState.AUTHENTICATING == netInfo.getDetailedState() ||
DetailedState.CONNECTED == netInfo.getDetailedState())
}
+
+ @Test @IgnoreUpTo(Build.VERSION_CODES.Q)
+ fun testConstructor() {
+ val networkInfo = NetworkInfo(TYPE_MOBILE, TelephonyManager.NETWORK_TYPE_LTE,
+ MOBILE_TYPE_NAME, LTE_SUBTYPE_NAME)
+
+ assertEquals(TYPE_MOBILE, networkInfo.type)
+ assertEquals(TelephonyManager.NETWORK_TYPE_LTE, networkInfo.subtype)
+ assertEquals(MOBILE_TYPE_NAME, networkInfo.typeName)
+ assertEquals(LTE_SUBTYPE_NAME, networkInfo.subtypeName)
+ assertEquals(DetailedState.IDLE, networkInfo.detailedState)
+ assertEquals(State.UNKNOWN, networkInfo.state)
+ assertNull(networkInfo.reason)
+ assertNull(networkInfo.extraInfo)
+
+ try {
+ NetworkInfo(ConnectivityManager.MAX_NETWORK_TYPE + 1,
+ TelephonyManager.NETWORK_TYPE_LTE, MOBILE_TYPE_NAME, LTE_SUBTYPE_NAME)
+ fail("Unexpected behavior. Network type is invalid.")
+ } catch (e: IllegalArgumentException) {
+ // Expected behavior.
+ }
+ }
+
+ @Test
+ fun testSetDetailedState() {
+ val networkInfo = NetworkInfo(TYPE_MOBILE, TelephonyManager.NETWORK_TYPE_LTE,
+ MOBILE_TYPE_NAME, LTE_SUBTYPE_NAME)
+ val reason = "TestNetworkInfo"
+ val extraReason = "setDetailedState test"
+
+ networkInfo.setDetailedState(DetailedState.CONNECTED, reason, extraReason)
+ assertEquals(DetailedState.CONNECTED, networkInfo.detailedState)
+ assertEquals(State.CONNECTED, networkInfo.state)
+ assertEquals(reason, networkInfo.reason)
+ assertEquals(extraReason, networkInfo.extraInfo)
+ }
}