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 |