From 84413a92c3f66a540e831458598137a8e8a927ce Mon Sep 17 00:00:00 2001 From: Junyu Lai Date: Fri, 21 Jan 2022 14:44:28 +0000 Subject: [PATCH] [MS65.4] Address comments at aosp/1954383 Test: atest NetworkIdentityTest#testBuilder Bug: 204830222 Change-Id: I3d0f8175ee782c76839cbbdb5eb8a1219a61d874 --- .../java/android/net/NetworkIdentityTest.kt | 94 ++++++++++++++++++- 1 file changed, 93 insertions(+), 1 deletion(-) diff --git a/tests/unit/java/android/net/NetworkIdentityTest.kt b/tests/unit/java/android/net/NetworkIdentityTest.kt index 6ad8b06362..ec0420e119 100644 --- a/tests/unit/java/android/net/NetworkIdentityTest.kt +++ b/tests/unit/java/android/net/NetworkIdentityTest.kt @@ -17,7 +17,11 @@ package android.net import android.content.Context +import android.net.ConnectivityManager.MAX_NETWORK_TYPE +import android.net.ConnectivityManager.TYPE_ETHERNET import android.net.ConnectivityManager.TYPE_MOBILE +import android.net.ConnectivityManager.TYPE_NONE +import android.net.ConnectivityManager.TYPE_WIFI import android.net.NetworkIdentity.OEM_NONE import android.net.NetworkIdentity.OEM_PAID import android.net.NetworkIdentity.OEM_PRIVATE @@ -30,10 +34,12 @@ import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mockito.mock import kotlin.test.assertEquals +import kotlin.test.assertFailsWith import kotlin.test.assertFalse import kotlin.test.assertTrue private const val TEST_IMSI = "testimsi" +private const val TEST_WIFI_KEY = "testwifikey" @RunWith(DevSdkIgnoreRunner::class) @DevSdkIgnoreRule.IgnoreUpTo(Build.VERSION_CODES.R) @@ -126,6 +132,92 @@ class NetworkIdentityTest { assertEquals(identFromLegacyBuild, identFromSnapshot) assertEquals(identFromConstructor, identFromSnapshot) - // TODO: Add test cases for wifiNetworkKey and ratType. + // Assert non-wifi can't have wifi network key. + assertFailsWith { + NetworkIdentity.Builder() + .setType(TYPE_ETHERNET) + .setWifiNetworkKey(TEST_WIFI_KEY) + .build() + } + + // Assert non-mobile can't have ratType. + assertFailsWith { + NetworkIdentity.Builder() + .setType(TYPE_WIFI) + .setRatType(TelephonyManager.NETWORK_TYPE_LTE) + .build() + } + } + + @Test + fun testBuilder_type() { + // Assert illegal type values cannot make an identity. + listOf(Integer.MIN_VALUE, TYPE_NONE - 1, MAX_NETWORK_TYPE + 1, Integer.MAX_VALUE) + .forEach { type -> + assertFailsWith { + NetworkIdentity.Builder().setType(type).build() + } + } + + // Verify legitimate type values can make an identity. + for (type in TYPE_NONE..MAX_NETWORK_TYPE) { + NetworkIdentity.Builder().setType(type).build().also { + assertEquals(it.type, type) + } + } + } + + @Test + fun testBuilder_ratType() { + // Assert illegal ratTypes cannot make an identity. + listOf(Integer.MIN_VALUE, NetworkTemplate.NETWORK_TYPE_ALL, + TelephonyManager.NETWORK_TYPE_UNKNOWN - 1, Integer.MAX_VALUE) + .forEach { + assertFailsWith { + NetworkIdentity.Builder() + .setType(TYPE_MOBILE) + .setRatType(it) + .build() + } + } + + // Verify legitimate ratTypes can make an identity. + TelephonyManager.getAllNetworkTypes().toMutableList().also { + it.add(TelephonyManager.NETWORK_TYPE_UNKNOWN) + }.forEach { rat -> + NetworkIdentity.Builder() + .setType(TYPE_MOBILE) + .setRatType(rat) + .build().also { + assertEquals(it.ratType, rat) + } + } + } + + @Test + fun testBuilder_oemManaged() { + // Assert illegal oemManage values cannot make an identity. + listOf(Integer.MIN_VALUE, NetworkTemplate.OEM_MANAGED_ALL, NetworkTemplate.OEM_MANAGED_YES, + Integer.MAX_VALUE) + .forEach { + assertFailsWith { + NetworkIdentity.Builder() + .setType(TYPE_MOBILE) + .setRatType(it) + .build() + } + } + + // Verify legitimate oem managed values can make an identity. + listOf(NetworkTemplate.OEM_MANAGED_NO, NetworkTemplate.OEM_MANAGED_PAID, + NetworkTemplate.OEM_MANAGED_PRIVATE, NetworkTemplate.OEM_MANAGED_PAID or + NetworkTemplate.OEM_MANAGED_PRIVATE) + .forEach { oemManaged -> + NetworkIdentity.Builder() + .setOemManaged(oemManaged) + .build().also { + assertEquals(it.oemManaged, oemManaged) + } + } } }