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)
This commit is contained in:
Paul Hu
2020-03-25 09:21:17 +00:00
parent c3fbce9459
commit 6254c4a809

View File

@@ -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_MOBILE = ConnectivityManager.TYPE_MOBILE
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 @@ class NetworkInfoTest {
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)
}
}