diff options
| author | Benedict Wong <benedictwong@google.com> | 2021-07-09 00:13:45 -0700 |
|---|---|---|
| committer | Benedict Wong <benedictwong@google.com> | 2022-03-18 21:52:57 +0000 |
| commit | a5604ea50f658e46cf99f2d7c03e228bdffa1a13 (patch) | |
| tree | c6dd64bfc089febed2f8d4feb73cbb5a4c521c99 /tests/unit/java/com/android/server/ConnectivityServiceTest.java | |
| parent | b643f2a35675b86bd6cb00a309d26fe00ea35569 (diff) | |
Allow sending of Administrator UIDs for *NETWORK_STACK
This change allows callers with the NETWORK_STACK or
PERMISSION_NETWORK_STACK to receive administrator UIDs. This will be
used by the VCN to ensure that administrator UIDs are accurately
populated, ensuring that the ConnectivityDiagnostics are triggered for
the VCN.
Bug: 193204385
Test: atest ConnectivityServiceTest
Change-Id: I3ecfbef6847dcc78adac05d0229719c97e3a220c
Diffstat (limited to 'tests/unit/java/com/android/server/ConnectivityServiceTest.java')
| -rw-r--r-- | tests/unit/java/com/android/server/ConnectivityServiceTest.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/unit/java/com/android/server/ConnectivityServiceTest.java b/tests/unit/java/com/android/server/ConnectivityServiceTest.java index 6eec2eb688..025b28c71d 100644 --- a/tests/unit/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/unit/java/com/android/server/ConnectivityServiceTest.java @@ -7082,6 +7082,36 @@ public class ConnectivityServiceTest { } @Test + public void testAdminUidsRedacted() throws Exception { + final int[] adminUids = new int[] {Process.myUid() + 1}; + final NetworkCapabilities ncTemplate = new NetworkCapabilities(); + ncTemplate.setAdministratorUids(adminUids); + mCellNetworkAgent = + new TestNetworkAgentWrapper(TRANSPORT_CELLULAR, new LinkProperties(), ncTemplate); + mCellNetworkAgent.connect(false /* validated */); + + // Verify case where caller has permission + mServiceContext.setPermission( + NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, PERMISSION_GRANTED); + TestNetworkCallback callback = new TestNetworkCallback(); + mCm.registerDefaultNetworkCallback(callback); + callback.expectCallback(CallbackEntry.AVAILABLE, mCellNetworkAgent); + callback.expectCapabilitiesThat( + mCellNetworkAgent, nc -> Arrays.equals(adminUids, nc.getAdministratorUids())); + mCm.unregisterNetworkCallback(callback); + + // Verify case where caller does NOT have permission + mServiceContext.setPermission( + NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, PERMISSION_DENIED); + mServiceContext.setPermission(NETWORK_STACK, PERMISSION_DENIED); + callback = new TestNetworkCallback(); + mCm.registerDefaultNetworkCallback(callback); + callback.expectCallback(CallbackEntry.AVAILABLE, mCellNetworkAgent); + callback.expectCapabilitiesThat( + mCellNetworkAgent, nc -> nc.getAdministratorUids().length == 0); + } + + @Test public void testNonVpnUnderlyingNetworks() throws Exception { // Ensure wifi and cellular are not torn down. for (int transport : new int[]{TRANSPORT_CELLULAR, TRANSPORT_WIFI}) { |
