diff options
Diffstat (limited to 'tests/net/common/java')
3 files changed, 110 insertions, 61 deletions
diff --git a/tests/net/common/java/android/net/LinkAddressTest.java b/tests/net/common/java/android/net/LinkAddressTest.java index b2e573b6c74b..06c6301d66f3 100644 --- a/tests/net/common/java/android/net/LinkAddressTest.java +++ b/tests/net/common/java/android/net/LinkAddressTest.java @@ -38,6 +38,8 @@ import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import android.os.SystemClock; + import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; @@ -316,9 +318,76 @@ public class LinkAddressTest { l = new LinkAddress(V6_ADDRESS, 64, 123, 456); assertParcelingIsLossless(l); + l = new LinkAddress(V6_ADDRESS, 64, 123, 456, + 1L, 3600000L); + assertParcelingIsLossless(l); l = new LinkAddress(V4 + "/28", IFA_F_PERMANENT, RT_SCOPE_LINK); - assertParcelSane(l, 4); + assertParcelSane(l, 6); + } + + @Test + public void testDeprecationTime() { + try { + new LinkAddress(V6_ADDRESS, 64, 0, 456, + LinkAddress.LIFETIME_UNKNOWN, 100000L); + fail("Only one time provided should cause exception"); + } catch (IllegalArgumentException expected) { } + + try { + new LinkAddress(V6_ADDRESS, 64, 0, 456, + 200000L, 100000L); + fail("deprecation time later than expiration time should cause exception"); + } catch (IllegalArgumentException expected) { } + + try { + new LinkAddress(V6_ADDRESS, 64, 0, 456, + -2, 100000L); + fail("negative deprecation time should cause exception"); + } catch (IllegalArgumentException expected) { } + } + + @Test + public void testExpirationTime() { + try { + new LinkAddress(V6_ADDRESS, 64, 0, 456, + 200000L, LinkAddress.LIFETIME_UNKNOWN); + fail("Only one time provided should cause exception"); + } catch (IllegalArgumentException expected) { } + + try { + new LinkAddress(V6_ADDRESS, 64, 0, 456, + 100000L, -2); + fail("negative expiration time should cause exception"); + } catch (IllegalArgumentException expected) { } + } + + @Test + public void testGetFlags() { + LinkAddress l = new LinkAddress(V6_ADDRESS, 64, 123, RT_SCOPE_HOST); + assertEquals(123, l.getFlags()); + + // Test if deprecated bit was added/remove automatically based on the provided deprecation + // time + l = new LinkAddress(V6_ADDRESS, 64, 0, RT_SCOPE_HOST, + 1L, LinkAddress.LIFETIME_PERMANENT); + // Check if the flag is added automatically. + assertTrue((l.getFlags() & IFA_F_DEPRECATED) != 0); + + l = new LinkAddress(V6_ADDRESS, 64, IFA_F_DEPRECATED, RT_SCOPE_HOST, + SystemClock.elapsedRealtime() + 100000L, LinkAddress.LIFETIME_PERMANENT); + // Check if the flag is removed automatically. + assertTrue((l.getFlags() & IFA_F_DEPRECATED) == 0); + + l = new LinkAddress(V6_ADDRESS, 64, IFA_F_DEPRECATED, RT_SCOPE_HOST, + LinkAddress.LIFETIME_PERMANENT, LinkAddress.LIFETIME_PERMANENT); + // Check if the permanent flag is added. + assertTrue((l.getFlags() & IFA_F_PERMANENT) != 0); + + l = new LinkAddress(V6_ADDRESS, 64, IFA_F_PERMANENT, RT_SCOPE_HOST, + 1000L, SystemClock.elapsedRealtime() + 100000L); + // Check if the permanent flag is removed + assertTrue((l.getFlags() & IFA_F_PERMANENT) == 0); } private void assertGlobalPreferred(LinkAddress l, String msg) { @@ -389,5 +458,12 @@ public class LinkAddressTest { (IFA_F_TEMPORARY|IFA_F_TENTATIVE|IFA_F_OPTIMISTIC), RT_SCOPE_UNIVERSE); assertGlobalPreferred(l, "v6,global,tempaddr+optimistic"); + + l = new LinkAddress(V6_ADDRESS, 64, IFA_F_DEPRECATED, + RT_SCOPE_UNIVERSE, SystemClock.elapsedRealtime() + 100000, + SystemClock.elapsedRealtime() + 200000); + // Although the deprecated bit is set, but the deprecation time is in the future, test + // if the flag is removed automatically. + assertGlobalPreferred(l, "v6,global,tempaddr+deprecated in the future"); } } diff --git a/tests/net/common/java/android/net/NetworkCapabilitiesTest.java b/tests/net/common/java/android/net/NetworkCapabilitiesTest.java index 15691127cab7..3e4f3d818840 100644 --- a/tests/net/common/java/android/net/NetworkCapabilitiesTest.java +++ b/tests/net/common/java/android/net/NetworkCapabilitiesTest.java @@ -269,9 +269,10 @@ public class NetworkCapabilitiesTest { .setUids(uids) .addCapability(NET_CAPABILITY_EIMS) .addCapability(NET_CAPABILITY_NOT_METERED); + netCap.setOwnerUid(123); assertParcelingIsLossless(netCap); netCap.setSSID(TEST_SSID); - assertParcelSane(netCap, 12); + assertParcelSane(netCap, 13); } @Test diff --git a/tests/net/common/java/android/net/NetworkScoreTest.kt b/tests/net/common/java/android/net/NetworkScoreTest.kt index 30836b7c9be1..a63d58d5a0f6 100644 --- a/tests/net/common/java/android/net/NetworkScoreTest.kt +++ b/tests/net/common/java/android/net/NetworkScoreTest.kt @@ -16,7 +16,7 @@ package android.net -import android.os.Parcelable +import android.net.NetworkScore.Metrics.BANDWIDTH_UNKNOWN import androidx.test.filters.SmallTest import androidx.test.runner.AndroidJUnit4 import com.android.testutils.assertParcelSane @@ -28,77 +28,49 @@ import org.junit.Test import org.junit.runner.RunWith private const val TEST_SCORE = 80 -private const val KEY_DEFAULT_CAPABILITIES = "DEFAULT_CAPABILITIES" @RunWith(AndroidJUnit4::class) @SmallTest class NetworkScoreTest { @Test fun testParcelNetworkScore() { - val networkScore = NetworkScore() val defaultCap = NetworkCapabilities() - networkScore.putExtension(KEY_DEFAULT_CAPABILITIES, defaultCap) - assertEquals(defaultCap, networkScore.getExtension(KEY_DEFAULT_CAPABILITIES)) - networkScore.putIntExtension(NetworkScore.LEGACY_SCORE, TEST_SCORE) - assertEquals(TEST_SCORE, networkScore.getIntExtension(NetworkScore.LEGACY_SCORE)) - assertParcelSane(networkScore, 1) - } + val builder = NetworkScore.Builder().setLegacyScore(TEST_SCORE) + assertEquals(TEST_SCORE, builder.build().getLegacyScore()) + assertParcelSane(builder.build(), 7) - @Test - fun testNullKeyAndValue() { - val networkScore = NetworkScore() - val defaultCap = NetworkCapabilities() - networkScore.putIntExtension(null, TEST_SCORE) - assertEquals(TEST_SCORE, networkScore.getIntExtension(null)) - networkScore.putExtension(null, defaultCap) - assertEquals(defaultCap, networkScore.getExtension(null)) - networkScore.putExtension(null, null) - val result: Parcelable? = networkScore.getExtension(null) - assertEquals(null, result) - } + builder.addPolicy(NetworkScore.POLICY_IGNORE_ON_WIFI) + .addPolicy(NetworkScore.POLICY_DEFAULT_SUBSCRIPTION) + .setLinkLayerMetrics(NetworkScore.Metrics(44 /* latency */, + 380 /* downlinkBandwidth */, BANDWIDTH_UNKNOWN /* uplinkBandwidth */)) + .setEndToEndMetrics(NetworkScore.Metrics(11 /* latency */, + BANDWIDTH_UNKNOWN /* downlinkBandwidth */, 100_000 /* uplinkBandwidth */)) + .setRange(NetworkScore.RANGE_MEDIUM) + assertParcelSane(builder.build(), 7) + builder.clearPolicy(NetworkScore.POLICY_IGNORE_ON_WIFI) + val ns = builder.build() + assertParcelSane(ns, 7) + assertFalse(ns.hasPolicy(NetworkScore.POLICY_IGNORE_ON_WIFI)) + assertTrue(ns.hasPolicy(NetworkScore.POLICY_DEFAULT_SUBSCRIPTION)) - @Test - fun testRemoveExtension() { - val networkScore = NetworkScore() - val defaultCap = NetworkCapabilities() - networkScore.putExtension(KEY_DEFAULT_CAPABILITIES, defaultCap) - networkScore.putIntExtension(NetworkScore.LEGACY_SCORE, TEST_SCORE) - assertEquals(defaultCap, networkScore.getExtension(KEY_DEFAULT_CAPABILITIES)) - assertEquals(TEST_SCORE, networkScore.getIntExtension(NetworkScore.LEGACY_SCORE)) - networkScore.removeExtension(KEY_DEFAULT_CAPABILITIES) - networkScore.removeExtension(NetworkScore.LEGACY_SCORE) - val result: Parcelable? = networkScore.getExtension(KEY_DEFAULT_CAPABILITIES) - assertEquals(null, result) - assertEquals(0, networkScore.getIntExtension(NetworkScore.LEGACY_SCORE)) + val exitingNs = ns.withExiting(true) + assertNotEquals(ns.isExiting, exitingNs.isExiting) + assertNotEquals(ns, exitingNs) + assertParcelSane(exitingNs, 7) } @Test fun testEqualsNetworkScore() { - val ns1 = NetworkScore() - val ns2 = NetworkScore() - assertTrue(ns1.equals(ns2)) - assertEquals(ns1.hashCode(), ns2.hashCode()) - - ns1.putIntExtension(NetworkScore.LEGACY_SCORE, TEST_SCORE) - assertFalse(ns1.equals(ns2)) - assertNotEquals(ns1.hashCode(), ns2.hashCode()) - ns2.putIntExtension(NetworkScore.LEGACY_SCORE, TEST_SCORE) - assertTrue(ns1.equals(ns2)) - assertEquals(ns1.hashCode(), ns2.hashCode()) - - val defaultCap = NetworkCapabilities() - ns1.putExtension(KEY_DEFAULT_CAPABILITIES, defaultCap) - assertFalse(ns1.equals(ns2)) - assertNotEquals(ns1.hashCode(), ns2.hashCode()) - ns2.putExtension(KEY_DEFAULT_CAPABILITIES, defaultCap) - assertTrue(ns1.equals(ns2)) - assertEquals(ns1.hashCode(), ns2.hashCode()) + val builder1 = NetworkScore.Builder() + val builder2 = NetworkScore.Builder() + assertTrue(builder1.build().equals(builder2.build())) + assertEquals(builder1.build().hashCode(), builder2.build().hashCode()) - ns1.putIntExtension(null, 10) - assertFalse(ns1.equals(ns2)) - assertNotEquals(ns1.hashCode(), ns2.hashCode()) - ns2.putIntExtension(null, 10) - assertTrue(ns1.equals(ns2)) - assertEquals(ns1.hashCode(), ns2.hashCode()) + builder1.setLegacyScore(TEST_SCORE) + assertFalse(builder1.build().equals(builder2.build())) + assertNotEquals(builder1.hashCode(), builder2.hashCode()) + builder2.setLegacyScore(TEST_SCORE) + assertTrue(builder1.build().equals(builder2.build())) + assertEquals(builder1.build().hashCode(), builder2.build().hashCode()) } } |