Add CTS to test invalid camera parameters.
bug:3104514
Change-Id: I6e88ab7fa9ca6fc62f34816ef0eecfb381f4ca22
diff --git a/tests/tests/hardware/src/android/hardware/cts/CameraTest.java b/tests/tests/hardware/src/android/hardware/cts/CameraTest.java
index 694dc62..c7032f8 100644
--- a/tests/tests/hardware/src/android/hardware/cts/CameraTest.java
+++ b/tests/tests/hardware/src/android/hardware/cts/CameraTest.java
@@ -1810,4 +1810,58 @@
}
terminateMessageLooper();
}
+
+ @UiThreadTest
+ public void testInvalidParameters() throws Exception {
+ int nCameras = Camera.getNumberOfCameras();
+ for (int id = 0; id < nCameras; id++) {
+ Log.v(TAG, "Camera id=" + id);
+ testInvalidParametersByCamera(id);
+ }
+ }
+
+ private void testInvalidParametersByCamera(int cameraId) throws Exception {
+ initializeMessageLooper(cameraId);
+ // Test flash mode.
+ Parameters parameters = mCamera.getParameters();
+ List<String> list = parameters.getSupportedFlashModes();
+ if (list != null && list.size() > 0) {
+ String original = parameters.getFlashMode();
+ parameters.setFlashMode("invalid");
+ try {
+ mCamera.setParameters(parameters);
+ fail("Should throw exception for invalid parameters");
+ } catch (RuntimeException e) {
+ // expected
+ }
+ parameters = mCamera.getParameters();
+ assertEquals(original, parameters.getFlashMode());
+ }
+
+ // Test focus mode.
+ String originalFocus = parameters.getFocusMode();
+ parameters.setFocusMode("invalid");
+ try {
+ mCamera.setParameters(parameters);
+ fail("Should throw exception for invalid parameters");
+ } catch (RuntimeException e) {
+ // expected
+ }
+ parameters = mCamera.getParameters();
+ assertEquals(originalFocus, parameters.getFocusMode());
+
+ // Test preview size.
+ Size originalSize = parameters.getPreviewSize();
+ parameters.setPreviewSize(-1, -1);
+ try {
+ mCamera.setParameters(parameters);
+ fail("Should throw exception for invalid parameters");
+ } catch (RuntimeException e) {
+ // expected
+ }
+ parameters = mCamera.getParameters();
+ assertEquals(originalSize, parameters.getPreviewSize());
+
+ terminateMessageLooper();
+ }
}