From 4fb19d7faa524b8afafc3f6fbc630e112c7197ad Mon Sep 17 00:00:00 2001 From: Mattia Iavarone Date: Fri, 8 Sep 2017 19:39:29 +0200 Subject: [PATCH] Nits --- .../cameraview/AspectRatioTest.java | 18 ++++++ .../cameraview/CameraCallbacksTest.java | 1 + .../cameraview/CameraOptions1Test.java | 19 ++++++ .../cameraview/CameraUtilsTest.java | 11 +++- .../cameraview/CameraViewTest.java | 63 +++++++++++++++++++ .../otaliastudios/cameraview/AspectRatio.java | 2 +- .../otaliastudios/cameraview/SizeTest.java | 11 ++++ 7 files changed, 123 insertions(+), 2 deletions(-) diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/AspectRatioTest.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/AspectRatioTest.java index 715a95b5..f5ed70c2 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/AspectRatioTest.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/AspectRatioTest.java @@ -29,13 +29,31 @@ public class AspectRatioTest { @Test public void testEquals() { AspectRatio ratio = AspectRatio.of(50, 10); + assertFalse(ratio.equals(null)); + assertTrue(ratio.equals(ratio)); + AspectRatio ratio1 = AspectRatio.of(5, 1); assertTrue(ratio.equals(ratio1)); + AspectRatio.sCache.clear(); + AspectRatio ratio2 = AspectRatio.of(500, 100); + assertTrue(ratio.equals(ratio2)); + Size size = new Size(500, 100); assertTrue(ratio.matches(size)); } + @Test + public void testCompare() { + AspectRatio ratio1 = AspectRatio.of(10, 2); + AspectRatio ratio2 = AspectRatio.of(10, 10); + AspectRatio ratio3 = AspectRatio.of(2, 10); + assertTrue(ratio1.compareTo(ratio2) > 0); + assertTrue(ratio1.compareTo(ratio3) < 0); + assertTrue(ratio1.compareTo(ratio1) == 0); + assertNotEquals(ratio1.hashCode(), ratio2.hashCode()); + } + @Test public void testInverse() { AspectRatio ratio = AspectRatio.of(50, 10); diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraCallbacksTest.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraCallbacksTest.java index dc54aa04..8b98b70d 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraCallbacksTest.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraCallbacksTest.java @@ -75,6 +75,7 @@ public class CameraCallbacksTest extends BaseTest { } }; camera.addCameraListener(listener); + camera.addCameraListener(new CameraListener() {}); // Add another so the class is covered. callbacks = camera.mCameraCallbacks; task = new Task<>(); task.listen(); diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraOptions1Test.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraOptions1Test.java index fbf68a7a..54bc2ef8 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraOptions1Test.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraOptions1Test.java @@ -11,6 +11,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import java.util.Arrays; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -51,9 +52,27 @@ public class CameraOptions1Test { assertEquals(o.getSupportedFacing().size(), supported.size()); for (Facing facing : s) { assertTrue(supported.contains(m.map(facing))); + assertTrue(o.supports(facing)); } } + @Test + public void testGestureActions() { + Camera.Parameters params = mock(Camera.Parameters.class); + when(params.getSupportedFocusModes()).thenReturn(Collections.emptyList()); + when(params.isZoomSupported()).thenReturn(true); + when(params.getMaxExposureCompensation()).thenReturn(0); + when(params.getMinExposureCompensation()).thenReturn(0); + + CameraOptions o = new CameraOptions(params); + assertFalse(o.supports(GestureAction.FOCUS)); + assertFalse(o.supports(GestureAction.FOCUS_WITH_MARKER)); + assertTrue(o.supports(GestureAction.CAPTURE)); + assertTrue(o.supports(GestureAction.NONE)); + assertTrue(o.supports(GestureAction.ZOOM)); + assertFalse(o.supports(GestureAction.EXPOSURE_CORRECTION)); + } + @Test public void testWhiteBalance() { Camera.Parameters params = mock(Camera.Parameters.class); diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraUtilsTest.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraUtilsTest.java index 92115c96..b284fb57 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraUtilsTest.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraUtilsTest.java @@ -47,7 +47,16 @@ public class CameraUtilsTest { source.compress(Bitmap.CompressFormat.PNG, 100, os); // No orientation. - Bitmap other = CameraUtils.decodeBitmap(os.toByteArray()); + final Task decode = new Task<>(); + decode.listen(); + CameraUtils.decodeBitmap(os.toByteArray(), new CameraUtils.BitmapCallback() { + @Override + public void onBitmapReady(Bitmap bitmap) { + decode.end(bitmap); + } + }); + Bitmap other = decode.await(800); + assertNotNull(other); assertEquals(100, w); assertEquals(200, h); assertEquals(color, other.getPixel(0, 0)); diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraViewTest.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraViewTest.java index 283581ad..105f6f3c 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraViewTest.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraViewTest.java @@ -267,6 +267,16 @@ public class CameraViewTest extends BaseTest { mockController.setMockPreviewSize(size); } + @Test + public void testMeasure_early() { + mockController.setMockPreviewSize(null); + cameraView.measure( + makeMeasureSpec(500, EXACTLY), + makeMeasureSpec(500, EXACTLY)); + assertEquals(cameraView.getMeasuredWidth(), 500); + assertEquals(cameraView.getMeasuredHeight(), 500); + } + @Test public void testMeasure_matchParentBoth() { mockPreviewSize(); @@ -410,6 +420,34 @@ public class CameraViewTest extends BaseTest { //endregion + //region test autofocus + + @Test(expected = IllegalArgumentException.class) + public void testStartAutoFocus_illegal() { + cameraView.startAutoFocus(-1, -1); + } + + @Test(expected = IllegalArgumentException.class) + public void testStartAutoFocus_illegal2() { + cameraView.setLeft(0); + cameraView.setRight(100); + cameraView.setTop(0); + cameraView.setBottom(100); + cameraView.startAutoFocus(200, 200); + } + + @Test + public void testStartAutoFocus() { + cameraView.setLeft(0); + cameraView.setRight(100); + cameraView.setTop(0); + cameraView.setBottom(100); + cameraView.startAutoFocus(50, 50); + assertTrue(mockController.mFocusStarted); + } + + //endregion + //region test setParameters @Test @@ -428,6 +466,11 @@ public class CameraViewTest extends BaseTest { assertEquals(cameraView.getJpegQuality(), 100); } + @Test(expected = IllegalArgumentException.class) + public void testSetJpegQuality_illegal() { + cameraView.setJpegQuality(-10); + } + @Test public void testSetFlash() { cameraView.setFlash(Flash.TORCH); @@ -436,6 +479,17 @@ public class CameraViewTest extends BaseTest { assertEquals(cameraView.getFlash(), Flash.OFF); } + @Test + public void testToggleFlash() { + cameraView.setFlash(Flash.OFF); + cameraView.toggleFlash(); + assertEquals(cameraView.getFlash(), Flash.ON); + cameraView.toggleFlash(); + assertEquals(cameraView.getFlash(), Flash.AUTO); + cameraView.toggleFlash(); + assertEquals(cameraView.getFlash(), Flash.OFF); + } + @Test public void testSetFacing() { cameraView.setFacing(Facing.FRONT); @@ -444,6 +498,15 @@ public class CameraViewTest extends BaseTest { assertEquals(cameraView.getFacing(), Facing.BACK); } + @Test + public void testToggleFacing() { + cameraView.setFacing(Facing.FRONT); + cameraView.toggleFacing(); + assertEquals(cameraView.getFacing(), Facing.BACK); + cameraView.toggleFacing(); + assertEquals(cameraView.getFacing(), Facing.FRONT); + } + @Test public void testSetGrid() { cameraView.setGrid(Grid.DRAW_3X3); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/AspectRatio.java b/cameraview/src/main/java/com/otaliastudios/cameraview/AspectRatio.java index 0a1a176f..90279b00 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/AspectRatio.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/AspectRatio.java @@ -7,7 +7,7 @@ import android.util.SparseArray; public class AspectRatio implements Comparable, Parcelable { - private final static SparseArray> sCache = new SparseArray<>(16); + final static SparseArray> sCache = new SparseArray<>(16); private final int mX; private final int mY; diff --git a/cameraview/src/test/java/com/otaliastudios/cameraview/SizeTest.java b/cameraview/src/test/java/com/otaliastudios/cameraview/SizeTest.java index 3d8b7fd2..aff2dea3 100644 --- a/cameraview/src/test/java/com/otaliastudios/cameraview/SizeTest.java +++ b/cameraview/src/test/java/com/otaliastudios/cameraview/SizeTest.java @@ -19,12 +19,23 @@ public class SizeTest { @Test public void testEquals() { Size s1 = new Size(10, 20); + assertTrue(s1.equals(s1)); + assertFalse(s1.equals(null)); + assertFalse(s1.equals("")); + Size s2 = new Size(10, 0); Size s3 = new Size(10, 20); assertTrue(s1.equals(s3)); assertFalse(s1.equals(s2)); } + @Test + public void testHashCode() { + Size s1 = new Size(10, 20); + Size s2 = new Size(10, 0); + assertNotEquals(s1.hashCode(), s2.hashCode()); + } + @Test public void testCompare() { Size s1 = new Size(10, 20);