diff options
| author | Chalard Jean <jchalard@google.com> | 2021-12-13 22:53:51 +0900 |
|---|---|---|
| committer | Chalard Jean <jchalard@google.com> | 2022-01-31 17:04:58 +0900 |
| commit | 9a30acf7442b8db0af4578e2aafdba38d85947c5 (patch) | |
| tree | 076a782c0ef678be44a8e5672e8c505e48a15979 /tests/unit/java/com/android/server/ConnectivityServiceTest.java | |
| parent | 15228575645bc47046dc0d89e9767f5e61d5a954 (diff) | |
Add accessUids to NetworkCapabilities.
For now, all entry points reject this. Followup changes
will allow the supported use cases.
Test: new unit tests and CTS for this in this patch
Change-Id: I7262811a2e46336d3bb63c80886fc0578a36da94
Diffstat (limited to 'tests/unit/java/com/android/server/ConnectivityServiceTest.java')
| -rw-r--r-- | tests/unit/java/com/android/server/ConnectivityServiceTest.java | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/tests/unit/java/com/android/server/ConnectivityServiceTest.java b/tests/unit/java/com/android/server/ConnectivityServiceTest.java index 8f67e485a7..f7ffd7967e 100644 --- a/tests/unit/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/unit/java/com/android/server/ConnectivityServiceTest.java @@ -3813,14 +3813,14 @@ public class ConnectivityServiceTest { public void testNoMutableNetworkRequests() throws Exception { final PendingIntent pendingIntent = PendingIntent.getBroadcast( mContext, 0 /* requestCode */, new Intent("a"), FLAG_IMMUTABLE); - NetworkRequest request1 = new NetworkRequest.Builder() + final NetworkRequest request1 = new NetworkRequest.Builder() .addCapability(NET_CAPABILITY_VALIDATED) .build(); - NetworkRequest request2 = new NetworkRequest.Builder() + final NetworkRequest request2 = new NetworkRequest.Builder() .addCapability(NET_CAPABILITY_CAPTIVE_PORTAL) .build(); - Class<IllegalArgumentException> expected = IllegalArgumentException.class; + final Class<IllegalArgumentException> expected = IllegalArgumentException.class; assertThrows(expected, () -> mCm.requestNetwork(request1, new NetworkCallback())); assertThrows(expected, () -> mCm.requestNetwork(request1, pendingIntent)); assertThrows(expected, () -> mCm.requestNetwork(request2, new NetworkCallback())); @@ -3828,6 +3828,36 @@ public class ConnectivityServiceTest { } @Test + public void testNoAccessUidsInNetworkRequests() throws Exception { + final PendingIntent pendingIntent = PendingIntent.getBroadcast( + mContext, 0 /* requestCode */, new Intent("a"), FLAG_IMMUTABLE); + final NetworkRequest r = new NetworkRequest.Builder().build(); + final ArraySet<Integer> accessUids = new ArraySet<>(); + accessUids.add(6); + accessUids.add(9); + r.networkCapabilities.setAccessUids(accessUids); + + final Handler handler = new Handler(ConnectivityThread.getInstanceLooper()); + final NetworkCallback cb = new NetworkCallback(); + + final Class<IllegalArgumentException> expected = IllegalArgumentException.class; + assertThrows(expected, () -> mCm.requestNetwork(r, cb)); + assertThrows(expected, () -> mCm.requestNetwork(r, pendingIntent)); + assertThrows(expected, () -> mCm.registerNetworkCallback(r, cb)); + assertThrows(expected, () -> mCm.registerNetworkCallback(r, cb, handler)); + assertThrows(expected, () -> mCm.registerNetworkCallback(r, pendingIntent)); + assertThrows(expected, () -> mCm.registerBestMatchingNetworkCallback(r, cb, handler)); + + // Make sure that resetting the access UIDs to the empty set will allow calling + // requestNetwork and registerNetworkCallback. + r.networkCapabilities.setAccessUids(Collections.emptySet()); + mCm.requestNetwork(r, cb); + mCm.unregisterNetworkCallback(cb); + mCm.registerNetworkCallback(r, cb); + mCm.unregisterNetworkCallback(cb); + } + + @Test public void testMMSonWiFi() throws Exception { // Test bringing up cellular without MMS NetworkRequest gets reaped mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR); |
