Try fix tests

pull/22/head
Mattia Iavarone 8 years ago
parent 298b3c8447
commit fd8831a73f
  1. 32
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/PreviewTest.java

@ -5,6 +5,7 @@ import android.content.Context;
import android.support.test.rule.ActivityTestRule; import android.support.test.rule.ActivityTestRule;
import android.view.ViewGroup; import android.view.ViewGroup;
import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule; import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
@ -28,10 +29,12 @@ 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<Boolean> surfaceAvailability;
@Before @Before
public void setUp() { public void setUp() {
final Task<Boolean> task = new Task<>();
task.listen();
ui(new Runnable() { ui(new Runnable() {
@Override @Override
public void run() { public void run() {
@ -39,25 +42,31 @@ public abstract class PreviewTest extends BaseTest {
surfaceSize = a.getContentSize(); surfaceSize = a.getContentSize();
callback = mock(Preview.SurfaceCallback.class); callback = mock(Preview.SurfaceCallback.class);
surfaceAvailability = new Task<>();
surfaceAvailability.listen();
surfaceAvailability.start();
doAnswer(new Answer() { doAnswer(new Answer() {
@Override @Override
public Object answer(InvocationOnMock invocation) throws Throwable { public Object answer(InvocationOnMock invocation) throws Throwable {
surfaceAvailability.end(true); task.end(true);
return null; return null;
} }
}).when(callback).onSurfaceAvailable(); }).when(callback).onSurfaceAvailable();
preview = createPreview(a, a.getContentView(), callback); preview = createPreview(a, a.getContentView(), callback);
// preview.setSurfaceCallback(callback);
} }
}); });
Boolean available = task.await(2, TimeUnit.SECONDS);
assertNotNull(available);
}
@After
public void tearDown() {
preview = null;
callback = null;
surfaceSize = null;
} }
@Test @Test
public void testDefaults() { public void testDefaults() {
assertTrue(preview.isReady());
ViewGroup parent = rule.getActivity().getContentView(); ViewGroup parent = rule.getActivity().getContentView();
assertNotNull(preview.getView()); assertNotNull(preview.getView());
assertEquals(parent.getChildAt(0), preview.getView()); assertEquals(parent.getChildAt(0), preview.getView());
@ -73,9 +82,6 @@ public abstract class PreviewTest extends BaseTest {
@Test @Test
public void testSurfaceAvailable() { public void testSurfaceAvailable() {
assertTrue(surfaceAvailability.await(1, TimeUnit.SECONDS));
// Wait for surface to be available.
verify(callback, times(1)).onSurfaceAvailable(); verify(callback, times(1)).onSurfaceAvailable();
assertEquals(surfaceSize.getWidth(), preview.getSurfaceSize().getWidth()); assertEquals(surfaceSize.getWidth(), preview.getSurfaceSize().getWidth());
assertEquals(surfaceSize.getHeight(), preview.getSurfaceSize().getHeight()); assertEquals(surfaceSize.getHeight(), preview.getSurfaceSize().getHeight());
@ -83,13 +89,11 @@ public abstract class PreviewTest extends BaseTest {
@Test @Test
public void testSurfaceDestroyed() { public void testSurfaceDestroyed() {
assertTrue(surfaceAvailability.await(1, TimeUnit.SECONDS));
// Trigger a destroy. // Trigger a destroy.
ui(new Runnable() { ui(new Runnable() {
@Override @Override
public void run() { public void run() {
rule.getActivity().getContentView().removeAllViews(); rule.getActivity().getContentView().removeView(preview.getView());
} }
}); });
assertEquals(0, preview.getSurfaceSize().getWidth()); assertEquals(0, preview.getSurfaceSize().getWidth());
@ -98,8 +102,6 @@ public abstract class PreviewTest extends BaseTest {
@Test @Test
public void testCropCenter() throws Exception { public void testCropCenter() throws Exception {
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();

Loading…
Cancel
Save