Fix assumption that tests are centered on screen
bug:18670714
Reenables tests on watch config.
Change-Id: I0d0b0afc046fa539688ba67e3c1e7b10abb1430f
diff --git a/tests/tests/uirendering/src/android/uirendering/cts/bitmapcomparers/MSSIMComparer.java b/tests/tests/uirendering/src/android/uirendering/cts/bitmapcomparers/MSSIMComparer.java
index e766f63..56d9cf5 100644
--- a/tests/tests/uirendering/src/android/uirendering/cts/bitmapcomparers/MSSIMComparer.java
+++ b/tests/tests/uirendering/src/android/uirendering/cts/bitmapcomparers/MSSIMComparer.java
@@ -15,7 +15,6 @@
*/
package android.uirendering.cts.bitmapcomparers;
-import com.android.cts.uirendering.R;
import com.android.cts.uirendering.ScriptC_MSSIMComparer;
import android.content.res.Resources;
diff --git a/tests/tests/uirendering/src/android/uirendering/cts/testclasses/InfrastructureTests.java b/tests/tests/uirendering/src/android/uirendering/cts/testclasses/InfrastructureTests.java
index c17e106..c86ff76 100644
--- a/tests/tests/uirendering/src/android/uirendering/cts/testclasses/InfrastructureTests.java
+++ b/tests/tests/uirendering/src/android/uirendering/cts/testclasses/InfrastructureTests.java
@@ -15,6 +15,7 @@
*/
package android.uirendering.cts.testclasses;
+import android.graphics.Point;
import com.android.cts.uirendering.R;
import android.graphics.Canvas;
@@ -22,7 +23,6 @@
import android.graphics.Rect;
import android.test.suitebuilder.annotation.SmallTest;
import android.uirendering.cts.bitmapcomparers.BitmapComparer;
-import android.uirendering.cts.bitmapcomparers.ExactComparer;
import android.uirendering.cts.bitmapcomparers.MSSIMComparer;
import android.uirendering.cts.bitmapverifiers.RectVerifier;
import android.uirendering.cts.testinfrastructure.ActivityTestBase;
@@ -35,7 +35,7 @@
@SmallTest
public void testScreenshot() {
for (int i = 0 ; i < 500 ; i ++) {
- takeScreenshot();
+ takeScreenshot(new Point());
System.gc();
}
}
diff --git a/tests/tests/uirendering/src/android/uirendering/cts/testclasses/view/UnclippedBlueView.java b/tests/tests/uirendering/src/android/uirendering/cts/testclasses/view/UnclippedBlueView.java
index 7a16e3c..b8935fb 100644
--- a/tests/tests/uirendering/src/android/uirendering/cts/testclasses/view/UnclippedBlueView.java
+++ b/tests/tests/uirendering/src/android/uirendering/cts/testclasses/view/UnclippedBlueView.java
@@ -4,7 +4,6 @@
import android.graphics.Canvas;
import android.graphics.Color;
import android.util.AttributeSet;
-import android.view.View;
import android.widget.FrameLayout;
public class UnclippedBlueView extends FrameLayout {
diff --git a/tests/tests/uirendering/src/android/uirendering/cts/testinfrastructure/ActivityTestBase.java b/tests/tests/uirendering/src/android/uirendering/cts/testinfrastructure/ActivityTestBase.java
index e3ad5a6..e1c09f5 100644
--- a/tests/tests/uirendering/src/android/uirendering/cts/testinfrastructure/ActivityTestBase.java
+++ b/tests/tests/uirendering/src/android/uirendering/cts/testinfrastructure/ActivityTestBase.java
@@ -17,6 +17,7 @@
import android.annotation.Nullable;
import android.graphics.Bitmap;
+import android.graphics.Point;
import android.renderscript.Allocation;
import android.renderscript.RenderScript;
import android.test.ActivityInstrumentationTestCase2;
@@ -123,21 +124,19 @@
return pixels;
}
- private Bitmap takeScreenshotImpl() {
+ private Bitmap takeScreenshotImpl(Point testOffset) {
Bitmap source = getInstrumentation().getUiAutomation().takeScreenshot();
- int x = (source.getWidth() - TEST_WIDTH) / 2;
- int y = (source.getHeight() - TEST_HEIGHT) / 2;
- return Bitmap.createBitmap(source, x, y, TEST_WIDTH, TEST_HEIGHT);
+ return Bitmap.createBitmap(source, testOffset.x, testOffset.y, TEST_WIDTH, TEST_HEIGHT);
}
- public Bitmap takeScreenshot() {
+ public Bitmap takeScreenshot(Point testOffset) {
getInstrumentation().waitForIdleSync();
- Bitmap bitmap1 = takeScreenshotImpl();
+ Bitmap bitmap1 = takeScreenshotImpl(testOffset);
Bitmap bitmap2;
int count = 0;
do {
bitmap2 = bitmap1;
- bitmap1 = takeScreenshotImpl();
+ bitmap1 = takeScreenshotImpl(testOffset);
count++;
} while (count < MAX_SCREEN_SHOTS &&
!Arrays.equals(getBitmapPixels(bitmap2), getBitmapPixels(bitmap1)));
@@ -155,10 +154,11 @@
* Used to execute a specific part of a test and get the resultant bitmap
*/
protected Bitmap captureRenderSpec(TestCase testCase) {
- getActivity().enqueueRenderSpecAndWait(testCase.layoutID, testCase.canvasClient,
+ Point testOffset = getActivity().enqueueRenderSpecAndWait(
+ testCase.layoutID, testCase.canvasClient,
testCase.webViewUrl, testCase.viewInitializer, testCase.useHardware);
testCase.wasTestRan = true;
- return takeScreenshot();
+ return takeScreenshot(testOffset);
}
/**
@@ -229,11 +229,6 @@
* every test case is tested against it.
*/
public void runWithComparer(BitmapComparer bitmapComparer) {
- if (getActivity().getOnWatch()) {
- Log.d(TAG, getName() + "skipped");
- return;
- }
-
if (mTestCases.size() == 0) {
throw new IllegalStateException("Need at least one test to run");
}
@@ -252,11 +247,6 @@
* the verifier given.
*/
public void runWithVerifier(BitmapVerifier bitmapVerifier) {
- if (getActivity().getOnWatch()) {
- Log.d(TAG, getName() + "skipped");
- return;
- }
-
if (mTestCases.size() == 0) {
throw new IllegalStateException("Need at least one test to run");
}
diff --git a/tests/tests/uirendering/src/android/uirendering/cts/testinfrastructure/DrawActivity.java b/tests/tests/uirendering/src/android/uirendering/cts/testinfrastructure/DrawActivity.java
index 65ed7ee..4bd513a 100644
--- a/tests/tests/uirendering/src/android/uirendering/cts/testinfrastructure/DrawActivity.java
+++ b/tests/tests/uirendering/src/android/uirendering/cts/testinfrastructure/DrawActivity.java
@@ -17,7 +17,7 @@
import android.annotation.Nullable;
import android.app.Activity;
-import android.content.res.Configuration;
+import android.graphics.Point;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@@ -32,28 +32,21 @@
* A generic activity that uses a view specified by the user.
*/
public class DrawActivity extends Activity {
- private final static long TIME_OUT = 10000;
- private final Object mLock = new Object();
+ private final static long TIME_OUT_MS = 10000;
+ private final Point mLock = new Point();
public static final int MIN_NUMBER_OF_DRAWS = 20;
private Handler mHandler;
private View mView;
- private boolean mOnWatch;
public void onCreate(Bundle bundle){
super.onCreate(bundle);
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN);
mHandler = new RenderSpecHandler();
- int uiMode = getResources().getConfiguration().uiMode;
- mOnWatch = (uiMode & Configuration.UI_MODE_TYPE_WATCH) == Configuration.UI_MODE_TYPE_WATCH;
}
- public boolean getOnWatch() {
- return mOnWatch;
- }
-
- public void enqueueRenderSpecAndWait(int layoutId, CanvasClient canvasClient, String webViewUrl,
+ public Point enqueueRenderSpecAndWait(int layoutId, CanvasClient canvasClient, String webViewUrl,
@Nullable ViewInitializer viewInitializer, boolean useHardware) {
((RenderSpecHandler) mHandler).setViewInitializer(viewInitializer);
int arg2 = (useHardware ? View.LAYER_TYPE_NONE : View.LAYER_TYPE_SOFTWARE);
@@ -65,13 +58,16 @@
mHandler.obtainMessage(RenderSpecHandler.LAYOUT_MSG, layoutId, arg2).sendToTarget();
}
+ Point point = new Point();
synchronized (mLock) {
try {
- mLock.wait(TIME_OUT);
+ mLock.wait(TIME_OUT_MS);
+ point.set(mLock.x, mLock.y);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
+ return point;
}
private class RenderSpecHandler extends Handler {
@@ -137,11 +133,13 @@
@Override
public boolean onPreDraw() {
+
mCurrentDraws++;
if (mCurrentDraws < MIN_NUMBER_OF_DRAWS + mExtraDraws) {
mView.postInvalidate();
} else {
synchronized (mLock) {
+ mLock.set(mView.getLeft(), mView.getTop());
mLock.notify();
}
mView.getViewTreeObserver().removeOnPreDrawListener(this);