| Index: content/public/android/javatests/src/org/chromium/content/browser/PopupZoomerTest.java | 
| diff --git a/content/public/android/javatests/src/org/chromium/content/browser/PopupZoomerTest.java b/content/public/android/javatests/src/org/chromium/content/browser/PopupZoomerTest.java | 
| index 946a0c11c202bcde6e4c31beea53cc5fcab0978d..58874d25b432155e0e1d92367d7e3e31b90d5226 100644 | 
| --- a/content/public/android/javatests/src/org/chromium/content/browser/PopupZoomerTest.java | 
| +++ b/content/public/android/javatests/src/org/chromium/content/browser/PopupZoomerTest.java | 
| @@ -9,18 +9,19 @@ import android.graphics.Bitmap; | 
| import android.graphics.Canvas; | 
| import android.graphics.Rect; | 
| import android.os.SystemClock; | 
| -import android.test.InstrumentationTestCase; | 
| import android.test.suitebuilder.annotation.SmallTest; | 
| import android.view.MotionEvent; | 
| import android.view.View; | 
|  | 
| import org.chromium.base.test.util.Feature; | 
| +import org.chromium.content_shell_apk.ContentShellTestBase; | 
|  | 
| /** | 
| * Tests for PopupZoomer. | 
| */ | 
| -public class PopupZoomerTest extends InstrumentationTestCase { | 
| +public class PopupZoomerTest extends ContentShellTestBase { | 
| private CustomCanvasPopupZoomer mPopupZoomer; | 
| +    private ContentViewCore mContentViewCore; | 
|  | 
| private static class CustomCanvasPopupZoomer extends PopupZoomer { | 
| Canvas mCanvas; | 
| @@ -74,6 +75,8 @@ public class PopupZoomerTest extends InstrumentationTestCase { | 
| @Override | 
| public void setUp() { | 
| mPopupZoomer = createPopupZoomerForTest(getInstrumentation().getTargetContext()); | 
| +        mContentViewCore = new ContentViewCore(getActivity()); | 
| +        mContentViewCore.setPopupZoomerForTest(mPopupZoomer); | 
| } | 
|  | 
| @SmallTest | 
| @@ -172,4 +175,29 @@ public class PopupZoomerTest extends InstrumentationTestCase { | 
| assertEquals(View.VISIBLE, mPopupZoomer.getVisibility()); | 
| assertTrue(mPopupZoomer.isShowing()); | 
| } | 
| + | 
| +    @SmallTest | 
| +    @Feature({"Navigation"}) | 
| +    public void testHidePopupOnLosingFocus() throws Exception { | 
| +        mPopupZoomer.setBitmap( | 
| +                        Bitmap.createBitmap(10, 10, Bitmap.Config.ALPHA_8)); | 
| +        mPopupZoomer.show(new Rect(0, 0, 5, 5)); | 
| + | 
| +        // Wait for the animation to finish. | 
| +        mPopupZoomer.finishPendingDraws(); | 
| + | 
| +        // The view should be visible. | 
| +        assertEquals(View.VISIBLE, mPopupZoomer.getVisibility()); | 
| +        assertTrue(mPopupZoomer.isShowing()); | 
| + | 
| +        // Simulate losing the focus. | 
| +        mContentViewCore.onFocusChanged(false); | 
| + | 
| +        // Wait for the hide animation to finish. | 
| +        mPopupZoomer.finishPendingDraws(); | 
| + | 
| +        // Now that another view has been focused, the view should be invisible. | 
| +        assertEquals(View.INVISIBLE, mPopupZoomer.getVisibility()); | 
| +        assertFalse(mPopupZoomer.isShowing()); | 
| +    } | 
| } | 
|  |