| Index: ui/events/gestures/gesture_provider_impl_unittest.cc
|
| diff --git a/ui/events/gestures/gesture_provider_impl_unittest.cc b/ui/events/gestures/gesture_provider_impl_unittest.cc
|
| index fadedc1296221cc8b8c58c4dec6b2e042c4536f2..5d2966f0645b26551027fefa45e086d9b3bd9717 100644
|
| --- a/ui/events/gestures/gesture_provider_impl_unittest.cc
|
| +++ b/ui/events/gestures/gesture_provider_impl_unittest.cc
|
| @@ -19,9 +19,7 @@ class GestureProviderImplTest : public testing::Test,
|
|
|
| void OnGestureEvent(GestureEvent* event) override {}
|
|
|
| - void SetUp() override {
|
| - provider_.reset(new GestureProviderImpl(this));
|
| - }
|
| + void SetUp() override { provider_.reset(new GestureProviderImpl(this)); }
|
|
|
| void TearDown() override { provider_.reset(); }
|
|
|
| @@ -35,30 +33,33 @@ class GestureProviderImplTest : public testing::Test,
|
| TEST_F(GestureProviderImplTest, IgnoresExtraPressEvents) {
|
| base::TimeDelta time = ui::EventTimeForNow();
|
| TouchEvent press1(ET_TOUCH_PRESSED, gfx::PointF(10, 10), 0, time);
|
| - EXPECT_TRUE(provider()->OnTouchEvent(press1));
|
| + EXPECT_TRUE(provider()->OnTouchEvent(&press1));
|
|
|
| time += base::TimeDelta::FromMilliseconds(10);
|
| TouchEvent press2(ET_TOUCH_PRESSED, gfx::PointF(30, 40), 0, time);
|
| - // Redundant press with same id is ignored.
|
| - EXPECT_FALSE(provider()->OnTouchEvent(press2));
|
| + // TODO(tdresser): this redundant press with same id should be
|
| + // ignored; however, there is at least one case where we need to
|
| + // allow a touch press from a currently used touch id. See
|
| + // crbug.com/373125 for details.
|
| + EXPECT_TRUE(provider()->OnTouchEvent(&press2));
|
| }
|
|
|
| TEST_F(GestureProviderImplTest, IgnoresExtraMoveOrReleaseEvents) {
|
| base::TimeDelta time = ui::EventTimeForNow();
|
| TouchEvent press1(ET_TOUCH_PRESSED, gfx::PointF(10, 10), 0, time);
|
| - EXPECT_TRUE(provider()->OnTouchEvent(press1));
|
| + EXPECT_TRUE(provider()->OnTouchEvent(&press1));
|
|
|
| time += base::TimeDelta::FromMilliseconds(10);
|
| TouchEvent release1(ET_TOUCH_RELEASED, gfx::PointF(30, 40), 0, time);
|
| - EXPECT_TRUE(provider()->OnTouchEvent(release1));
|
| + EXPECT_TRUE(provider()->OnTouchEvent(&release1));
|
|
|
| time += base::TimeDelta::FromMilliseconds(10);
|
| TouchEvent release2(ET_TOUCH_RELEASED, gfx::PointF(30, 45), 0, time);
|
| - EXPECT_FALSE(provider()->OnTouchEvent(release1));
|
| + EXPECT_FALSE(provider()->OnTouchEvent(&release1));
|
|
|
| time += base::TimeDelta::FromMilliseconds(10);
|
| TouchEvent move1(ET_TOUCH_MOVED, gfx::PointF(70, 75), 0, time);
|
| - EXPECT_FALSE(provider()->OnTouchEvent(move1));
|
| + EXPECT_FALSE(provider()->OnTouchEvent(&move1));
|
| }
|
|
|
| TEST_F(GestureProviderImplTest, IgnoresIdenticalMoveEvents) {
|
| @@ -71,40 +72,84 @@ TEST_F(GestureProviderImplTest, IgnoresIdenticalMoveEvents) {
|
|
|
| base::TimeDelta time = ui::EventTimeForNow();
|
| TouchEvent press0_1(ET_TOUCH_PRESSED, gfx::PointF(9, 10), kTouchId0, time);
|
| - EXPECT_TRUE(provider()->OnTouchEvent(press0_1));
|
| + EXPECT_TRUE(provider()->OnTouchEvent(&press0_1));
|
|
|
| TouchEvent press1_1(ET_TOUCH_PRESSED, gfx::PointF(40, 40), kTouchId1, time);
|
| - EXPECT_TRUE(provider()->OnTouchEvent(press1_1));
|
| + EXPECT_TRUE(provider()->OnTouchEvent(&press1_1));
|
|
|
| time += base::TimeDelta::FromMilliseconds(10);
|
| - TouchEvent move0_1(ET_TOUCH_MOVED, gfx::PointF(10, 10), 0, kTouchId0, time,
|
| - kRadiusX, kRadiusY, kAngle, kForce);
|
| - EXPECT_TRUE(provider()->OnTouchEvent(move0_1));
|
| -
|
| - TouchEvent move1_1(ET_TOUCH_MOVED, gfx::PointF(100, 200), 0, kTouchId1, time,
|
| - kRadiusX, kRadiusY, kAngle, kForce);
|
| - EXPECT_TRUE(provider()->OnTouchEvent(move1_1));
|
| + TouchEvent move0_1(ET_TOUCH_MOVED,
|
| + gfx::PointF(10, 10),
|
| + 0,
|
| + kTouchId0,
|
| + time,
|
| + kRadiusX,
|
| + kRadiusY,
|
| + kAngle,
|
| + kForce);
|
| + EXPECT_TRUE(provider()->OnTouchEvent(&move0_1));
|
| +
|
| + TouchEvent move1_1(ET_TOUCH_MOVED,
|
| + gfx::PointF(100, 200),
|
| + 0,
|
| + kTouchId1,
|
| + time,
|
| + kRadiusX,
|
| + kRadiusY,
|
| + kAngle,
|
| + kForce);
|
| + EXPECT_TRUE(provider()->OnTouchEvent(&move1_1));
|
|
|
| time += base::TimeDelta::FromMilliseconds(10);
|
| - TouchEvent move0_2(ET_TOUCH_MOVED, gfx::PointF(10, 10), 0, kTouchId0, time,
|
| - kRadiusX, kRadiusY, kAngle, kForce);
|
| + TouchEvent move0_2(ET_TOUCH_MOVED,
|
| + gfx::PointF(10, 10),
|
| + 0,
|
| + kTouchId0,
|
| + time,
|
| + kRadiusX,
|
| + kRadiusY,
|
| + kAngle,
|
| + kForce);
|
| // Nothing has changed, so ignore the move.
|
| - EXPECT_FALSE(provider()->OnTouchEvent(move0_2));
|
| -
|
| - TouchEvent move1_2(ET_TOUCH_MOVED, gfx::PointF(100, 200), 0, kTouchId1, time,
|
| - kRadiusX, kRadiusY, kAngle, kForce);
|
| + EXPECT_FALSE(provider()->OnTouchEvent(&move0_2));
|
| +
|
| + TouchEvent move1_2(ET_TOUCH_MOVED,
|
| + gfx::PointF(100, 200),
|
| + 0,
|
| + kTouchId1,
|
| + time,
|
| + kRadiusX,
|
| + kRadiusY,
|
| + kAngle,
|
| + kForce);
|
| // Nothing has changed, so ignore the move.
|
| - EXPECT_FALSE(provider()->OnTouchEvent(move1_2));
|
| + EXPECT_FALSE(provider()->OnTouchEvent(&move1_2));
|
|
|
| time += base::TimeDelta::FromMilliseconds(10);
|
| - TouchEvent move0_3(ET_TOUCH_MOVED, gfx::PointF(70, 75.1f), 0, kTouchId0, time,
|
| - kRadiusX, kRadiusY, kAngle, kForce);
|
| + TouchEvent move0_3(ET_TOUCH_MOVED,
|
| + gfx::PointF(70, 75.1f),
|
| + 0,
|
| + kTouchId0,
|
| + time,
|
| + kRadiusX,
|
| + kRadiusY,
|
| + kAngle,
|
| + kForce);
|
| // Position has changed, so don't ignore the move.
|
| - EXPECT_TRUE(provider()->OnTouchEvent(move0_3));
|
| + EXPECT_TRUE(provider()->OnTouchEvent(&move0_3));
|
|
|
| time += base::TimeDelta::FromMilliseconds(10);
|
| - TouchEvent move0_4(ET_TOUCH_MOVED, gfx::PointF(70, 75.1f), 0, kTouchId0, time,
|
| - kRadiusX, kRadiusY + 1, kAngle, kForce);
|
| + TouchEvent move0_4(ET_TOUCH_MOVED,
|
| + gfx::PointF(70, 75.1f),
|
| + 0,
|
| + kTouchId0,
|
| + time,
|
| + kRadiusX,
|
| + kRadiusY + 1,
|
| + kAngle,
|
| + kForce);
|
| }
|
|
|
| +// TODO(jdduke): Test whether event marked as scroll trigger.
|
| +
|
| } // namespace ui
|
|
|