From 28859ee741fb7121059096b7f702431799db7645 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thi=C3=A9baud=20Weksteen?= Date: Wed, 22 Mar 2023 11:53:12 +1100 Subject: [PATCH] Use FakePermissionEnforcer for NetworkManagementServiceTest Update the test to use the new FakePermissionEnforcer class which contains the logic to verify if a permission has been artificially granted. Bug: 269684922 Test: atest FrameworksServicesTests:com.android.server.net.NetworkManagementServiceTest (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:e8a2be08ea757e59c65abe52c8edcead8bb36038) Change-Id: Ibecd45a68434834b3e2a1d35034f1986655c2910 --- .../net/NetworkManagementServiceTest.java | 31 +++++-------------- 1 file changed, 7 insertions(+), 24 deletions(-) diff --git a/services/tests/servicestests/src/com/android/server/net/NetworkManagementServiceTest.java b/services/tests/servicestests/src/com/android/server/net/NetworkManagementServiceTest.java index d9cd77d8cd7c3..af144cf49a465 100644 --- a/services/tests/servicestests/src/com/android/server/net/NetworkManagementServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/net/NetworkManagementServiceTest.java @@ -37,7 +37,6 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import android.annotation.NonNull; -import android.content.AttributionSource; import android.content.Context; import android.net.ConnectivityManager; import android.net.INetd; @@ -50,7 +49,7 @@ import android.os.IBinder; import android.os.PermissionEnforcer; import android.os.Process; import android.os.RemoteException; -import android.permission.PermissionCheckerManager; +import android.os.test.FakePermissionEnforcer; import android.platform.test.annotations.Presubmit; import android.test.suitebuilder.annotation.SmallTest; import android.util.ArrayMap; @@ -90,7 +89,6 @@ public class NetworkManagementServiceTest { private ArgumentCaptor mUnsolListenerCaptor; private final MockDependencies mDeps = new MockDependencies(); - private final MockPermissionEnforcer mPermissionEnforcer = new MockPermissionEnforcer(); private final class MockDependencies extends NetworkManagementService.Dependencies { @Override @@ -118,24 +116,6 @@ public class NetworkManagementServiceTest { } } - private static final class MockPermissionEnforcer extends PermissionEnforcer { - @Override - protected int checkPermission(@NonNull String permission, - @NonNull AttributionSource source) { - String[] granted = new String [] { - android.Manifest.permission.NETWORK_SETTINGS, - android.Manifest.permission.OBSERVE_NETWORK_POLICY, - android.Manifest.permission.SHUTDOWN - }; - for (String p : granted) { - if (p.equals(permission)) { - return PermissionCheckerManager.PERMISSION_GRANTED; - } - } - return PermissionCheckerManager.PERMISSION_HARD_DENIED; - } - } - @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); @@ -145,12 +125,15 @@ public class NetworkManagementServiceTest { eq(ConnectivityManager.class)); doReturn(mCm).when(mContext).getSystemService(eq(Context.CONNECTIVITY_SERVICE)); // The AIDL stub will use PermissionEnforcer to check permission from the caller. - // Mock the service. See MockPermissionEnforcer above. + // Mock the service and grant the expected permissions. + FakePermissionEnforcer permissionEnforcer = new FakePermissionEnforcer(); + permissionEnforcer.grant(android.Manifest.permission.NETWORK_SETTINGS); + permissionEnforcer.grant(android.Manifest.permission.OBSERVE_NETWORK_POLICY); + permissionEnforcer.grant(android.Manifest.permission.SHUTDOWN); doReturn(Context.PERMISSION_ENFORCER_SERVICE).when(mContext).getSystemServiceName( eq(PermissionEnforcer.class)); - doReturn(mPermissionEnforcer).when(mContext).getSystemService( + doReturn(permissionEnforcer).when(mContext).getSystemService( eq(Context.PERMISSION_ENFORCER_SERVICE)); - // Start the service and wait until it connects to our socket. mNMService = NetworkManagementService.create(mContext, mDeps); }