diff options
Diffstat (limited to 'chromium/content/public/android/javatests/src/org')
4 files changed, 140 insertions, 8 deletions
diff --git a/chromium/content/public/android/javatests/src/org/chromium/content/browser/ContentViewGestureHandlerTest.java b/chromium/content/public/android/javatests/src/org/chromium/content/browser/ContentViewGestureHandlerTest.java index 2647b3a2f59..ce63defa32c 100644 --- a/chromium/content/public/android/javatests/src/org/chromium/content/browser/ContentViewGestureHandlerTest.java +++ b/chromium/content/public/android/javatests/src/org/chromium/content/browser/ContentViewGestureHandlerTest.java @@ -639,6 +639,55 @@ public class ContentViewGestureHandlerTest extends InstrumentationTestCase { } /** + * Verify that a show pressed state gesture followed by a long press followed by + * the focus + * loss in the window due to context menu cancels show pressed. + * @throws Exception + */ + @SmallTest + @Feature({"Gestures"}) + public void testShowPressCancelOnWindowFocusLost() throws Exception { + final long time = SystemClock.uptimeMillis(); + GestureRecordingMotionEventDelegate mockDelegate = + new GestureRecordingMotionEventDelegate(); + mGestureHandler = new ContentViewGestureHandler( + getInstrumentation().getTargetContext(), mockDelegate, + new MockZoomManager(getInstrumentation().getTargetContext(), null), + ContentViewCore.INPUT_EVENTS_DELIVERED_AT_VSYNC); + mLongPressDetector = new LongPressDetector( + getInstrumentation().getTargetContext(), mGestureHandler); + mGestureHandler.setTestDependencies(mLongPressDetector, null, null); + + MotionEvent event = motionEvent(MotionEvent.ACTION_DOWN, time, time); + mGestureHandler.onTouchEvent(event); + + mGestureHandler.sendShowPressedStateGestureForTesting(); + assertEquals("A show pressed state event should have been sent", + ContentViewGestureHandler.GESTURE_SHOW_PRESSED_STATE, + mockDelegate.mMostRecentGestureEvent.mType); + assertEquals("Only showPressedState should have been sent", + 1, mockDelegate.mGestureTypeList.size()); + + mLongPressDetector.startLongPressTimerIfNeeded(event); + mLongPressDetector.sendLongPressGestureForTest(); + + assertEquals("Only should have sent only LONG_PRESS event", + 2, mockDelegate.mGestureTypeList.size()); + assertEquals("Should have a long press event next", + ContentViewGestureHandler.GESTURE_LONG_PRESS, + mockDelegate.mGestureTypeList.get(1).intValue()); + + // The long press triggers window focus loss by opening a context menu + mGestureHandler.onWindowFocusLost(); + + assertEquals("Only should have sent only GESTURE_SHOW_PRESS_CANCEL event", + 3, mockDelegate.mGestureTypeList.size()); + assertEquals("Should have a long press event next", + ContentViewGestureHandler.GESTURE_SHOW_PRESS_CANCEL, + mockDelegate.mGestureTypeList.get(2).intValue()); + } + + /** * Verify that a recent show pressed state gesture is canceled when scrolling begins. * @throws Exception */ @@ -890,6 +939,73 @@ public class ContentViewGestureHandlerTest extends InstrumentationTestCase { } /** + * Verify that double tap drag zoom feature is not invoked + * when it is disabled.. + * @throws Exception + */ + @SmallTest + @Feature({"Gestures"}) + public void testDoubleTapDragZoomNothingWhenDisabled() throws Exception { + final long downTime1 = SystemClock.uptimeMillis(); + final long downTime2 = downTime1 + 100; + + GestureRecordingMotionEventDelegate mockDelegate = + new GestureRecordingMotionEventDelegate(); + mGestureHandler = new ContentViewGestureHandler( + getInstrumentation().getTargetContext(), mockDelegate, + new MockZoomManager(getInstrumentation().getTargetContext(), null), + ContentViewCore.INPUT_EVENTS_DELIVERED_AT_VSYNC); + + mGestureHandler.updateDoubleTapDragSupport(false); + + MotionEvent event = motionEvent(MotionEvent.ACTION_DOWN, downTime1, downTime1); + assertTrue(mGestureHandler.onTouchEvent(event)); + + event = MotionEvent.obtain( + downTime1, downTime1 + 5, MotionEvent.ACTION_UP, + FAKE_COORD_X, FAKE_COORD_Y, 0); + mGestureHandler.onTouchEvent(event); + + event = MotionEvent.obtain( + downTime2, downTime2, MotionEvent.ACTION_DOWN, + FAKE_COORD_X, FAKE_COORD_Y, 0); + assertTrue(mGestureHandler.onTouchEvent(event)); + + event = MotionEvent.obtain( + downTime2, downTime2 + 5, MotionEvent.ACTION_MOVE, + FAKE_COORD_X, FAKE_COORD_Y + 100, 0); + // As double tap and drag to zoom is disabled, we won't handle + // the move event. + assertFalse(mGestureHandler.onTouchEvent(event)); + + assertFalse("No GESTURE_SCROLL_START should have been sent", + mockDelegate.mGestureTypeList.contains( + ContentViewGestureHandler.GESTURE_SCROLL_START)); + assertTrue("No GESTURE_PINCH_BEGIN should have been sent", + ContentViewGestureHandler.GESTURE_PINCH_BEGIN != + mockDelegate.mMostRecentGestureEvent.mType); + + event = MotionEvent.obtain( + downTime2, downTime2 + 10, MotionEvent.ACTION_MOVE, + FAKE_COORD_X, FAKE_COORD_Y + 200, 0); + assertFalse(mGestureHandler.onTouchEvent(event)); + assertFalse("No GESTURE_SCROLL_BY should have been sent", + mockDelegate.mGestureTypeList.contains( + ContentViewGestureHandler.GESTURE_SCROLL_BY)); + assertTrue("No GESTURE_PINCH_BY should have been sent", + ContentViewGestureHandler.GESTURE_PINCH_BY != + mockDelegate.mMostRecentGestureEvent.mType); + + event = MotionEvent.obtain( + downTime2, downTime2 + 15, MotionEvent.ACTION_UP, + FAKE_COORD_X, FAKE_COORD_Y + 200, 0); + assertFalse(mGestureHandler.onTouchEvent(event)); + assertFalse("No GESTURE_PINCH_END should have been sent", + mockDelegate.mGestureTypeList.contains( + ContentViewGestureHandler.GESTURE_PINCH_END)); + } + + /** * Mock MotionEventDelegate that remembers the most recent gesture event. */ static class GestureRecordingMotionEventDelegate implements MotionEventDelegate { diff --git a/chromium/content/public/android/javatests/src/org/chromium/content/browser/ContentViewScrollingTest.java b/chromium/content/public/android/javatests/src/org/chromium/content/browser/ContentViewScrollingTest.java index 998f036d58a..d880a96b86b 100644 --- a/chromium/content/public/android/javatests/src/org/chromium/content/browser/ContentViewScrollingTest.java +++ b/chromium/content/public/android/javatests/src/org/chromium/content/browser/ContentViewScrollingTest.java @@ -26,6 +26,15 @@ public class ContentViewScrollingTest extends ContentShellTestBase { "<body>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</body>" + "</html>"); + private void assertWaitForPageScaleFactor(final float scale) throws InterruptedException { + assertTrue(CriteriaHelper.pollForCriteria(new Criteria() { + @Override + public boolean isSatisfied() { + return getContentViewCore().getScale() == scale; + } + })); + } + private void assertWaitForScroll(final boolean hugLeft, final boolean hugTop) throws InterruptedException { assertTrue(CriteriaHelper.pollForCriteria(new Criteria() { @@ -70,7 +79,7 @@ public class ContentViewScrollingTest extends ContentShellTestBase { launchContentShellWithUrl(LARGE_PAGE); assertTrue("Page failed to load", waitForActiveShellToBeDoneLoading()); - assertWaitForPageScaleFactorMatch(1.0f); + assertWaitForPageScaleFactor(1.0f); assertEquals(0, getContentViewCore().getNativeScrollXForTest()); assertEquals(0, getContentViewCore().getNativeScrollYForTest()); diff --git a/chromium/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java b/chromium/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java index e4c1a5f727f..a12007f3cc8 100644 --- a/chromium/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java +++ b/chromium/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java @@ -61,7 +61,7 @@ public class ImeTest extends ContentShellTestBase { mContentView = getActivity().getActiveContentView(); mCallbackContainer = new TestCallbackHelperContainer(mContentView); // TODO(aurimas) remove this wait once crbug.com/179511 is fixed. - assertWaitForPageScaleFactorMatch(1); + assertWaitForPageScaleFactor(1); DOMUtils.clickNode(this, mContentView, mCallbackContainer, "input_text"); assertWaitForKeyboardStatus(true); @@ -286,6 +286,17 @@ public class ImeTest extends ContentShellTestBase { }); } + + + private void assertWaitForPageScaleFactor(final float scale) throws InterruptedException { + assertTrue(CriteriaHelper.pollForCriteria(new Criteria() { + @Override + public boolean isSatisfied() { + return getContentViewCore().getScale() == scale; + } + })); + } + private void assertWaitForKeyboardStatus(final boolean show) throws InterruptedException { assertTrue(CriteriaHelper.pollForCriteria(new Criteria() { @Override diff --git a/chromium/content/public/android/javatests/src/org/chromium/content/browser/input/InsertionHandleTest.java b/chromium/content/public/android/javatests/src/org/chromium/content/browser/input/InsertionHandleTest.java index 91e61242d71..d2697b711f1 100644 --- a/chromium/content/public/android/javatests/src/org/chromium/content/browser/input/InsertionHandleTest.java +++ b/chromium/content/public/android/javatests/src/org/chromium/content/browser/input/InsertionHandleTest.java @@ -87,12 +87,8 @@ public class InsertionHandleTest extends ContentShellTestBase { } - /** - * @MediumTest - * @Feature({"TextSelection", "TextInput", "Main"}) - * http://crbug.com/169648 - */ - @DisabledTest + @MediumTest + @Feature({"TextSelection", "TextInput", "Main"}) public void testKeyEventHidesHandle() throws Throwable { launchWithUrl(TEXTAREA_DATA_URL); clickNodeToShowInsertionHandle(TEXTAREA_ID); |