From 7b948a62dd982b40107fdd1718025a2a273fef7c Mon Sep 17 00:00:00 2001 From: Mattia Iavarone Date: Mon, 11 Sep 2017 01:09:52 +0200 Subject: [PATCH] Add audio tests --- .../cameraview/CameraCallbacksTest.java | 2 +- .../CameraControllerIntegrationTest.java | 17 +++++++++++++++++ .../cameraview/CameraViewTest.java | 9 +++++++++ .../cameraview/CameraController.java | 1 + 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraCallbacksTest.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraCallbacksTest.java index 93d88dbf..8c59cbd9 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraCallbacksTest.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraCallbacksTest.java @@ -70,7 +70,7 @@ public class CameraCallbacksTest extends BaseTest { } @Override - protected boolean checkPermissions(SessionType sessionType) { + protected boolean checkPermissions(SessionType sessionType, Audio audio) { return true; } }; diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraControllerIntegrationTest.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraControllerIntegrationTest.java index fc9d460f..0567e458 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraControllerIntegrationTest.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraControllerIntegrationTest.java @@ -5,6 +5,8 @@ import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.PointF; +import android.support.test.InstrumentationRegistry; +import android.support.test.espresso.Espresso; import android.support.test.filters.MediumTest; import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; @@ -30,6 +32,7 @@ import static org.mockito.Mockito.*; import static org.junit.Assert.*; +// TODO: won't work well in a 23+ emulator. Permissions will be asked. @RunWith(AndroidJUnit4.class) @MediumTest public class CameraControllerIntegrationTest extends BaseTest { @@ -88,6 +91,7 @@ public class CameraControllerIntegrationTest extends BaseTest { } else { assertNull("Should not open", result); } + try { Thread.sleep(600); } catch (Exception e) {} return result; } @@ -101,6 +105,7 @@ public class CameraControllerIntegrationTest extends BaseTest { } else { assertNull("Should not close", result); } + try { Thread.sleep(600); } catch (Exception e) {}; return result; } @@ -307,6 +312,18 @@ public class CameraControllerIntegrationTest extends BaseTest { } } + @Test + public void testSetAudio() { + // TODO: when permissions are managed, check that Audio.ON triggers the audio permission + camera.start(); + waitForOpen(true); + Audio[] values = Audio.values(); + for (Audio value : values) { + camera.setAudio(value); + assertEquals(camera.getAudio(), value); + } + } + //endregion //region testSetVideoQuality diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraViewTest.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraViewTest.java index 82e819f5..d1308ad1 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraViewTest.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraViewTest.java @@ -86,6 +86,7 @@ public class CameraViewTest extends BaseTest { assertEquals(cameraView.getWhiteBalance(), WhiteBalance.DEFAULT); assertEquals(cameraView.getSessionType(), SessionType.DEFAULT); assertEquals(cameraView.getHdr(), Hdr.DEFAULT); + assertEquals(cameraView.getAudio(), Audio.DEFAULT); assertEquals(cameraView.getVideoQuality(), VideoQuality.DEFAULT); assertEquals(cameraView.getLocation(), null); @@ -521,6 +522,14 @@ public class CameraViewTest extends BaseTest { assertEquals(cameraView.getHdr(), Hdr.OFF); } + @Test + public void testAudio() { + cameraView.setAudio(Audio.ON); + assertEquals(cameraView.getAudio(), Audio.ON); + cameraView.setAudio(Audio.OFF); + assertEquals(cameraView.getAudio(), Audio.OFF); + } + @Test public void testVideoQuality() { cameraView.setVideoQuality(VideoQuality.MAX_1080P); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraController.java b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraController.java index a55cdea1..bf6d070b 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraController.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraController.java @@ -205,6 +205,7 @@ abstract class CameraController implements Preview.SurfaceCallback { // If closed, keep. If opened, check supported and apply. abstract void setLocation(Location location); + // Just set. abstract void setAudio(Audio audio); // Throw if capturing. If in video session, recompute capture size, and, if needed, preview size.