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 GREEN = 0xFF00FF00; private ImageView mNoOverlayIV; private ImageView mTypeOverlayIV; private ImageView mFlavorOverlayIV; private ImageView mTypeFlavorOverlayIV; private ImageView mVariantTypeFlavorOverlayIV; /** * 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); mTypeOverlayIV = (ImageView) a.findViewById(R.id.type_overlay); mFlavorOverlayIV = (ImageView) a.findViewById(R.id.flavor_overlay); mTypeFlavorOverlayIV = (ImageView) a.findViewById(R.id.type_flavor_overlay); mVariantTypeFlavorOverlayIV = (ImageView) a.findViewById(R.id.variant_type_flavor_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(mTypeOverlayIV); assertNotNull(mFlavorOverlayIV); assertNotNull(mTypeFlavorOverlayIV); assertNotNull(mVariantTypeFlavorOverlayIV); } public void testNoOverlay() { pixelLooker(mNoOverlayIV, GREEN); } public void testTypeOverlay() { pixelLooker(mTypeOverlayIV, GREEN); } public void testFlavorOverlay() { pixelLooker(mFlavorOverlayIV, GREEN); } public void testTypeFlavorOverlay() { pixelLooker(mTypeFlavorOverlayIV, GREEN); } public void testVariantTypeFlavorOverlay() { pixelLooker(mVariantTypeFlavorOverlayIV, GREEN); } private void pixelLooker(ImageView iv, int expectedColor) { BitmapDrawable d = (BitmapDrawable) iv.getDrawable(); Bitmap bitmap = d.getBitmap(); assertEquals(expectedColor, bitmap.getPixel(0, 0)); } }