From ed4ef7bb99fd68ab0433f4e3bd5b89e631a6d612 Mon Sep 17 00:00:00 2001 From: Junyu Lai Date: Wed, 19 May 2021 13:27:13 +0000 Subject: [PATCH] Add CTS for NetworkAgentConfig#setSubscriberId Test: atest CtsNetTestCases:android.net.cts.NetworkAgentTest Test: atest CtsNetTestCasesLatestSdk:android.net.cts.NetworkAgentTest on R device Bug: 188140631 Merged-In: I90d47ac9bd0570c0aed19402fa9be4e99e0f8621 Change-Id: I90d47ac9bd0570c0aed19402fa9be4e99e0f8621 (cherry-picked from ag/14639705) --- .../src/android/net/cts/NetworkAgentTest.kt | 33 +++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/tests/cts/net/src/android/net/cts/NetworkAgentTest.kt b/tests/cts/net/src/android/net/cts/NetworkAgentTest.kt index 1a75a7fa79..8e2b3101ed 100644 --- a/tests/cts/net/src/android/net/cts/NetworkAgentTest.kt +++ b/tests/cts/net/src/android/net/cts/NetworkAgentTest.kt @@ -15,6 +15,7 @@ */ package android.net.cts +import android.Manifest.permission.NETWORK_SETTINGS import android.app.Instrumentation import android.content.Context import android.net.ConnectivityManager @@ -71,6 +72,8 @@ import android.os.Message import android.os.SystemClock import android.util.DebugUtils.valueToString import androidx.test.InstrumentationRegistry +import com.android.compatibility.common.util.SystemUtil.runWithShellPermissionIdentity +import com.android.compatibility.common.util.ThrowingSupplier import com.android.modules.utils.build.SdkLevel import com.android.net.module.util.ArrayTrackRecord import com.android.testutils.CompatUtil @@ -332,7 +335,8 @@ class NetworkAgentTest { context: Context = realContext, name: String? = null, initialNc: NetworkCapabilities? = null, - initialLp: LinkProperties? = null + initialLp: LinkProperties? = null, + initialConfig: NetworkAgentConfig? = null ): TestableNetworkAgent { val nc = initialNc ?: NetworkCapabilities().apply { addTransportType(TRANSPORT_TEST) @@ -352,7 +356,7 @@ class NetworkAgentTest { addLinkAddress(LinkAddress(LOCAL_IPV4_ADDRESS, 32)) addRoute(RouteInfo(IpPrefix("0.0.0.0/0"), null, null)) } - val config = NetworkAgentConfig.Builder().build() + val config = initialConfig ?: NetworkAgentConfig.Builder().build() return TestableNetworkAgent(context, mHandlerThread.looper, nc, lp, config).also { agentsToCleanUp.add(it) } @@ -845,4 +849,29 @@ class NetworkAgentTest { callbackWeaker.assertNoCallback(expectedRemainingLingerDuration) callbackWeaker.expectCallback(agent1.network!!) } + + @Test + @IgnoreUpTo(Build.VERSION_CODES.R) + fun testSetSubscriberId() { + val name = "TEST-AGENT" + val imsi = UUID.randomUUID().toString() + val config = NetworkAgentConfig.Builder().setSubscriberId(imsi).build() + + val request: NetworkRequest = NetworkRequest.Builder() + .clearCapabilities() + .addTransportType(TRANSPORT_TEST) + .setNetworkSpecifier(CompatUtil.makeEthernetNetworkSpecifier(name)) + .build() + val callback = TestableNetworkCallback(timeoutMs = DEFAULT_TIMEOUT_MS) + requestNetwork(request, callback) + + val agent = createNetworkAgent(name = name, initialConfig = config) + agent.register() + agent.markConnected() + callback.expectAvailableThenValidatedCallbacks(agent.network!!) + val snapshots = runWithShellPermissionIdentity(ThrowingSupplier { + mCM!!.allNetworkStateSnapshots }, NETWORK_SETTINGS) + val testNetworkSnapshot = snapshots.findLast { it.network == agent.network } + assertEquals(imsi, testNetworkSnapshot!!.subscriberId) + } }