|
|
@ -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(); |
|
|
|