diff options
Diffstat (limited to 'tests/overlay3/src/instrumentTest/java/com/android/tests/overlay2/MainTest.java')
-rw-r--r-- | tests/overlay3/src/instrumentTest/java/com/android/tests/overlay2/MainTest.java | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/tests/overlay3/src/instrumentTest/java/com/android/tests/overlay2/MainTest.java b/tests/overlay3/src/instrumentTest/java/com/android/tests/overlay2/MainTest.java new file mode 100644 index 0000000..a4d6da1 --- /dev/null +++ b/tests/overlay3/src/instrumentTest/java/com/android/tests/overlay2/MainTest.java @@ -0,0 +1,98 @@ +package com.android.tests.overlay2; + +import android.graphics.Bitmap; +import android.graphics.drawable.BitmapDrawable; +import android.test.ActivityInstrumentationTestCase2; +import android.test.suitebuilder.annotation.MediumTest; +import android.widget.ImageView; + + +public class MainTest extends ActivityInstrumentationTestCase2<Main> { + + private final static int RED = 0xFFFF0000; + private final static int GREEN = 0xFF00FF00; + + private ImageView mNoOverlayIV; + private ImageView mDebugOverlayIV; + private ImageView mBetaOverlayIV; + private ImageView mFreeNormalOverlayIV; + private ImageView mFreeBetaDebugOverlayIV; + + /** + * Creates an {@link ActivityInstrumentationTestCase2} that tests the {@link Main} activity. + */ + public MainTest() { + super(Main.class); + } + + @Override + protected void setUp() throws Exception { + super.setUp(); + final Main a = getActivity(); + // ensure a valid handle to the activity has been returned + assertNotNull(a); + mNoOverlayIV = (ImageView) a.findViewById(R.id.no_overlay); + mDebugOverlayIV = (ImageView) a.findViewById(R.id.debug_overlay); + mBetaOverlayIV = (ImageView) a.findViewById(R.id.beta_overlay); + mFreeNormalOverlayIV = (ImageView) a.findViewById(R.id.free_normal_overlay); + mFreeBetaDebugOverlayIV = (ImageView) a.findViewById(R.id.free_beta_debug_overlay); + } + + /** + * The name 'test preconditions' is a convention to signal that if this + * test doesn't pass, the test case was not set up properly and it might + * explain any and all failures in other tests. This is not guaranteed + * to run before other tests, as junit uses reflection to find the tests. + */ + @MediumTest + public void testPreconditions() { + assertNotNull(mNoOverlayIV); + assertNotNull(mDebugOverlayIV); + assertNotNull(mFreeBetaDebugOverlayIV); + assertNotNull(mFreeNormalOverlayIV); + assertNotNull(mFreeBetaDebugOverlayIV); + } + + public void testNoOverlay() { + pixelLooker(mNoOverlayIV, GREEN); + } + + public void testDebugOverlay() { + if ("debug".equals(BuildConfig.BUILD_TYPE)) { + pixelLooker(mDebugOverlayIV, GREEN); + } else { + pixelLooker(mDebugOverlayIV, RED); + } + } + + public void testBetaOverlay() { + if ("beta".equals(BuildConfig.FLAVOR2)) { + pixelLooker(mBetaOverlayIV, GREEN); + } else { + pixelLooker(mBetaOverlayIV, RED); + } + } + + public void testFreeNormalOverlay() { + if ("freeNormal".equals(BuildConfig.FLAVOR)) { + pixelLooker(mFreeNormalOverlayIV, GREEN); + } else { + pixelLooker(mFreeNormalOverlayIV, RED); + } + } + + public void testFreeBetaDebugOverlay() { + if ("freeBeta".equals(BuildConfig.FLAVOR) && "debug".equals(BuildConfig.BUILD_TYPE)) { + pixelLooker(mFreeBetaDebugOverlayIV, GREEN); + } else { + pixelLooker(mFreeBetaDebugOverlayIV, RED); + } + } + + private void pixelLooker(ImageView iv, int expectedColor) { + BitmapDrawable d = (BitmapDrawable) iv.getDrawable(); + Bitmap bitmap = d.getBitmap(); + assertEquals(expectedColor, bitmap.getPixel(0, 0)); + } +} + |