From ad9c644b6b2cceee11d430d29bf37ba739cad96b Mon Sep 17 00:00:00 2001 From: Lorenzo Colitti Date: Tue, 18 May 2021 01:20:36 +0900 Subject: [PATCH] Add a CTS tests for setIncludeOtherUidNetworks. Bug: 187921303 Test: test-only change Ignore-AOSP-First: avoid merge conflicts Change-Id: I8e259041dad3fb9c38202cbb12b344de15f4101f --- .../android/net/cts/NetworkRequestTest.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tests/cts/net/src/android/net/cts/NetworkRequestTest.java b/tests/cts/net/src/android/net/cts/NetworkRequestTest.java index 1a97566cd7..9ad0d27ffe 100644 --- a/tests/cts/net/src/android/net/cts/NetworkRequestTest.java +++ b/tests/cts/net/src/android/net/cts/NetworkRequestTest.java @@ -32,6 +32,7 @@ import static junit.framework.Assert.fail; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assume.assumeTrue; @@ -309,6 +310,43 @@ public class NetworkRequestTest { request.networkCapabilities.satisfiedByNetworkCapabilities(nc)); } + private static Set> uidRangesForUid(int uid) { + final Range range = new Range<>(uid, uid); + return Set.of(range); + } + + @Test + public void testSetIncludeOtherUidNetworks() throws Exception { + assumeTrue(TestUtils.shouldTestSApis()); + final NetworkRequestShim shim = NetworkRequestShimImpl.newInstance(); + + final NetworkRequest.Builder builder = new NetworkRequest.Builder(); + // NetworkRequests have NET_CAPABILITY_NOT_VCN_MANAGED by default. + builder.removeCapability(ConstantsShim.NET_CAPABILITY_NOT_VCN_MANAGED); + shim.setIncludeOtherUidNetworks(builder, false); + final NetworkRequest request = builder.build(); + + final NetworkRequest.Builder otherUidsBuilder = new NetworkRequest.Builder(); + otherUidsBuilder.removeCapability(ConstantsShim.NET_CAPABILITY_NOT_VCN_MANAGED); + shim.setIncludeOtherUidNetworks(otherUidsBuilder, true); + final NetworkRequest otherUidsRequest = otherUidsBuilder.build(); + + assertNotEquals(Process.SYSTEM_UID, Process.myUid()); + final NetworkCapabilities ncWithMyUid = new NetworkCapabilities() + .setUids(uidRangesForUid(Process.myUid())); + final NetworkCapabilities ncWithOtherUid = new NetworkCapabilities() + .setUids(uidRangesForUid(Process.SYSTEM_UID)); + + assertTrue(request + " should be satisfied by " + ncWithMyUid, + request.canBeSatisfiedBy(ncWithMyUid)); + assertTrue(otherUidsRequest + " should be satisfied by " + ncWithMyUid, + otherUidsRequest.canBeSatisfiedBy(ncWithMyUid)); + assertFalse(request + " should not be satisfied by " + ncWithOtherUid, + request.canBeSatisfiedBy(ncWithOtherUid)); + assertTrue(otherUidsRequest + " should be satisfied by " + ncWithOtherUid, + otherUidsRequest.canBeSatisfiedBy(ncWithOtherUid)); + } + @Test @IgnoreUpTo(Build.VERSION_CODES.Q) public void testRequestorUid() { final NetworkCapabilities nc = new NetworkCapabilities();