Add a test for NetworkIdentity.getMetered() am: eaca5b1982 am: 1d79f3dd99
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1779526 Change-Id: I8b2eae1bf5fe67a76c7fe2837136abe0ad9abebd
This commit is contained in:
@@ -16,20 +16,38 @@
|
||||
|
||||
package android.net
|
||||
|
||||
import android.content.Context
|
||||
import android.net.ConnectivityManager.TYPE_MOBILE
|
||||
import android.net.NetworkIdentity.OEM_NONE
|
||||
import android.net.NetworkIdentity.OEM_PAID
|
||||
import android.net.NetworkIdentity.OEM_PRIVATE
|
||||
import android.net.NetworkIdentity.getOemBitfield
|
||||
import android.telephony.TelephonyManager
|
||||
import android.os.Build
|
||||
import com.android.testutils.DevSdkIgnoreRule
|
||||
import com.android.testutils.DevSdkIgnoreRunner
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mockito.Mockito.mock
|
||||
import kotlin.test.assertEquals
|
||||
import kotlin.test.assertFalse
|
||||
import kotlin.test.assertTrue
|
||||
|
||||
private const val TEST_IMSI = "testimsi"
|
||||
|
||||
@RunWith(DevSdkIgnoreRunner::class)
|
||||
@DevSdkIgnoreRule.IgnoreUpTo(Build.VERSION_CODES.R)
|
||||
class NetworkIdentityTest {
|
||||
private val mockContext = mock(Context::class.java)
|
||||
|
||||
private fun buildMobileNetworkStateSnapshot(
|
||||
caps: NetworkCapabilities,
|
||||
subscriberId: String
|
||||
): NetworkStateSnapshot {
|
||||
return NetworkStateSnapshot(mock(Network::class.java), caps,
|
||||
LinkProperties(), subscriberId, TYPE_MOBILE)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testGetOemBitfield() {
|
||||
val oemNone = NetworkCapabilities().apply {
|
||||
@@ -54,4 +72,32 @@ class NetworkIdentityTest {
|
||||
assertEquals(getOemBitfield(oemPrivate), OEM_PRIVATE)
|
||||
assertEquals(getOemBitfield(oemAll), OEM_PAID or OEM_PRIVATE)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testGetMetered() {
|
||||
// Verify network is metered.
|
||||
val netIdent1 = NetworkIdentity.buildNetworkIdentity(mockContext,
|
||||
buildMobileNetworkStateSnapshot(NetworkCapabilities(), TEST_IMSI),
|
||||
false /* defaultNetwork */, TelephonyManager.NETWORK_TYPE_UMTS)
|
||||
assertTrue(netIdent1.getMetered())
|
||||
|
||||
// Verify network is not metered because it has NET_CAPABILITY_NOT_METERED capability.
|
||||
val capsNotMetered = NetworkCapabilities.Builder().apply {
|
||||
addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED)
|
||||
}.build()
|
||||
val netIdent2 = NetworkIdentity.buildNetworkIdentity(mockContext,
|
||||
buildMobileNetworkStateSnapshot(capsNotMetered, TEST_IMSI),
|
||||
false /* defaultNetwork */, TelephonyManager.NETWORK_TYPE_UMTS)
|
||||
assertFalse(netIdent2.getMetered())
|
||||
|
||||
// Verify network is not metered because it has NET_CAPABILITY_TEMPORARILY_NOT_METERED
|
||||
// capability .
|
||||
val capsTempNotMetered = NetworkCapabilities().apply {
|
||||
setCapability(NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED, true)
|
||||
}
|
||||
val netIdent3 = NetworkIdentity.buildNetworkIdentity(mockContext,
|
||||
buildMobileNetworkStateSnapshot(capsTempNotMetered, TEST_IMSI),
|
||||
false /* defaultNetwork */, TelephonyManager.NETWORK_TYPE_UMTS)
|
||||
assertFalse(netIdent3.getMetered())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user