diff options
Diffstat (limited to 'camera/camera-camera2/src/test/java/androidx')
4 files changed, 66 insertions, 12 deletions
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/Camera2CameraInfoTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/Camera2CameraInfoTest.java index 56849432570..b1b89c545b1 100644 --- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/Camera2CameraInfoTest.java +++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/Camera2CameraInfoTest.java @@ -18,6 +18,9 @@ package androidx.camera.camera2.impl; import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + import android.content.Context; import android.hardware.camera2.CameraCharacteristics; import android.hardware.camera2.CameraManager; @@ -27,6 +30,7 @@ import android.view.Surface; import androidx.camera.core.CameraInfoInternal; import androidx.camera.core.CameraInfoUnavailableException; import androidx.camera.core.LensFacing; +import androidx.lifecycle.MutableLiveData; import androidx.test.core.app.ApplicationProvider; import androidx.test.filters.SmallTest; @@ -73,13 +77,15 @@ public class Camera2CameraInfoTest { @Test public void canCreateCameraInfo() throws CameraInfoUnavailableException { - CameraInfoInternal cameraInfoInternal = new Camera2CameraInfo(mCameraManager, CAMERA0_ID); + CameraInfoInternal cameraInfoInternal = new Camera2CameraInfo(mCameraManager, CAMERA0_ID, + mock(ZoomControl.class)); assertThat(cameraInfoInternal).isNotNull(); } @Test public void cameraInfo_canReturnSensorOrientation() throws CameraInfoUnavailableException { - CameraInfoInternal cameraInfoInternal = new Camera2CameraInfo(mCameraManager, CAMERA0_ID); + CameraInfoInternal cameraInfoInternal = new Camera2CameraInfo(mCameraManager, CAMERA0_ID, + mock(ZoomControl.class)); assertThat(cameraInfoInternal.getSensorRotationDegrees()).isEqualTo( CAMERA0_SENSOR_ORIENTATION); } @@ -87,7 +93,8 @@ public class Camera2CameraInfoTest { @Test public void cameraInfo_canCalculateCorrectRelativeRotation_forBackCamera() throws CameraInfoUnavailableException { - CameraInfoInternal cameraInfoInternal = new Camera2CameraInfo(mCameraManager, CAMERA0_ID); + CameraInfoInternal cameraInfoInternal = new Camera2CameraInfo(mCameraManager, CAMERA0_ID, + mock(ZoomControl.class)); // Note: these numbers depend on the camera being a back-facing camera. assertThat(cameraInfoInternal.getSensorRotationDegrees(Surface.ROTATION_0)) @@ -103,7 +110,8 @@ public class Camera2CameraInfoTest { @Test public void cameraInfo_canCalculateCorrectRelativeRotation_forFrontCamera() throws CameraInfoUnavailableException { - CameraInfoInternal cameraInfoInternal = new Camera2CameraInfo(mCameraManager, CAMERA1_ID); + CameraInfoInternal cameraInfoInternal = new Camera2CameraInfo(mCameraManager, CAMERA1_ID, + mock(ZoomControl.class)); // Note: these numbers depend on the camera being a front-facing camera. assertThat(cameraInfoInternal.getSensorRotationDegrees(Surface.ROTATION_0)) @@ -118,14 +126,16 @@ public class Camera2CameraInfoTest { @Test public void cameraInfo_canReturnLensFacing() throws CameraInfoUnavailableException { - CameraInfoInternal cameraInfoInternal = new Camera2CameraInfo(mCameraManager, CAMERA0_ID); + CameraInfoInternal cameraInfoInternal = new Camera2CameraInfo(mCameraManager, CAMERA0_ID, + mock(ZoomControl.class)); assertThat(cameraInfoInternal.getLensFacing()).isEqualTo(CAMERA0_LENS_FACING_ENUM); } @Test public void cameraInfo_canReturnFlashAvailable_forBackCamera() throws CameraInfoUnavailableException { - CameraInfoInternal cameraInfoInternal = new Camera2CameraInfo(mCameraManager, CAMERA0_ID); + CameraInfoInternal cameraInfoInternal = new Camera2CameraInfo(mCameraManager, CAMERA0_ID, + mock(ZoomControl.class)); assertThat(cameraInfoInternal.isFlashAvailable().getValue().booleanValue()).isEqualTo( CAMERA0_FLASH_INFO_BOOLEAN); } @@ -133,11 +143,52 @@ public class Camera2CameraInfoTest { @Test public void cameraInfo_canReturnFlashAvailable_forFrontCamera() throws CameraInfoUnavailableException { - CameraInfoInternal cameraInfoInternal = new Camera2CameraInfo(mCameraManager, CAMERA1_ID); + CameraInfoInternal cameraInfoInternal = new Camera2CameraInfo(mCameraManager, CAMERA1_ID, + mock(ZoomControl.class)); assertThat(cameraInfoInternal.isFlashAvailable().getValue().booleanValue()).isEqualTo( CAMERA1_FLASH_INFO_BOOLEAN); } + // zoom related tests just ensure it uses ZoomControl to get the value + // Full tests are performed at ZoomControlTest / ZoomControlRoboTest. + @Test + public void cameraInfo_getZoomRatio_valueIsCorrect() throws CameraInfoUnavailableException { + ZoomControl zoomControl = mock(ZoomControl.class); + CameraInfoInternal cameraInfo = new Camera2CameraInfo(mCameraManager, CAMERA0_ID, + zoomControl); + when(zoomControl.getZoomRatio()).thenReturn(new MutableLiveData<>(3.0f)); + assertThat(cameraInfo.getZoomRatio().getValue()).isEqualTo(3.0f); + } + + @Test + public void cameraInfo_getZoomPercentage_valueIsCorrect() + throws CameraInfoUnavailableException { + ZoomControl zoomControl = mock(ZoomControl.class); + CameraInfoInternal cameraInfo = new Camera2CameraInfo(mCameraManager, CAMERA0_ID, + zoomControl); + when(zoomControl.getZoomPercentage()).thenReturn(new MutableLiveData<>(0.2f)); + assertThat(cameraInfo.getZoomPercentage().getValue()).isEqualTo(0.2f); + } + + @Test + public void cameraInfo_getMaxZoomRatio_valueIsCorrect() throws CameraInfoUnavailableException { + ZoomControl zoomControl = mock(ZoomControl.class); + CameraInfoInternal cameraInfo = new Camera2CameraInfo(mCameraManager, CAMERA0_ID, + zoomControl); + when(zoomControl.getMaxZoomRatio()).thenReturn(new MutableLiveData<>(8.0f)); + assertThat(cameraInfo.getMaxZoomRatio().getValue()).isEqualTo(8.0f); + } + + @Test + public void cameraInfo_getMinZoomRatio_valueIsCorrect() throws CameraInfoUnavailableException { + ZoomControl zoomControl = mock(ZoomControl.class); + CameraInfoInternal cameraInfo = new Camera2CameraInfo(mCameraManager, CAMERA0_ID, + zoomControl); + when(zoomControl.getMinZoomRatio()).thenReturn(new MutableLiveData<>(1.0f)); + assertThat(cameraInfo.getMinZoomRatio().getValue()).isEqualTo(1.0f); + } + + private void initCameras() { // **** Camera 0 characteristics ****// CameraCharacteristics characteristics0 = diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/Camera2DeviceSurfaceManagerTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/Camera2DeviceSurfaceManagerTest.java index 2c461e71566..cfcc36052c9 100644 --- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/Camera2DeviceSurfaceManagerTest.java +++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/Camera2DeviceSurfaceManagerTest.java @@ -23,6 +23,7 @@ import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertTrue; import static org.mockito.Matchers.anyInt; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import android.content.Context; @@ -580,7 +581,7 @@ public final class Camera2DeviceSurfaceManagerTest { LensFacing lensFacingEnum = CameraUtil.getLensFacingEnumFromInt(lensFacing); mCameraFactory.insertCamera(lensFacingEnum, cameraId, () -> new FakeCamera(cameraId, null, - new Camera2CameraInfo(cameraManager, cameraId))); + new Camera2CameraInfo(cameraManager, cameraId, mock(ZoomControl.class)))); } private void initCameraX() { diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/FocusMeteringControlTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/FocusMeteringControlTest.java index 0b4ede7efd1..43e06a2e358 100644 --- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/FocusMeteringControlTest.java +++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/FocusMeteringControlTest.java @@ -121,6 +121,7 @@ public class FocusMeteringControlTest { public void setUp() throws CameraAccessException { initCameras(); mFocusMeteringControl = spy(initFocusMeteringControl(CAMERA0_ID)); + mFocusMeteringControl.setActive(true); } @After @@ -149,9 +150,10 @@ public class FocusMeteringControlTest { mCameraExecutor, updateCallback)); - - return new FocusMeteringControl(mCamera2CameraControl, + FocusMeteringControl focusMeteringControl = new FocusMeteringControl(mCamera2CameraControl, CameraXExecutors.mainThreadExecutor(), mCameraExecutor); + focusMeteringControl.setActive(true); + return focusMeteringControl; } private void initCameras() { @@ -896,5 +898,4 @@ public class FocusMeteringControlTest { mFocusMeteringControl.cancelFocusAndMetering(); verifyAfMode(CaptureResult.CONTROL_AF_MODE_CONTINUOUS_PICTURE); } - } diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/SupportedSurfaceCombinationTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/SupportedSurfaceCombinationTest.java index c5ed8d5a29b..c9bce8128a0 100644 --- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/SupportedSurfaceCombinationTest.java +++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/SupportedSurfaceCombinationTest.java @@ -23,6 +23,7 @@ import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertTrue; import static org.mockito.Matchers.anyInt; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import android.content.Context; @@ -1122,7 +1123,7 @@ public final class SupportedSurfaceCombinationTest { LensFacing lensFacingEnum = CameraUtil.getLensFacingEnumFromInt(lensFacing); mCameraFactory.insertCamera(lensFacingEnum, cameraId, () -> new FakeCamera(cameraId, null, - new Camera2CameraInfo(cameraManager, cameraId))); + new Camera2CameraInfo(cameraManager, cameraId, mock(ZoomControl.class)))); } private void initCameraX() { |