| Index: ui/aura/gestures/gesture_recognizer_unittest.cc
|
| diff --git a/ui/aura/gestures/gesture_recognizer_unittest.cc b/ui/aura/gestures/gesture_recognizer_unittest.cc
|
| index 02de6385673292262e8ff6b9062ad02b3ed2413c..828e45146f84214e4a6d6b251d933feff59dcf25 100644
|
| --- a/ui/aura/gestures/gesture_recognizer_unittest.cc
|
| +++ b/ui/aura/gestures/gesture_recognizer_unittest.cc
|
| @@ -2939,6 +2939,61 @@ TEST_F(GestureRecognizerTest, GestureEventDoubleTap) {
|
| EXPECT_EQ(2, delegate->tap_count());
|
| }
|
|
|
| +// Check that appropriate touch events generate triple tap gesture events.
|
| +TEST_F(GestureRecognizerTest, GestureEventTripleTap) {
|
| + scoped_ptr<GestureEventConsumeDelegate> delegate(
|
| + new GestureEventConsumeDelegate());
|
| + const int kWindowWidth = 123;
|
| + const int kWindowHeight = 45;
|
| + const int kTouchId = 2;
|
| + gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight);
|
| + scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
|
| + delegate.get(), -1234, bounds, root_window()));
|
| + TimedEvents tes;
|
| +
|
| + // First tap (tested in GestureEventTap)
|
| + ui::TouchEvent press1(ui::ET_TOUCH_PRESSED, gfx::Point(104, 201),
|
| + kTouchId, tes.Now());
|
| + root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press1);
|
| + ui::TouchEvent release1(ui::ET_TOUCH_RELEASED, gfx::Point(104, 201),
|
| + kTouchId, tes.LeapForward(50));
|
| + root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release1);
|
| +
|
| + EXPECT_EQ(1, delegate->tap_count());
|
| + delegate->Reset();
|
| +
|
| + // Second tap (tested in GestureEventDoubleTap)
|
| + ui::TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(101, 203),
|
| + kTouchId, tes.LeapForward(200));
|
| + root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2);
|
| + ui::TouchEvent release2(ui::ET_TOUCH_RELEASED, gfx::Point(102, 206),
|
| + kTouchId, tes.LeapForward(50));
|
| + root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release2);
|
| +
|
| + EXPECT_EQ(2, delegate->tap_count());
|
| + delegate->Reset();
|
| +
|
| + // Third tap
|
| + ui::TouchEvent press3(ui::ET_TOUCH_PRESSED, gfx::Point(102, 206),
|
| + kTouchId, tes.LeapForward(200));
|
| + root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press3);
|
| + ui::TouchEvent release3(ui::ET_TOUCH_RELEASED, gfx::Point(102, 206),
|
| + kTouchId, tes.LeapForward(50));
|
| + root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release3);
|
| +
|
| +
|
| + EXPECT_TRUE(delegate->tap());
|
| + EXPECT_TRUE(delegate->tap_down());
|
| + EXPECT_FALSE(delegate->tap_cancel());
|
| + EXPECT_TRUE(delegate->begin());
|
| + EXPECT_TRUE(delegate->end());
|
| + EXPECT_FALSE(delegate->scroll_begin());
|
| + EXPECT_FALSE(delegate->scroll_update());
|
| + EXPECT_FALSE(delegate->scroll_end());
|
| +
|
| + EXPECT_EQ(3, delegate->tap_count());
|
| +}
|
| +
|
| // Check that we don't get a double tap when the two taps are far apart.
|
| TEST_F(GestureRecognizerTest, TwoTapsFarApart) {
|
| scoped_ptr<GestureEventConsumeDelegate> delegate(
|
|
|