Add example to PermissionEnforcer javadoc

Include an example on how to mock the enforcer when using Mockito.

Test: n/a
Change-Id: Ib7572dd8b4778f752f7e642c5229230ce4254c1a
This commit is contained in:
Thiébaud Weksteen
2023-05-08 19:10:33 +10:00
parent c208bd1f0b
commit 57a8bcf130

View File

@@ -34,6 +34,38 @@ import android.permission.PermissionCheckerManager;
* PermissionEnforcer to validate the permissions. The methods available are
* purposely similar to the AIDL annotation syntax.
*
* <p>The constructor of the Stub generated by AIDL expects a
* PermissionEnforcer. It can be based on the current Context. For example:
*
* <pre>{@code
* class MyFoo extends Foo.Stub {
* MyFoo(Context context) {
* super(PermissionEnforcer.fromContext(context));
* }
*
* @Override
* @EnforcePermission(android.Manifest.permission.INTERNET)
* public MyMethod() {
* MyMethod_enforcePermission();
* }
* }
* }</pre>
*
* <p>A {@link android.os.test.FakePermissionEnforcer} is available for unit
* testing. It can be attached to a mocked Context using:
* <pre>{@code
* @Mock private Context mContext;
*
* @Before
* public setUp() {
* fakeEnforcer = new FakePermissionEnforcer();
* fakeEnforcer.grant(android.Manifest.permission.INTERNET);
*
* doReturn(fakeEnforcer).when(mContext).getSystemService(
eq(Context.PERMISSION_ENFORCER_SERVICE));
* }
* }</pre>
*
* @see android.permission.PermissionManager
*
* @hide