Add more camera2 API permision test
We need make sure the APIs that don't require camera permission should work
without permission.
Bug: 15680758
Change-Id: Ib3fdf4186245d8c2888681d26a6d5ee694337892
diff --git a/tests/tests/permission/src/android/permission/cts/Camera2PermissionTest.java b/tests/tests/permission/src/android/permission/cts/Camera2PermissionTest.java
index 9a28ebc..f9e19e0 100644
--- a/tests/tests/permission/src/android/permission/cts/Camera2PermissionTest.java
+++ b/tests/tests/permission/src/android/permission/cts/Camera2PermissionTest.java
@@ -93,6 +93,32 @@
}
}
+ /**
+ * Add and remove availability listeners should work without permission.
+ */
+ public void testAvailabilityListener() throws Exception {
+ DummyCameraListener availabilityListener = new DummyCameraListener();
+ // Remove a not-registered listener is a no-op.
+ mCameraManager.removeAvailabilityListener(availabilityListener);
+ mCameraManager.addAvailabilityListener(availabilityListener, mHandler);
+ mCameraManager.removeAvailabilityListener(availabilityListener);
+ mCameraManager.addAvailabilityListener(availabilityListener, mHandler);
+ mCameraManager.addAvailabilityListener(availabilityListener, mHandler);
+ mCameraManager.removeAvailabilityListener(availabilityListener);
+ // Remove a previously-added listener second time is a no-op.
+ mCameraManager.removeAvailabilityListener(availabilityListener);
+ }
+
+ private class DummyCameraListener extends CameraManager.AvailabilityListener {
+ @Override
+ public void onCameraAvailable(String cameraId) {
+ }
+
+ @Override
+ public void onCameraUnavailable(String cameraId) {
+ }
+ }
+
private void openCamera(String cameraId) throws Exception {
mCamera = (new BlockingCameraManager(mCameraManager)).openCamera(
cameraId, mCameraListener, mHandler);