| Index: content/browser/renderer_host/input/touch_handle_unittest.cc
|
| diff --git a/content/browser/renderer_host/input/touch_handle_unittest.cc b/content/browser/renderer_host/input/touch_handle_unittest.cc
|
| index 87d3a8c68a3764fcae480ecbfa3827f97cc17e83..b5dd2a290080d50431e4fa6a66541f377c6e8385 100644
|
| --- a/content/browser/renderer_host/input/touch_handle_unittest.cc
|
| +++ b/content/browser/renderer_host/input/touch_handle_unittest.cc
|
| @@ -13,6 +13,8 @@ using ui::test::MockMotionEvent;
|
| namespace content {
|
| namespace {
|
|
|
| +const int kDefaultTapTimeoutMs = 200;
|
| +const float kDefaultTapSlop = 10.f;
|
| const float kDefaultDrawableSize = 10.f;
|
|
|
| struct MockDrawableData {
|
| @@ -95,6 +97,12 @@ class TouchHandleTest : public testing::Test, public TouchHandleClient {
|
| new MockTouchHandleDrawable(&drawable_data_));
|
| }
|
|
|
| + virtual base::TimeDelta GetTapTimeout() const OVERRIDE {
|
| + return base::TimeDelta::FromMilliseconds(kDefaultTapTimeoutMs);
|
| + }
|
| +
|
| + virtual float GetTapSlop() const OVERRIDE { return kDefaultTapSlop; }
|
| +
|
| void Animate(TouchHandle& handle) {
|
| needs_animate_ = false;
|
| base::TimeTicks now = base::TimeTicks::Now();
|
| @@ -452,18 +460,34 @@ TEST_F(TouchHandleTest, Tap) {
|
| // Long press shouldn't trigger a tap.
|
| event = MockMotionEvent(MockMotionEvent::ACTION_DOWN, event_time, 0, 0);
|
| EXPECT_TRUE(handle.WillHandleTouchEvent(event));
|
| - event_time += base::TimeDelta::FromMilliseconds(500);
|
| + event_time += 2 * GetTapTimeout();
|
| event = MockMotionEvent(MockMotionEvent::ACTION_UP, event_time, 0, 0);
|
| EXPECT_TRUE(handle.WillHandleTouchEvent(event));
|
| EXPECT_FALSE(GetAndResetHandleTapped());
|
|
|
| - // Only a brief tap should trigger a tap.
|
| + // Only a brief tap within the slop region should trigger a tap.
|
| event = MockMotionEvent(MockMotionEvent::ACTION_DOWN, event_time, 0, 0);
|
| EXPECT_TRUE(handle.WillHandleTouchEvent(event));
|
| - event_time += base::TimeDelta::FromMilliseconds(50);
|
| - event = MockMotionEvent(MockMotionEvent::ACTION_UP, event_time, 0, 0);
|
| + event_time += GetTapTimeout() / 2;
|
| + event = MockMotionEvent(
|
| + MockMotionEvent::ACTION_MOVE, event_time, kDefaultTapSlop / 2.f, 0);
|
| + EXPECT_TRUE(handle.WillHandleTouchEvent(event));
|
| + event = MockMotionEvent(
|
| + MockMotionEvent::ACTION_UP, event_time, kDefaultTapSlop / 2.f, 0);
|
| EXPECT_TRUE(handle.WillHandleTouchEvent(event));
|
| EXPECT_TRUE(GetAndResetHandleTapped());
|
| +
|
| + // Moving beyond the slop region shouldn't trigger a tap.
|
| + event = MockMotionEvent(MockMotionEvent::ACTION_DOWN, event_time, 0, 0);
|
| + EXPECT_TRUE(handle.WillHandleTouchEvent(event));
|
| + event_time += GetTapTimeout() / 2;
|
| + event = MockMotionEvent(
|
| + MockMotionEvent::ACTION_MOVE, event_time, kDefaultTapSlop * 2.f, 0);
|
| + EXPECT_TRUE(handle.WillHandleTouchEvent(event));
|
| + event = MockMotionEvent(
|
| + MockMotionEvent::ACTION_UP, event_time, kDefaultTapSlop * 2.f, 0);
|
| + EXPECT_TRUE(handle.WillHandleTouchEvent(event));
|
| + EXPECT_FALSE(GetAndResetHandleTapped());
|
| }
|
|
|
| } // namespace content
|
|
|