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);