From 42096be0c6d2b5e24d3e65777136b8e9b1828909 Mon Sep 17 00:00:00 2001 From: lifr Date: Wed, 9 Jun 2021 17:21:24 +0800 Subject: [PATCH] Add CTS test for NetworkAgent/NetworkAgentConfig API The following is a list of APIs: 1. NetworkAgent.setLegacySubtype 2. NetworkAgentConfig.Builder.setLegacySubType 3. NetworkAgentConfig.Builder.setLegacySubTypeName 4. NetworkAgentConfig.Builder.setLegacyExtraInfo Bug: 190413710 Test: atest android.net.cts.NetworkAgentTest atest CtsNetTestCasesLatestSdk:NetworkAgentTest Merged-In: Ia67b963b8e18af8440b1b9bd91f53439848bb838 Change-Id: Ia67b963b8e18af8440b1b9bd91f53439848bb838 (cherry-picked from aosp/1693668) --- .../src/android/net/cts/NetworkAgentTest.kt | 54 +++++++++++++++++-- 1 file changed, 51 insertions(+), 3 deletions(-) diff --git a/tests/cts/net/src/android/net/cts/NetworkAgentTest.kt b/tests/cts/net/src/android/net/cts/NetworkAgentTest.kt index 8e2b3101ed..9017f1b96a 100644 --- a/tests/cts/net/src/android/net/cts/NetworkAgentTest.kt +++ b/tests/cts/net/src/android/net/cts/NetworkAgentTest.kt @@ -70,6 +70,7 @@ import android.os.HandlerThread import android.os.Looper import android.os.Message import android.os.SystemClock +import android.telephony.TelephonyManager import android.util.DebugUtils.valueToString import androidx.test.InstrumentationRegistry import com.android.compatibility.common.util.SystemUtil.runWithShellPermissionIdentity @@ -362,15 +363,19 @@ class NetworkAgentTest { } } - private fun createConnectedNetworkAgent(context: Context = realContext, name: String? = null): - Pair { + private fun createConnectedNetworkAgent( + context: Context = realContext, + name: String? = null, + initialConfig: NetworkAgentConfig? = null + ): Pair { val request: NetworkRequest = NetworkRequest.Builder() .clearCapabilities() .addTransportType(TRANSPORT_TEST) .build() val callback = TestableNetworkCallback(timeoutMs = DEFAULT_TIMEOUT_MS) requestNetwork(request, callback) - val agent = createNetworkAgent(context, name) + val config = initialConfig ?: NetworkAgentConfig.Builder().build() + val agent = createNetworkAgent(context, name, initialConfig = config) agent.setTeardownDelayMillis(0) agent.register() agent.markConnected() @@ -382,6 +387,49 @@ class NetworkAgentTest { mFakeConnectivityService.connect(it.registerForTest(Network(FAKE_NET_ID))) } + @Test + fun testSetSubtypeNameAndExtraInfoByAgentConfig() { + val subtypeLTE = TelephonyManager.NETWORK_TYPE_LTE + val subtypeNameLTE = "LTE" + val legacyExtraInfo = "mylegacyExtraInfo" + val config = NetworkAgentConfig.Builder() + .setLegacySubType(subtypeLTE) + .setLegacySubTypeName(subtypeNameLTE) + .setLegacyExtraInfo(legacyExtraInfo).build() + val (agent, callback) = createConnectedNetworkAgent(initialConfig = config) + val networkInfo = mCM.getNetworkInfo(agent.network) + assertEquals(subtypeLTE, networkInfo.getSubtype()) + assertEquals(subtypeNameLTE, networkInfo.getSubtypeName()) + assertEquals(legacyExtraInfo, config.getLegacyExtraInfo()) + } + + @Test + fun testSetLegacySubtypeInNetworkAgent() { + val subtypeLTE = TelephonyManager.NETWORK_TYPE_LTE + val subtypeUMTS = TelephonyManager.NETWORK_TYPE_UMTS + val subtypeNameLTE = "LTE" + val subtypeNameUMTS = "UMTS" + val config = NetworkAgentConfig.Builder() + .setLegacySubType(subtypeLTE) + .setLegacySubTypeName(subtypeNameLTE).build() + val (agent, callback) = createConnectedNetworkAgent(initialConfig = config) + callback.expectAvailableThenValidatedCallbacks(agent.network) + agent.setLegacySubtype(subtypeUMTS, subtypeNameUMTS) + + // There is no callback when networkInfo changes, + // so use the NetworkCapabilities callback to ensure + // that networkInfo is ready for verification. + val nc = NetworkCapabilities(agent.nc) + nc.addCapability(NET_CAPABILITY_NOT_METERED) + agent.sendNetworkCapabilities(nc) + callback.expectCapabilitiesThat(agent.network) { + it.hasCapability(NET_CAPABILITY_NOT_METERED) + } + val networkInfo = mCM.getNetworkInfo(agent.network) + assertEquals(subtypeUMTS, networkInfo.getSubtype()) + assertEquals(subtypeNameUMTS, networkInfo.getSubtypeName()) + } + @Test fun testConnectAndUnregister() { val (agent, callback) = createConnectedNetworkAgent()