Merge changes from topics "ms56-historybuilder", "ms65.3"
* changes: [MS56.2] Add unit test for NetworkStatsHistory#Builder [MS65.4] Address comments at aosp/1954383
This commit is contained in:
@@ -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<IllegalArgumentException> {
|
||||
NetworkIdentity.Builder()
|
||||
.setType(TYPE_ETHERNET)
|
||||
.setWifiNetworkKey(TEST_WIFI_KEY)
|
||||
.build()
|
||||
}
|
||||
|
||||
// Assert non-mobile can't have ratType.
|
||||
assertFailsWith<IllegalArgumentException> {
|
||||
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<IllegalArgumentException> {
|
||||
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<IllegalArgumentException> {
|
||||
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<IllegalArgumentException> {
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,6 +56,7 @@ import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
@RunWith(DevSdkIgnoreRunner.class)
|
||||
@@ -532,6 +533,40 @@ public class NetworkStatsHistoryTest {
|
||||
assertEquals(512L + 4096L, stats.getTotalBytes());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBuilder() {
|
||||
final NetworkStatsHistory.Entry entry1 = new NetworkStatsHistory.Entry(10, 30, 40,
|
||||
4, 50, 5, 60);
|
||||
final NetworkStatsHistory.Entry entry2 = new NetworkStatsHistory.Entry(30, 15, 3,
|
||||
41, 7, 1, 0);
|
||||
final NetworkStatsHistory.Entry entry3 = new NetworkStatsHistory.Entry(7, 301, 11,
|
||||
14, 31, 2, 80);
|
||||
|
||||
final NetworkStatsHistory statsEmpty = new NetworkStatsHistory
|
||||
.Builder(HOUR_IN_MILLIS, 10).build();
|
||||
assertEquals(0, statsEmpty.getEntries().size());
|
||||
assertEquals(HOUR_IN_MILLIS, statsEmpty.getBucketDuration());
|
||||
|
||||
NetworkStatsHistory statsSingle = new NetworkStatsHistory
|
||||
.Builder(HOUR_IN_MILLIS, 8)
|
||||
.addEntry(entry1)
|
||||
.build();
|
||||
assertEquals(1, statsSingle.getEntries().size());
|
||||
assertEquals(HOUR_IN_MILLIS, statsSingle.getBucketDuration());
|
||||
assertEquals(entry1, statsSingle.getEntries().get(0));
|
||||
|
||||
NetworkStatsHistory statsMultiple = new NetworkStatsHistory
|
||||
.Builder(SECOND_IN_MILLIS, 0)
|
||||
.addEntry(entry1).addEntry(entry2).addEntry(entry3)
|
||||
.build();
|
||||
final List<NetworkStatsHistory.Entry> entries = statsMultiple.getEntries();
|
||||
assertEquals(3, entries.size());
|
||||
assertEquals(SECOND_IN_MILLIS, statsMultiple.getBucketDuration());
|
||||
assertEquals(entry1, entries.get(0));
|
||||
assertEquals(entry2, entries.get(1));
|
||||
assertEquals(entry3, entries.get(2));
|
||||
}
|
||||
|
||||
private static void assertIndexBeforeAfter(
|
||||
NetworkStatsHistory stats, int before, int after, long time) {
|
||||
assertEquals("unexpected before", before, stats.getIndexBefore(time));
|
||||
|
||||
Reference in New Issue
Block a user