Add GlCameraPreview and CameraView tests

pull/535/head
Mattia Iavarone 6 years ago
parent adb4729a87
commit 28cf9bd2dd
  1. 31
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraViewTest.java
  2. 6
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/preview/CameraPreviewTest.java
  3. 21
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/preview/GlCameraPreviewTest.java
  4. 15
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/preview/MockCameraPreview.java
  5. 4
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/preview/SurfaceCameraPreviewTest.java
  6. 4
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/preview/TextureCameraPreviewTest.java

@ -22,6 +22,9 @@ import com.otaliastudios.cameraview.controls.Facing;
import com.otaliastudios.cameraview.controls.Flash;
import com.otaliastudios.cameraview.controls.Preview;
import com.otaliastudios.cameraview.engine.CameraEngine;
import com.otaliastudios.cameraview.filter.Filter;
import com.otaliastudios.cameraview.filter.Filters;
import com.otaliastudios.cameraview.filter.NoFilter;
import com.otaliastudios.cameraview.frame.Frame;
import com.otaliastudios.cameraview.frame.FrameProcessor;
import com.otaliastudios.cameraview.gesture.Gesture;
@ -65,7 +68,7 @@ public class CameraViewTest extends BaseTest {
private CameraView cameraView;
private MockCameraEngine mockController;
private CameraPreview mockPreview;
private MockCameraPreview mockPreview;
private boolean hasPermissions;
@Before
@ -825,4 +828,30 @@ public class CameraViewTest extends BaseTest {
//endregion
// TODO: test permissions
//region Filter
@Test(expected = RuntimeException.class)
public void testSetFilter_notExperimental() {
cameraView.setExperimental(false);
cameraView.setFilter(Filters.AUTO_FIX.newInstance());
}
@Test
public void testSetFilter_notExperimental_noFilter() {
cameraView.setExperimental(false);
cameraView.setFilter(Filters.NONE.newInstance());
// no exception thrown
}
@Test
public void testSetFilter() {
cameraView.setExperimental(true);
Filter filter = Filters.AUTO_FIX.newInstance();
cameraView.setFilter(filter);
verify(mockPreview, times(1)).setFilter(filter);
assertEquals(filter, cameraView.getFilter());
//noinspection ResultOfMethodCallIgnored
verify(mockPreview, times(1)).getCurrentFilter();
}
}

@ -23,16 +23,16 @@ import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
public abstract class CameraPreviewTest extends BaseTest {
public abstract class CameraPreviewTest<T extends CameraPreview> extends BaseTest {
private final static long DELAY = 4000;
protected abstract CameraPreview createPreview(Context context, ViewGroup parent);
protected abstract T createPreview(Context context, ViewGroup parent);
@Rule
public ActivityTestRule<TestActivity> rule = new ActivityTestRule<>(TestActivity.class);
protected CameraPreview preview;
protected T preview;
@SuppressWarnings("WeakerAccess")
protected Size surfaceSize;
private CameraPreview.SurfaceCallback callback;

@ -7,24 +7,37 @@ import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;
import android.view.ViewGroup;
import com.otaliastudios.cameraview.filter.Filter;
import com.otaliastudios.cameraview.filter.Filters;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.assertEquals;
@RunWith(AndroidJUnit4.class)
@SmallTest
public class GlCameraPreviewTest extends CameraPreviewTest {
public class GlCameraPreviewTest extends CameraPreviewTest<GlCameraPreview> {
@Override
protected CameraPreview createPreview(Context context, ViewGroup parent) {
protected GlCameraPreview createPreview(Context context, ViewGroup parent) {
return new GlCameraPreview(context, parent);
}
@Override
protected float getCropScaleY() {
return 1F / ((GlCameraPreview) preview).mCropScaleY;
return 1F / preview.mCropScaleY;
}
@Override
protected float getCropScaleX() {
return 1F / ((GlCameraPreview) preview).mCropScaleX;
return 1F / preview.mCropScaleX;
}
@Test
public void testSetFilter() {
Filter filter = Filters.BLACK_AND_WHITE.newInstance();
preview.setFilter(filter);
assertEquals(filter, preview.getCurrentFilter());
}
}

@ -7,15 +7,17 @@ import androidx.annotation.NonNull;
import android.view.View;
import android.view.ViewGroup;
import com.otaliastudios.cameraview.filter.Filter;
import com.otaliastudios.cameraview.preview.CameraPreview;
public class MockCameraPreview extends CameraPreview<View, Void> {
public class MockCameraPreview extends FilterCameraPreview<View, Void> {
public MockCameraPreview(Context context, ViewGroup parent) {
super(context, parent);
}
private View rootView;
private Filter filter;
@Override
public boolean supportsCropping() {
@ -47,4 +49,15 @@ public class MockCameraPreview extends CameraPreview<View, Void> {
public View getRootView() {
return rootView;
}
@Override
public void setFilter(@NonNull Filter filter) {
this.filter = filter;
}
@NonNull
@Override
public Filter getCurrentFilter() {
return filter;
}
}

@ -11,10 +11,10 @@ import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class)
@SmallTest
public class SurfaceCameraPreviewTest extends CameraPreviewTest {
public class SurfaceCameraPreviewTest extends CameraPreviewTest<SurfaceCameraPreview> {
@Override
protected CameraPreview createPreview(Context context, ViewGroup parent) {
protected SurfaceCameraPreview createPreview(Context context, ViewGroup parent) {
return new SurfaceCameraPreview(context, parent);
}

@ -11,10 +11,10 @@ import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class)
@SmallTest
public class TextureCameraPreviewTest extends CameraPreviewTest {
public class TextureCameraPreviewTest extends CameraPreviewTest<TextureCameraPreview> {
@Override
protected CameraPreview createPreview(Context context, ViewGroup parent) {
protected TextureCameraPreview createPreview(Context context, ViewGroup parent) {
return new TextureCameraPreview(context, parent);
}

Loading…
Cancel
Save