Merge "Add a CTS tests for setIncludeOtherUidNetworks." into sc-dev

This commit is contained in:
Lorenzo Colitti
2021-05-18 06:47:43 +00:00
committed by Android (Google) Code Review

View File

@@ -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<Range<Integer>> uidRangesForUid(int uid) {
final Range<Integer> 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();