Test timeout

pull/22/head
Mattia Iavarone 8 years ago
parent 858264bab3
commit 298b3c8447
  1. 2
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/MockPreview.java
  2. 18
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/PreviewTest.java
  3. 4
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/SurfaceViewPreviewTest.java
  4. 4
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/TextureViewPreviewTest.java
  5. 2
      cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java
  6. 5
      cameraview/src/main/views/com/otaliastudios/cameraview/Preview.java
  7. 4
      cameraview/src/main/views/com/otaliastudios/cameraview/SurfaceViewPreview.java
  8. 4
      cameraview/src/main/views/com/otaliastudios/cameraview/TextureViewPreview.java

@ -10,7 +10,7 @@ import android.view.ViewGroup;
public class MockPreview extends Preview<View, Void> { public class MockPreview extends Preview<View, Void> {
MockPreview(Context context, ViewGroup parent) { MockPreview(Context context, ViewGroup parent) {
super(context, parent); super(context, parent, null);
} }
@NonNull @NonNull

@ -12,13 +12,15 @@ import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer; import org.mockito.stubbing.Answer;
import java.util.concurrent.TimeUnit;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
public abstract class PreviewTest extends BaseTest { public abstract class PreviewTest extends BaseTest {
protected abstract Preview createPreview(Context context, ViewGroup parent); protected abstract Preview createPreview(Context context, ViewGroup parent, Preview.SurfaceCallback callback);
@Rule @Rule
public ActivityTestRule<TestActivity> rule = new ActivityTestRule<>(TestActivity.class); public ActivityTestRule<TestActivity> rule = new ActivityTestRule<>(TestActivity.class);
@ -26,7 +28,7 @@ public abstract class PreviewTest extends BaseTest {
private Preview preview; private Preview preview;
private Preview.SurfaceCallback callback; private Preview.SurfaceCallback callback;
private Size surfaceSize; private Size surfaceSize;
private Task<Void> surfaceAvailability; private Task<Boolean> surfaceAvailability;
@Before @Before
public void setUp() { public void setUp() {
@ -43,13 +45,13 @@ public abstract class PreviewTest extends BaseTest {
doAnswer(new Answer() { doAnswer(new Answer() {
@Override @Override
public Object answer(InvocationOnMock invocation) throws Throwable { public Object answer(InvocationOnMock invocation) throws Throwable {
surfaceAvailability.end(null); surfaceAvailability.end(true);
return null; return null;
} }
}).when(callback).onSurfaceAvailable(); }).when(callback).onSurfaceAvailable();
preview = createPreview(a, a.getContentView()); preview = createPreview(a, a.getContentView(), callback);
preview.setSurfaceCallback(callback); // preview.setSurfaceCallback(callback);
} }
}); });
} }
@ -71,7 +73,7 @@ public abstract class PreviewTest extends BaseTest {
@Test @Test
public void testSurfaceAvailable() { public void testSurfaceAvailable() {
surfaceAvailability.await(); assertTrue(surfaceAvailability.await(1, TimeUnit.SECONDS));
// Wait for surface to be available. // Wait for surface to be available.
verify(callback, times(1)).onSurfaceAvailable(); verify(callback, times(1)).onSurfaceAvailable();
@ -81,7 +83,7 @@ public abstract class PreviewTest extends BaseTest {
@Test @Test
public void testSurfaceDestroyed() { public void testSurfaceDestroyed() {
surfaceAvailability.await(); assertTrue(surfaceAvailability.await(1, TimeUnit.SECONDS));
// Trigger a destroy. // Trigger a destroy.
ui(new Runnable() { ui(new Runnable() {
@ -96,7 +98,7 @@ public abstract class PreviewTest extends BaseTest {
@Test @Test
public void testCropCenter() throws Exception { public void testCropCenter() throws Exception {
surfaceAvailability.await(); assertTrue(surfaceAvailability.await(1, TimeUnit.SECONDS));
// This is given by the activity, it's the fixed size. // This is given by the activity, it's the fixed size.
float view = getViewAspectRatio(); float view = getViewAspectRatio();

@ -13,7 +13,7 @@ import org.junit.runner.RunWith;
public class SurfaceViewPreviewTest extends PreviewTest { public class SurfaceViewPreviewTest extends PreviewTest {
@Override @Override
protected Preview createPreview(Context context, ViewGroup parent) { protected Preview createPreview(Context context, ViewGroup parent, Preview.SurfaceCallback callback) {
return new SurfaceViewPreview(context, parent); return new SurfaceViewPreview(context, parent, callback);
} }
} }

@ -13,7 +13,7 @@ import org.junit.runner.RunWith;
public class TextureViewPreviewTest extends PreviewTest { public class TextureViewPreviewTest extends PreviewTest {
@Override @Override
protected Preview createPreview(Context context, ViewGroup parent) { protected Preview createPreview(Context context, ViewGroup parent, Preview.SurfaceCallback callback) {
return new TextureViewPreview(context, parent); return new TextureViewPreview(context, parent, callback);
} }
} }

@ -159,7 +159,7 @@ public class CameraView extends FrameLayout {
protected Preview instantiatePreview(Context context, ViewGroup container) { protected Preview instantiatePreview(Context context, ViewGroup container) {
return new TextureViewPreview(context, container); return new TextureViewPreview(context, container, null);
} }

@ -11,7 +11,7 @@ abstract class Preview<T extends View, Output> {
protected final static CameraLogger LOG = CameraLogger.create(Preview.class.getSimpleName()); protected final static CameraLogger LOG = CameraLogger.create(Preview.class.getSimpleName());
// Used for testing. // Used for testing.
Task<Void> mCropTask = new Task<Void>(); Task<Void> mCropTask = new Task<>();
// This is used to notify CameraImpl to recompute its camera Preview size. // This is used to notify CameraImpl to recompute its camera Preview size.
// After that, CameraView will need a new layout pass to adapt to the Preview size. // After that, CameraView will need a new layout pass to adapt to the Preview size.
@ -32,8 +32,9 @@ abstract class Preview<T extends View, Output> {
private int mDesiredWidth; private int mDesiredWidth;
private int mDesiredHeight; private int mDesiredHeight;
Preview(Context context, ViewGroup parent) { Preview(Context context, ViewGroup parent, SurfaceCallback callback) {
mView = onCreateView(context, parent); mView = onCreateView(context, parent);
mSurfaceCallback = callback;
} }
@NonNull @NonNull

@ -12,8 +12,8 @@ import android.view.ViewGroup;
class SurfaceViewPreview extends Preview<SurfaceView, SurfaceHolder> { class SurfaceViewPreview extends Preview<SurfaceView, SurfaceHolder> {
SurfaceViewPreview(Context context, ViewGroup parent) { SurfaceViewPreview(Context context, ViewGroup parent, SurfaceCallback callback) {
super(context, parent); super(context, parent, callback);
} }
@NonNull @NonNull

@ -13,8 +13,8 @@ class TextureViewPreview extends Preview<TextureView, SurfaceTexture> {
private Surface mSurface; private Surface mSurface;
TextureViewPreview(Context context, ViewGroup parent) { TextureViewPreview(Context context, ViewGroup parent, SurfaceCallback callback) {
super(context, parent); super(context, parent, callback);
} }
@NonNull @NonNull

Loading…
Cancel
Save