| Index: content/public/android/javatests/src/org/chromium/content/browser/ContentViewGestureHandlerTest.java
|
| diff --git a/content/public/android/javatests/src/org/chromium/content/browser/ContentViewGestureHandlerTest.java b/content/public/android/javatests/src/org/chromium/content/browser/ContentViewGestureHandlerTest.java
|
| index e1a440699b7f47433782232ae874f55711b18981..6354c8ffa50bb4d510b811c10b07e48756cf5c5f 100644
|
| --- a/content/public/android/javatests/src/org/chromium/content/browser/ContentViewGestureHandlerTest.java
|
| +++ b/content/public/android/javatests/src/org/chromium/content/browser/ContentViewGestureHandlerTest.java
|
| @@ -1151,8 +1151,7 @@ public class ContentViewGestureHandlerTest extends InstrumentationTestCase {
|
|
|
| @Override
|
| public boolean sendTouchEvent(long timeMs, int action, TouchPoint[] pts) {
|
| - // Not implemented.
|
| - return false;
|
| + return true;
|
| }
|
|
|
| @Override
|
| @@ -2228,16 +2227,16 @@ public class ContentViewGestureHandlerTest extends InstrumentationTestCase {
|
| MotionEvent event = motionEvent(MotionEvent.ACTION_DOWN, downTime, eventTime);
|
| assertTrue(mGestureHandler.onTouchEvent(event));
|
| mGestureHandler.confirmTouchEvent(
|
| - ContentViewGestureHandler.INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
|
| + ContentViewGestureHandler.INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
|
| assertTrue("Should have a pending LONG_PRESS",
|
| mLongPressDetector.hasPendingMessage());
|
|
|
| event = MotionEvent.obtain(
|
| - downTime, eventTime + 10, MotionEvent.ACTION_MOVE,
|
| - FAKE_COORD_X, FAKE_COORD_Y + 200, 0);
|
| + downTime, eventTime + 10, MotionEvent.ACTION_MOVE,
|
| + FAKE_COORD_X, FAKE_COORD_Y + 200, 0);
|
| assertTrue(mGestureHandler.onTouchEvent(event));
|
| mGestureHandler.confirmTouchEvent(
|
| - ContentViewGestureHandler.INPUT_EVENT_ACK_STATE_CONSUMED);
|
| + ContentViewGestureHandler.INPUT_EVENT_ACK_STATE_CONSUMED);
|
| assertFalse("Should not have a pending LONG_PRESS",
|
| mLongPressDetector.hasPendingMessage());
|
| }
|
| @@ -2249,4 +2248,51 @@ public class ContentViewGestureHandlerTest extends InstrumentationTestCase {
|
| ScalableTimeout.ScaleTimeout(ViewConfiguration.getLongPressTimeout() + 10),
|
| TimeUnit.MILLISECONDS));
|
| }
|
| +
|
| + /**
|
| + * Verify that a TAP_DOWN will be followed by a TAP_CANCEL if the first
|
| + * touch is unconsumed, but the subsequent touch is consumed.
|
| + *
|
| + * @throws Exception
|
| + */
|
| + @SmallTest
|
| + @Feature({"Gestures"})
|
| + public void testTapCancelledAfterTouchConsumed() throws Exception {
|
| + final long downTime = SystemClock.uptimeMillis();
|
| + final long eventTime = SystemClock.uptimeMillis();
|
| +
|
| + GestureRecordingMotionEventDelegate mockDelegate =
|
| + new GestureRecordingMotionEventDelegate();
|
| + mGestureHandler = new ContentViewGestureHandler(
|
| + getInstrumentation().getTargetContext(), mockDelegate, mMockZoomManager);
|
| + mGestureHandler.hasTouchEventHandlers(true);
|
| +
|
| + MotionEvent event = motionEvent(MotionEvent.ACTION_DOWN, downTime, downTime);
|
| + assertTrue(mGestureHandler.onTouchEvent(event));
|
| + mGestureHandler.confirmTouchEvent(
|
| + ContentViewGestureHandler.INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
|
| + assertEquals("A TAP_DOWN gesture should have been sent",
|
| + ContentViewGestureHandler.GESTURE_TAP_DOWN,
|
| + mockDelegate.mMostRecentGestureEvent.mType);
|
| +
|
| + event = MotionEvent.obtain(
|
| + downTime, eventTime + 10, MotionEvent.ACTION_MOVE,
|
| + FAKE_COORD_X, FAKE_COORD_Y + 200, 0);
|
| + assertTrue(mGestureHandler.onTouchEvent(event));
|
| + mGestureHandler.confirmTouchEvent(
|
| + ContentViewGestureHandler.INPUT_EVENT_ACK_STATE_CONSUMED);
|
| + assertEquals("A TAP_CANCEL gesture should have been sent",
|
| + ContentViewGestureHandler.GESTURE_TAP_CANCEL,
|
| + mockDelegate.mMostRecentGestureEvent.mType);
|
| +
|
| + event = MotionEvent.obtain(
|
| + downTime, eventTime + 15, MotionEvent.ACTION_MOVE,
|
| + FAKE_COORD_X, FAKE_COORD_Y + 400, 0);
|
| + assertTrue(mGestureHandler.onTouchEvent(event));
|
| + mGestureHandler.confirmTouchEvent(
|
| + ContentViewGestureHandler.INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
|
| + assertEquals("No further gestures should be sent",
|
| + ContentViewGestureHandler.GESTURE_TAP_CANCEL,
|
| + mockDelegate.mMostRecentGestureEvent.mType);
|
| + }
|
| }
|
|
|