| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/logging.h" | 6 #include "base/logging.h" |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
| 9 #include "base/time/time.h" | 9 #include "base/time/time.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 // Test | 123 // Test |
| 124 virtual void SetUp() OVERRIDE { SetUpWithConfig(GetDefaultConfig()); } | 124 virtual void SetUp() OVERRIDE { SetUpWithConfig(GetDefaultConfig()); } |
| 125 | 125 |
| 126 virtual void TearDown() OVERRIDE { | 126 virtual void TearDown() OVERRIDE { |
| 127 gestures_.clear(); | 127 gestures_.clear(); |
| 128 gesture_provider_.reset(); | 128 gesture_provider_.reset(); |
| 129 } | 129 } |
| 130 | 130 |
| 131 // GestureProviderClient | 131 // GestureProviderClient |
| 132 virtual void OnGestureEvent(const GestureEventData& gesture) OVERRIDE { | 132 virtual void OnGestureEvent(const GestureEventData& gesture) OVERRIDE { |
| 133 if (gesture.type == ET_GESTURE_SCROLL_BEGIN) | 133 if (gesture.type() == ET_GESTURE_SCROLL_BEGIN) |
| 134 active_scroll_begin_event_.reset(new GestureEventData(gesture)); | 134 active_scroll_begin_event_.reset(new GestureEventData(gesture)); |
| 135 gestures_.push_back(gesture); | 135 gestures_.push_back(gesture); |
| 136 } | 136 } |
| 137 | 137 |
| 138 void SetUpWithConfig(const GestureProvider::Config& config) { | 138 void SetUpWithConfig(const GestureProvider::Config& config) { |
| 139 gesture_provider_.reset(new GestureProvider(config, this)); | 139 gesture_provider_.reset(new GestureProvider(config, this)); |
| 140 gesture_provider_->SetMultiTouchZoomSupportEnabled(false); | 140 gesture_provider_->SetMultiTouchZoomSupportEnabled(false); |
| 141 } | 141 } |
| 142 | 142 |
| 143 void ResetGestureDetection() { | 143 void ResetGestureDetection() { |
| 144 CancelActiveTouchSequence(); | 144 CancelActiveTouchSequence(); |
| 145 gestures_.clear(); | 145 gestures_.clear(); |
| 146 } | 146 } |
| 147 bool CancelActiveTouchSequence() { | 147 bool CancelActiveTouchSequence() { |
| 148 if (!gesture_provider_->current_down_event()) | 148 if (!gesture_provider_->current_down_event()) |
| 149 return false; | 149 return false; |
| 150 return gesture_provider_->OnTouchEvent( | 150 return gesture_provider_->OnTouchEvent( |
| 151 *gesture_provider_->current_down_event()->Cancel()); | 151 *gesture_provider_->current_down_event()->Cancel()); |
| 152 } | 152 } |
| 153 | 153 |
| 154 bool HasReceivedGesture(EventType type) const { | 154 bool HasReceivedGesture(EventType type) const { |
| 155 for (size_t i = 0; i < gestures_.size(); ++i) { | 155 for (size_t i = 0; i < gestures_.size(); ++i) { |
| 156 if (gestures_[i].type == type) | 156 if (gestures_[i].type() == type) |
| 157 return true; | 157 return true; |
| 158 } | 158 } |
| 159 return false; | 159 return false; |
| 160 } | 160 } |
| 161 | 161 |
| 162 const GestureEventData& GetMostRecentGestureEvent() const { | 162 const GestureEventData& GetMostRecentGestureEvent() const { |
| 163 EXPECT_FALSE(gestures_.empty()); | 163 EXPECT_FALSE(gestures_.empty()); |
| 164 return gestures_.back(); | 164 return gestures_.back(); |
| 165 } | 165 } |
| 166 | 166 |
| 167 EventType GetMostRecentGestureEventType() const { | 167 EventType GetMostRecentGestureEventType() const { |
| 168 EXPECT_FALSE(gestures_.empty()); | 168 EXPECT_FALSE(gestures_.empty()); |
| 169 return gestures_.back().type; | 169 return gestures_.back().type(); |
| 170 } | 170 } |
| 171 | 171 |
| 172 size_t GetReceivedGestureCount() const { return gestures_.size(); } | 172 size_t GetReceivedGestureCount() const { return gestures_.size(); } |
| 173 | 173 |
| 174 const GestureEventData& GetReceivedGesture(size_t index) const { | 174 const GestureEventData& GetReceivedGesture(size_t index) const { |
| 175 EXPECT_LT(index, GetReceivedGestureCount()); | 175 EXPECT_LT(index, GetReceivedGestureCount()); |
| 176 return gestures_[index]; | 176 return gestures_[index]; |
| 177 } | 177 } |
| 178 | 178 |
| 179 const GestureEventData* GetActiveScrollBeginEvent() const { | 179 const GestureEventData* GetActiveScrollBeginEvent() const { |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 228 SetUpWithConfig(config); | 228 SetUpWithConfig(config); |
| 229 } | 229 } |
| 230 | 230 |
| 231 void SetMinPinchUpdateSpanDelta(float min_pinch_update_span_delta) { | 231 void SetMinPinchUpdateSpanDelta(float min_pinch_update_span_delta) { |
| 232 GestureProvider::Config config = GetDefaultConfig(); | 232 GestureProvider::Config config = GetDefaultConfig(); |
| 233 config.scale_gesture_detector_config.min_pinch_update_span_delta = | 233 config.scale_gesture_detector_config.min_pinch_update_span_delta = |
| 234 min_pinch_update_span_delta; | 234 min_pinch_update_span_delta; |
| 235 SetUpWithConfig(config); | 235 SetUpWithConfig(config); |
| 236 } | 236 } |
| 237 | 237 |
| 238 void SetMinGestureBoundLength(float min_gesture_bound_length) { |
| 239 GestureProvider::Config config = GetDefaultConfig(); |
| 240 config.min_gesture_bounds_length = min_gesture_bound_length; |
| 241 SetUpWithConfig(config); |
| 242 } |
| 243 |
| 238 bool HasDownEvent() const { return gesture_provider_->current_down_event(); } | 244 bool HasDownEvent() const { return gesture_provider_->current_down_event(); } |
| 239 | 245 |
| 240 protected: | 246 protected: |
| 241 void CheckScrollEventSequenceForEndActionType( | 247 void CheckScrollEventSequenceForEndActionType( |
| 242 MotionEvent::Action end_action_type) { | 248 MotionEvent::Action end_action_type) { |
| 243 base::TimeTicks event_time = base::TimeTicks::Now(); | 249 base::TimeTicks event_time = base::TimeTicks::Now(); |
| 244 const float scroll_to_x = kFakeCoordX + 100; | 250 const float scroll_to_x = kFakeCoordX + 100; |
| 245 const float scroll_to_y = kFakeCoordY + 100; | 251 const float scroll_to_y = kFakeCoordY + 100; |
| 246 int motion_event_id = 0; | 252 int motion_event_id = 0; |
| 247 | 253 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 261 EXPECT_TRUE(gesture_provider_->IsScrollInProgress()); | 267 EXPECT_TRUE(gesture_provider_->IsScrollInProgress()); |
| 262 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_BEGIN)); | 268 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_BEGIN)); |
| 263 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); | 269 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); |
| 264 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, GetMostRecentGestureEventType()); | 270 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, GetMostRecentGestureEventType()); |
| 265 EXPECT_EQ(BoundsForSingleMockTouchAtLocation(scroll_to_x, scroll_to_y), | 271 EXPECT_EQ(BoundsForSingleMockTouchAtLocation(scroll_to_x, scroll_to_y), |
| 266 GetMostRecentGestureEvent().details.bounding_box()); | 272 GetMostRecentGestureEvent().details.bounding_box()); |
| 267 ASSERT_EQ(3U, GetReceivedGestureCount()) << "Only TapDown, " | 273 ASSERT_EQ(3U, GetReceivedGestureCount()) << "Only TapDown, " |
| 268 "ScrollBegin and ScrollBy " | 274 "ScrollBegin and ScrollBy " |
| 269 "should have been sent"; | 275 "should have been sent"; |
| 270 | 276 |
| 271 EXPECT_EQ(ET_GESTURE_SCROLL_BEGIN, GetReceivedGesture(1).type); | 277 EXPECT_EQ(ET_GESTURE_SCROLL_BEGIN, GetReceivedGesture(1).type()); |
| 272 EXPECT_EQ(motion_event_id, GetReceivedGesture(1).motion_event_id); | 278 EXPECT_EQ(motion_event_id, GetReceivedGesture(1).motion_event_id); |
| 273 EXPECT_EQ(event_time + kOneSecond, GetReceivedGesture(1).time) | 279 EXPECT_EQ(event_time + kOneSecond, GetReceivedGesture(1).time) |
| 274 << "ScrollBegin should have the time of the ACTION_MOVE"; | 280 << "ScrollBegin should have the time of the ACTION_MOVE"; |
| 275 | 281 |
| 276 event = ObtainMotionEvent( | 282 event = ObtainMotionEvent( |
| 277 event_time + kOneSecond, end_action_type, scroll_to_x, scroll_to_y); | 283 event_time + kOneSecond, end_action_type, scroll_to_x, scroll_to_y); |
| 278 event.SetId(++motion_event_id); | 284 event.SetId(++motion_event_id); |
| 279 | 285 |
| 280 gesture_provider_->OnTouchEvent(event); | 286 gesture_provider_->OnTouchEvent(event); |
| 281 EXPECT_FALSE(gesture_provider_->IsScrollInProgress()); | 287 EXPECT_FALSE(gesture_provider_->IsScrollInProgress()); |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 365 base::MessageLoop::current()->Run(); | 371 base::MessageLoop::current()->Run(); |
| 366 } | 372 } |
| 367 | 373 |
| 368 std::vector<GestureEventData> gestures_; | 374 std::vector<GestureEventData> gestures_; |
| 369 scoped_ptr<GestureProvider> gesture_provider_; | 375 scoped_ptr<GestureProvider> gesture_provider_; |
| 370 scoped_ptr<GestureEventData> active_scroll_begin_event_; | 376 scoped_ptr<GestureEventData> active_scroll_begin_event_; |
| 371 base::MessageLoopForUI message_loop_; | 377 base::MessageLoopForUI message_loop_; |
| 372 }; | 378 }; |
| 373 | 379 |
| 374 // Verify that a DOWN followed shortly by an UP will trigger a single tap. | 380 // Verify that a DOWN followed shortly by an UP will trigger a single tap. |
| 375 TEST_F(GestureProviderTest, GestureTapTap) { | 381 TEST_F(GestureProviderTest, GestureTap) { |
| 376 base::TimeTicks event_time = base::TimeTicks::Now(); | 382 base::TimeTicks event_time = base::TimeTicks::Now(); |
| 377 int motion_event_id = 0; | 383 int motion_event_id = 0; |
| 378 | 384 |
| 379 gesture_provider_->SetDoubleTapSupportForPlatformEnabled(false); | 385 gesture_provider_->SetDoubleTapSupportForPlatformEnabled(false); |
| 380 | 386 |
| 381 MockMotionEvent event = | 387 MockMotionEvent event = |
| 382 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); | 388 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); |
| 383 event.SetId(++motion_event_id); | 389 event.SetId(++motion_event_id); |
| 384 | 390 |
| 385 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 391 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 397 // Ensure tap details have been set. | 403 // Ensure tap details have been set. |
| 398 EXPECT_EQ(1, GetMostRecentGestureEvent().details.tap_count()); | 404 EXPECT_EQ(1, GetMostRecentGestureEvent().details.tap_count()); |
| 399 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); | 405 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); |
| 400 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); | 406 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
| 401 EXPECT_EQ(BoundsForSingleMockTouchAtLocation(kFakeCoordX, kFakeCoordY), | 407 EXPECT_EQ(BoundsForSingleMockTouchAtLocation(kFakeCoordX, kFakeCoordY), |
| 402 GetMostRecentGestureEvent().details.bounding_box()); | 408 GetMostRecentGestureEvent().details.bounding_box()); |
| 403 } | 409 } |
| 404 | 410 |
| 405 // Verify that a DOWN followed shortly by an UP will trigger | 411 // Verify that a DOWN followed shortly by an UP will trigger |
| 406 // a ET_GESTURE_TAP_UNCONFIRMED event if double-tap is enabled. | 412 // a ET_GESTURE_TAP_UNCONFIRMED event if double-tap is enabled. |
| 407 TEST_F(GestureProviderTest, GestureTapTapWithDelay) { | 413 TEST_F(GestureProviderTest, GestureTapWithDelay) { |
| 408 base::TimeTicks event_time = base::TimeTicks::Now(); | 414 base::TimeTicks event_time = base::TimeTicks::Now(); |
| 409 int motion_event_id = 0; | 415 int motion_event_id = 0; |
| 410 | 416 |
| 411 gesture_provider_->SetDoubleTapSupportForPlatformEnabled(true); | 417 gesture_provider_->SetDoubleTapSupportForPlatformEnabled(true); |
| 412 | 418 |
| 413 MockMotionEvent event = | 419 MockMotionEvent event = |
| 414 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); | 420 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); |
| 415 event.SetId(++motion_event_id); | 421 event.SetId(++motion_event_id); |
| 416 | 422 |
| 417 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 423 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 513 kFakeCoordX * 5, | 519 kFakeCoordX * 5, |
| 514 kFakeCoordY * 5); | 520 kFakeCoordY * 5); |
| 515 event.SetId(++motion_event_id); | 521 event.SetId(++motion_event_id); |
| 516 | 522 |
| 517 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 523 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| 518 EXPECT_TRUE(gesture_provider_->IsScrollInProgress()); | 524 EXPECT_TRUE(gesture_provider_->IsScrollInProgress()); |
| 519 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_BEGIN)); | 525 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_SCROLL_BEGIN)); |
| 520 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, GetMostRecentGestureEventType()); | 526 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, GetMostRecentGestureEventType()); |
| 521 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); | 527 EXPECT_EQ(motion_event_id, GetMostRecentGestureEvent().motion_event_id); |
| 522 ASSERT_EQ(3U, GetReceivedGestureCount()); | 528 ASSERT_EQ(3U, GetReceivedGestureCount()); |
| 523 ASSERT_EQ(ET_GESTURE_SCROLL_BEGIN, GetReceivedGesture(1).type); | 529 ASSERT_EQ(ET_GESTURE_SCROLL_BEGIN, GetReceivedGesture(1).type()); |
| 524 EXPECT_EQ(motion_event_id, GetReceivedGesture(1).motion_event_id); | 530 EXPECT_EQ(motion_event_id, GetReceivedGesture(1).motion_event_id); |
| 525 | 531 |
| 526 // We don't want to take a dependency here on exactly how hints are calculated | 532 // We don't want to take a dependency here on exactly how hints are calculated |
| 527 // for a fling (eg. may depend on velocity), so just validate the direction. | 533 // for a fling (eg. may depend on velocity), so just validate the direction. |
| 528 int hint_x = GetReceivedGesture(1).details.scroll_x_hint(); | 534 int hint_x = GetReceivedGesture(1).details.scroll_x_hint(); |
| 529 int hint_y = GetReceivedGesture(1).details.scroll_y_hint(); | 535 int hint_y = GetReceivedGesture(1).details.scroll_y_hint(); |
| 530 EXPECT_TRUE(hint_x > 0 && hint_y > 0 && hint_x > hint_y) | 536 EXPECT_TRUE(hint_x > 0 && hint_y > 0 && hint_x > hint_y) |
| 531 << "ScrollBegin hint should be in positive X axis"; | 537 << "ScrollBegin hint should be in positive X axis"; |
| 532 | 538 |
| 533 event = ObtainMotionEvent(event_time + delta_time * 2, | 539 event = ObtainMotionEvent(event_time + delta_time * 2, |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 631 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 637 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
| 632 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); | 638 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
| 633 | 639 |
| 634 event = ObtainMotionEvent(event_time + kOneMicrosecond * 3, | 640 event = ObtainMotionEvent(event_time + kOneMicrosecond * 3, |
| 635 MotionEvent::ACTION_UP, | 641 MotionEvent::ACTION_UP, |
| 636 kFakeCoordX, | 642 kFakeCoordX, |
| 637 kFakeCoordY + 1); | 643 kFakeCoordY + 1); |
| 638 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 644 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| 639 | 645 |
| 640 const GestureEventData& double_tap = GetMostRecentGestureEvent(); | 646 const GestureEventData& double_tap = GetMostRecentGestureEvent(); |
| 641 EXPECT_EQ(ET_GESTURE_DOUBLE_TAP, double_tap.type); | 647 EXPECT_EQ(ET_GESTURE_DOUBLE_TAP, double_tap.type()); |
| 642 // Ensure tap details have been set. | 648 // Ensure tap details have been set. |
| 643 EXPECT_EQ(10, double_tap.details.bounding_box().width()); | 649 EXPECT_EQ(10, double_tap.details.bounding_box().width()); |
| 644 EXPECT_EQ(10, double_tap.details.bounding_box().height()); | 650 EXPECT_EQ(10, double_tap.details.bounding_box().height()); |
| 645 EXPECT_EQ(1, double_tap.details.tap_count()); | 651 EXPECT_EQ(1, double_tap.details.tap_count()); |
| 646 } | 652 } |
| 647 | 653 |
| 648 TEST_F(GestureProviderTest, DoubleTapDragZoomBasic) { | 654 TEST_F(GestureProviderTest, DoubleTapDragZoomBasic) { |
| 649 const base::TimeTicks down_time_1 = TimeTicks::Now(); | 655 const base::TimeTicks down_time_1 = TimeTicks::Now(); |
| 650 const base::TimeTicks down_time_2 = down_time_1 + kOneMicrosecond * 2; | 656 const base::TimeTicks down_time_2 = down_time_1 + kOneMicrosecond * 2; |
| 651 | 657 |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 730 | 736 |
| 731 event = ObtainMotionEvent(event_time + kOneMicrosecond * 2, | 737 event = ObtainMotionEvent(event_time + kOneMicrosecond * 2, |
| 732 MotionEvent::ACTION_MOVE, | 738 MotionEvent::ACTION_MOVE, |
| 733 kFakeCoordX - delta_x, | 739 kFakeCoordX - delta_x, |
| 734 kFakeCoordY - delta_y); | 740 kFakeCoordY - delta_y); |
| 735 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 741 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| 736 | 742 |
| 737 // Make sure the reported gesture event has all the expected details. | 743 // Make sure the reported gesture event has all the expected details. |
| 738 ASSERT_LT(0U, GetReceivedGestureCount()); | 744 ASSERT_LT(0U, GetReceivedGestureCount()); |
| 739 GestureEventData gesture = GetMostRecentGestureEvent(); | 745 GestureEventData gesture = GetMostRecentGestureEvent(); |
| 740 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, gesture.type); | 746 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, gesture.type()); |
| 741 EXPECT_EQ(event_time + kOneMicrosecond * 2, gesture.time); | 747 EXPECT_EQ(event_time + kOneMicrosecond * 2, gesture.time); |
| 742 EXPECT_EQ(kFakeCoordX - delta_x, gesture.x); | 748 EXPECT_EQ(kFakeCoordX - delta_x, gesture.x); |
| 743 EXPECT_EQ(kFakeCoordY - delta_y, gesture.y); | 749 EXPECT_EQ(kFakeCoordY - delta_y, gesture.y); |
| 744 EXPECT_EQ(1, gesture.details.touch_points()); | 750 EXPECT_EQ(1, gesture.details.touch_points()); |
| 745 | 751 |
| 746 // No horizontal delta because of snapping. | 752 // No horizontal delta because of snapping. |
| 747 EXPECT_EQ(0, gesture.details.scroll_x()); | 753 EXPECT_EQ(0, gesture.details.scroll_x()); |
| 748 EXPECT_EQ(-delta_y / 2, gesture.details.scroll_y()); | 754 EXPECT_EQ(-delta_y / 2, gesture.details.scroll_y()); |
| 749 } | 755 } |
| 750 | 756 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 774 // horizontal motion. | 780 // horizontal motion. |
| 775 for(int i = 1; i <= 10; i++) { | 781 for(int i = 1; i <= 10; i++) { |
| 776 event = ObtainMotionEvent(event_time + kOneMicrosecond * i, | 782 event = ObtainMotionEvent(event_time + kOneMicrosecond * i, |
| 777 MotionEvent::ACTION_MOVE, | 783 MotionEvent::ACTION_MOVE, |
| 778 kFakeCoordX + delta_x * i, | 784 kFakeCoordX + delta_x * i, |
| 779 kFakeCoordY + delta_y * i); | 785 kFakeCoordY + delta_y * i); |
| 780 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 786 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| 781 | 787 |
| 782 ASSERT_LT(0U, GetReceivedGestureCount()); | 788 ASSERT_LT(0U, GetReceivedGestureCount()); |
| 783 GestureEventData gesture = GetMostRecentGestureEvent(); | 789 GestureEventData gesture = GetMostRecentGestureEvent(); |
| 784 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, gesture.type); | 790 EXPECT_EQ(ET_GESTURE_SCROLL_UPDATE, gesture.type()); |
| 785 EXPECT_EQ(event_time + kOneMicrosecond * i, gesture.time); | 791 EXPECT_EQ(event_time + kOneMicrosecond * i, gesture.time); |
| 786 EXPECT_EQ(1, gesture.details.touch_points()); | 792 EXPECT_EQ(1, gesture.details.touch_points()); |
| 787 | 793 |
| 788 // Verify that the event co-ordinates are still the precise values we | 794 // Verify that the event co-ordinates are still the precise values we |
| 789 // supplied. | 795 // supplied. |
| 790 EXPECT_EQ(kFakeCoordX + delta_x * i, gesture.x); | 796 EXPECT_EQ(kFakeCoordX + delta_x * i, gesture.x); |
| 791 EXPECT_EQ(kFakeCoordY + delta_y * i, gesture.y); | 797 EXPECT_EQ(kFakeCoordY + delta_y * i, gesture.y); |
| 792 | 798 |
| 793 // Verify that we're scrolling vertically by the expected amount | 799 // Verify that we're scrolling vertically by the expected amount |
| 794 // (modulo rounding). | 800 // (modulo rounding). |
| (...skipping 930 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1725 // Verify that gesture begin and gesture end events are dispatched correctly. | 1731 // Verify that gesture begin and gesture end events are dispatched correctly. |
| 1726 TEST_F(GestureProviderTest, GestureBeginAndEnd) { | 1732 TEST_F(GestureProviderTest, GestureBeginAndEnd) { |
| 1727 EnableBeginEndTypes(); | 1733 EnableBeginEndTypes(); |
| 1728 base::TimeTicks event_time = base::TimeTicks::Now(); | 1734 base::TimeTicks event_time = base::TimeTicks::Now(); |
| 1729 | 1735 |
| 1730 EXPECT_EQ(0U, GetReceivedGestureCount()); | 1736 EXPECT_EQ(0U, GetReceivedGestureCount()); |
| 1731 MockMotionEvent event = | 1737 MockMotionEvent event = |
| 1732 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN, 1, 1); | 1738 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN, 1, 1); |
| 1733 event.pointer_count = 1; | 1739 event.pointer_count = 1; |
| 1734 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1740 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| 1735 EXPECT_EQ(ET_GESTURE_BEGIN, GetReceivedGesture(0).type); | 1741 EXPECT_EQ(ET_GESTURE_BEGIN, GetReceivedGesture(0).type()); |
| 1736 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 1742 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
| 1737 EXPECT_EQ(2U, GetReceivedGestureCount()); | 1743 EXPECT_EQ(2U, GetReceivedGestureCount()); |
| 1738 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); | 1744 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
| 1739 EXPECT_EQ(1, GetMostRecentGestureEvent().x); | 1745 EXPECT_EQ(1, GetMostRecentGestureEvent().x); |
| 1740 EXPECT_EQ(1, GetMostRecentGestureEvent().y); | 1746 EXPECT_EQ(1, GetMostRecentGestureEvent().y); |
| 1741 EXPECT_EQ(gfx::RectF(1 - kMockTouchRadius, | 1747 EXPECT_EQ(gfx::RectF(1 - kMockTouchRadius, |
| 1742 1 - kMockTouchRadius, | 1748 1 - kMockTouchRadius, |
| 1743 kMockTouchRadius * 2, | 1749 kMockTouchRadius * 2, |
| 1744 kMockTouchRadius * 2), | 1750 kMockTouchRadius * 2), |
| 1745 GetMostRecentGestureEvent().details.bounding_box()); | 1751 GetMostRecentGestureEvent().details.bounding_box()); |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1819 // when an ACTION_CANCEL is received. | 1825 // when an ACTION_CANCEL is received. |
| 1820 TEST_F(GestureProviderTest, GestureBeginAndEndOnCancel) { | 1826 TEST_F(GestureProviderTest, GestureBeginAndEndOnCancel) { |
| 1821 EnableBeginEndTypes(); | 1827 EnableBeginEndTypes(); |
| 1822 base::TimeTicks event_time = base::TimeTicks::Now(); | 1828 base::TimeTicks event_time = base::TimeTicks::Now(); |
| 1823 | 1829 |
| 1824 EXPECT_EQ(0U, GetReceivedGestureCount()); | 1830 EXPECT_EQ(0U, GetReceivedGestureCount()); |
| 1825 MockMotionEvent event = | 1831 MockMotionEvent event = |
| 1826 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN, 1, 1); | 1832 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN, 1, 1); |
| 1827 event.pointer_count = 1; | 1833 event.pointer_count = 1; |
| 1828 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1834 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| 1829 EXPECT_EQ(ET_GESTURE_BEGIN, GetReceivedGesture(0).type); | 1835 EXPECT_EQ(ET_GESTURE_BEGIN, GetReceivedGesture(0).type()); |
| 1830 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); | 1836 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
| 1831 EXPECT_EQ(2U, GetReceivedGestureCount()); | 1837 EXPECT_EQ(2U, GetReceivedGestureCount()); |
| 1832 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); | 1838 EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points()); |
| 1833 EXPECT_EQ(gfx::RectF(1 - kMockTouchRadius, | 1839 EXPECT_EQ(gfx::RectF(1 - kMockTouchRadius, |
| 1834 1 - kMockTouchRadius, | 1840 1 - kMockTouchRadius, |
| 1835 kMockTouchRadius * 2, | 1841 kMockTouchRadius * 2, |
| 1836 kMockTouchRadius * 2), | 1842 kMockTouchRadius * 2), |
| 1837 GetMostRecentGestureEvent().details.bounding_box()); | 1843 GetMostRecentGestureEvent().details.bounding_box()); |
| 1838 EXPECT_EQ(1, GetMostRecentGestureEvent().x); | 1844 EXPECT_EQ(1, GetMostRecentGestureEvent().x); |
| 1839 EXPECT_EQ(1, GetMostRecentGestureEvent().y); | 1845 EXPECT_EQ(1, GetMostRecentGestureEvent().y); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1858 EXPECT_EQ(3, GetMostRecentGestureEvent().details.touch_points()); | 1864 EXPECT_EQ(3, GetMostRecentGestureEvent().details.touch_points()); |
| 1859 EXPECT_EQ(3, GetMostRecentGestureEvent().x); | 1865 EXPECT_EQ(3, GetMostRecentGestureEvent().x); |
| 1860 EXPECT_EQ(3, GetMostRecentGestureEvent().y); | 1866 EXPECT_EQ(3, GetMostRecentGestureEvent().y); |
| 1861 | 1867 |
| 1862 event = ObtainMotionEvent( | 1868 event = ObtainMotionEvent( |
| 1863 event_time, MotionEvent::ACTION_CANCEL, 1, 1, 2, 2, 3, 3); | 1869 event_time, MotionEvent::ACTION_CANCEL, 1, 1, 2, 2, 3, 3); |
| 1864 event.pointer_count = 3; | 1870 event.pointer_count = 3; |
| 1865 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1871 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| 1866 EXPECT_EQ(7U, GetReceivedGestureCount()); | 1872 EXPECT_EQ(7U, GetReceivedGestureCount()); |
| 1867 EXPECT_EQ(3, GetReceivedGesture(4).details.touch_points()); | 1873 EXPECT_EQ(3, GetReceivedGesture(4).details.touch_points()); |
| 1868 EXPECT_EQ(ET_GESTURE_END, GetReceivedGesture(4).details.type()); | 1874 EXPECT_EQ(ET_GESTURE_END, GetReceivedGesture(4).type()); |
| 1869 EXPECT_EQ(2, GetReceivedGesture(5).details.touch_points()); | 1875 EXPECT_EQ(2, GetReceivedGesture(5).details.touch_points()); |
| 1870 EXPECT_EQ(ET_GESTURE_END, GetReceivedGesture(5).details.type()); | 1876 EXPECT_EQ(ET_GESTURE_END, GetReceivedGesture(5).type()); |
| 1871 EXPECT_EQ(1, GetReceivedGesture(6).details.touch_points()); | 1877 EXPECT_EQ(1, GetReceivedGesture(6).details.touch_points()); |
| 1872 EXPECT_EQ(ET_GESTURE_END, GetReceivedGesture(6).details.type()); | 1878 EXPECT_EQ(ET_GESTURE_END, GetReceivedGesture(6).type()); |
| 1873 EXPECT_EQ(1, GetReceivedGesture(4).x); | 1879 EXPECT_EQ(1, GetReceivedGesture(4).x); |
| 1874 EXPECT_EQ(1, GetReceivedGesture(4).y); | 1880 EXPECT_EQ(1, GetReceivedGesture(4).y); |
| 1875 EXPECT_EQ(2, GetReceivedGesture(5).x); | 1881 EXPECT_EQ(2, GetReceivedGesture(5).x); |
| 1876 EXPECT_EQ(2, GetReceivedGesture(5).y); | 1882 EXPECT_EQ(2, GetReceivedGesture(5).y); |
| 1877 EXPECT_EQ(3, GetReceivedGesture(6).x); | 1883 EXPECT_EQ(3, GetReceivedGesture(6).x); |
| 1878 EXPECT_EQ(3, GetReceivedGesture(6).y); | 1884 EXPECT_EQ(3, GetReceivedGesture(6).y); |
| 1879 } | 1885 } |
| 1880 | 1886 |
| 1881 // Test a simple two finger tap | 1887 // Test a simple two finger tap |
| 1882 TEST_F(GestureProviderTest, TwoFingerTap) { | 1888 TEST_F(GestureProviderTest, TwoFingerTap) { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1914 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1920 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| 1915 | 1921 |
| 1916 event = ObtainMotionEvent(event_time, | 1922 event = ObtainMotionEvent(event_time, |
| 1917 MotionEvent::ACTION_POINTER_UP, | 1923 MotionEvent::ACTION_POINTER_UP, |
| 1918 0, | 1924 0, |
| 1919 0, | 1925 0, |
| 1920 kMaxTwoFingerTapSeparation, | 1926 kMaxTwoFingerTapSeparation, |
| 1921 0); | 1927 0); |
| 1922 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1928 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| 1923 | 1929 |
| 1924 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetReceivedGesture(0).type); | 1930 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetReceivedGesture(0).type()); |
| 1925 EXPECT_EQ(ET_GESTURE_SCROLL_BEGIN, GetReceivedGesture(1).type); | 1931 EXPECT_EQ(ET_GESTURE_SCROLL_BEGIN, GetReceivedGesture(1).type()); |
| 1926 EXPECT_EQ(ET_GESTURE_TWO_FINGER_TAP, GetReceivedGesture(2).type); | 1932 EXPECT_EQ(ET_GESTURE_TWO_FINGER_TAP, GetReceivedGesture(2).type()); |
| 1927 EXPECT_EQ(3U, GetReceivedGestureCount()); | 1933 EXPECT_EQ(3U, GetReceivedGestureCount()); |
| 1928 | 1934 |
| 1929 EXPECT_EQ(kMockTouchRadius * 2, | 1935 EXPECT_EQ(kMockTouchRadius * 2, |
| 1930 GetReceivedGesture(2).details.first_finger_width()); | 1936 GetReceivedGesture(2).details.first_finger_width()); |
| 1931 EXPECT_EQ(kMockTouchRadius * 2, | 1937 EXPECT_EQ(kMockTouchRadius * 2, |
| 1932 GetReceivedGesture(2).details.first_finger_height()); | 1938 GetReceivedGesture(2).details.first_finger_height()); |
| 1933 } | 1939 } |
| 1934 | 1940 |
| 1935 // Test preventing a two finger tap via finger movement. | 1941 // Test preventing a two finger tap via finger movement. |
| 1936 TEST_F(GestureProviderTest, TwoFingerTapCancelledByFingerMovement) { | 1942 TEST_F(GestureProviderTest, TwoFingerTapCancelledByFingerMovement) { |
| (...skipping 22 matching lines...) Expand all Loading... |
| 1959 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1965 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| 1960 | 1966 |
| 1961 event = ObtainMotionEvent(event_time, | 1967 event = ObtainMotionEvent(event_time, |
| 1962 MotionEvent::ACTION_POINTER_UP, | 1968 MotionEvent::ACTION_POINTER_UP, |
| 1963 kFakeCoordX, | 1969 kFakeCoordX, |
| 1964 kFakeCoordY, | 1970 kFakeCoordY, |
| 1965 kFakeCoordX, | 1971 kFakeCoordX, |
| 1966 kFakeCoordY); | 1972 kFakeCoordY); |
| 1967 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 1973 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| 1968 | 1974 |
| 1969 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetReceivedGesture(0).type); | 1975 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetReceivedGesture(0).type()); |
| 1970 EXPECT_EQ(ET_GESTURE_SCROLL_BEGIN, GetReceivedGesture(1).type); | 1976 EXPECT_EQ(ET_GESTURE_SCROLL_BEGIN, GetReceivedGesture(1).type()); |
| 1971 EXPECT_EQ(2U, GetReceivedGestureCount()); | 1977 EXPECT_EQ(2U, GetReceivedGestureCount()); |
| 1972 } | 1978 } |
| 1973 | 1979 |
| 1974 // Test preventing a two finger tap by waiting too long before releasing the | 1980 // Test preventing a two finger tap by waiting too long before releasing the |
| 1975 // secondary pointer. | 1981 // secondary pointer. |
| 1976 TEST_F(GestureProviderTest, TwoFingerTapCancelledByDelay) { | 1982 TEST_F(GestureProviderTest, TwoFingerTapCancelledByDelay) { |
| 1977 base::TimeDelta two_finger_tap_timeout = kOneSecond; | 1983 base::TimeDelta two_finger_tap_timeout = kOneSecond; |
| 1978 EnableTwoFingerTap(kMaxTwoFingerTapSeparation, two_finger_tap_timeout); | 1984 EnableTwoFingerTap(kMaxTwoFingerTapSeparation, two_finger_tap_timeout); |
| 1979 base::TimeTicks event_time = base::TimeTicks::Now(); | 1985 base::TimeTicks event_time = base::TimeTicks::Now(); |
| 1980 | 1986 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1996 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 2002 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| 1997 | 2003 |
| 1998 event = ObtainMotionEvent(event_time + kOneSecond + kOneMicrosecond, | 2004 event = ObtainMotionEvent(event_time + kOneSecond + kOneMicrosecond, |
| 1999 MotionEvent::ACTION_POINTER_UP, | 2005 MotionEvent::ACTION_POINTER_UP, |
| 2000 kFakeCoordX, | 2006 kFakeCoordX, |
| 2001 kFakeCoordY, | 2007 kFakeCoordY, |
| 2002 kFakeCoordX + kMaxTwoFingerTapSeparation / 2, | 2008 kFakeCoordX + kMaxTwoFingerTapSeparation / 2, |
| 2003 kFakeCoordY); | 2009 kFakeCoordY); |
| 2004 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 2010 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| 2005 | 2011 |
| 2006 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetReceivedGesture(0).type); | 2012 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetReceivedGesture(0).type()); |
| 2007 EXPECT_EQ(1U, GetReceivedGestureCount()); | 2013 EXPECT_EQ(1U, GetReceivedGestureCount()); |
| 2008 } | 2014 } |
| 2009 | 2015 |
| 2010 // Test preventing a two finger tap by pressing the secondary pointer too far | 2016 // Test preventing a two finger tap by pressing the secondary pointer too far |
| 2011 // from the first | 2017 // from the first |
| 2012 TEST_F(GestureProviderTest, TwoFingerTapCancelledByDistanceBetweenPointers) { | 2018 TEST_F(GestureProviderTest, TwoFingerTapCancelledByDistanceBetweenPointers) { |
| 2013 EnableTwoFingerTap(kMaxTwoFingerTapSeparation, base::TimeDelta()); | 2019 EnableTwoFingerTap(kMaxTwoFingerTapSeparation, base::TimeDelta()); |
| 2014 base::TimeTicks event_time = base::TimeTicks::Now(); | 2020 base::TimeTicks event_time = base::TimeTicks::Now(); |
| 2015 | 2021 |
| 2016 MockMotionEvent event = ObtainMotionEvent( | 2022 MockMotionEvent event = ObtainMotionEvent( |
| 2017 event_time, MotionEvent::ACTION_DOWN, kFakeCoordX, kFakeCoordY); | 2023 event_time, MotionEvent::ACTION_DOWN, kFakeCoordX, kFakeCoordY); |
| 2018 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 2024 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| 2019 | 2025 |
| 2020 event = ObtainMotionEvent(event_time, | 2026 event = ObtainMotionEvent(event_time, |
| 2021 MotionEvent::ACTION_POINTER_DOWN, | 2027 MotionEvent::ACTION_POINTER_DOWN, |
| 2022 kFakeCoordX, | 2028 kFakeCoordX, |
| 2023 kFakeCoordY, | 2029 kFakeCoordY, |
| 2024 kFakeCoordX + kMaxTwoFingerTapSeparation, | 2030 kFakeCoordX + kMaxTwoFingerTapSeparation, |
| 2025 kFakeCoordY); | 2031 kFakeCoordY); |
| 2026 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 2032 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| 2027 | 2033 |
| 2028 event = ObtainMotionEvent(event_time, | 2034 event = ObtainMotionEvent(event_time, |
| 2029 MotionEvent::ACTION_POINTER_UP, | 2035 MotionEvent::ACTION_POINTER_UP, |
| 2030 kFakeCoordX, | 2036 kFakeCoordX, |
| 2031 kFakeCoordY, | 2037 kFakeCoordY, |
| 2032 kFakeCoordX + kMaxTwoFingerTapSeparation, | 2038 kFakeCoordX + kMaxTwoFingerTapSeparation, |
| 2033 kFakeCoordY); | 2039 kFakeCoordY); |
| 2034 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 2040 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| 2035 | 2041 |
| 2036 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetReceivedGesture(0).type); | 2042 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetReceivedGesture(0).type()); |
| 2037 EXPECT_EQ(1U, GetReceivedGestureCount()); | 2043 EXPECT_EQ(1U, GetReceivedGestureCount()); |
| 2038 } | 2044 } |
| 2039 | 2045 |
| 2040 // Verify that pinch zoom only sends updates which exceed the | 2046 // Verify that pinch zoom only sends updates which exceed the |
| 2041 // min_pinch_update_span_delta. | 2047 // min_pinch_update_span_delta. |
| 2042 TEST_F(GestureProviderTest, PinchZoomWithThreshold) { | 2048 TEST_F(GestureProviderTest, PinchZoomWithThreshold) { |
| 2043 const float kMinPinchUpdateDistance = 5; | 2049 const float kMinPinchUpdateDistance = 5; |
| 2044 | 2050 |
| 2045 base::TimeTicks event_time = base::TimeTicks::Now(); | 2051 base::TimeTicks event_time = base::TimeTicks::Now(); |
| 2046 const float touch_slop = GetTouchSlop(); | 2052 const float touch_slop = GetTouchSlop(); |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2111 kFakeCoordY, | 2117 kFakeCoordY, |
| 2112 secondary_coord_x + kMinPinchUpdateDistance + | 2118 secondary_coord_x + kMinPinchUpdateDistance + |
| 2113 kOvershootMinPinchUpdateDistance, | 2119 kOvershootMinPinchUpdateDistance, |
| 2114 secondary_coord_y); | 2120 secondary_coord_y); |
| 2115 | 2121 |
| 2116 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); | 2122 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| 2117 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_PINCH_UPDATE)); | 2123 EXPECT_TRUE(HasReceivedGesture(ET_GESTURE_PINCH_UPDATE)); |
| 2118 EXPECT_EQ(2, GetMostRecentGestureEvent().details.touch_points()); | 2124 EXPECT_EQ(2, GetMostRecentGestureEvent().details.touch_points()); |
| 2119 } | 2125 } |
| 2120 | 2126 |
| 2127 // Verify that the min gesture bound setting is honored. |
| 2128 TEST_F(GestureProviderTest, MinGestureBoundLength) { |
| 2129 const float kMinGestureBoundLength = 10.f * kMockTouchRadius; |
| 2130 SetMinGestureBoundLength(kMinGestureBoundLength); |
| 2131 gesture_provider_->SetDoubleTapSupportForPlatformEnabled(false); |
| 2132 |
| 2133 base::TimeTicks event_time = base::TimeTicks::Now(); |
| 2134 MockMotionEvent event = |
| 2135 ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN); |
| 2136 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| 2137 |
| 2138 EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType()); |
| 2139 EXPECT_EQ(kMinGestureBoundLength, |
| 2140 GetMostRecentGestureEvent().details.bounding_box_f().width()); |
| 2141 EXPECT_EQ(kMinGestureBoundLength, |
| 2142 GetMostRecentGestureEvent().details.bounding_box_f().height()); |
| 2143 |
| 2144 event = |
| 2145 ObtainMotionEvent(event_time + kOneMicrosecond, MotionEvent::ACTION_UP); |
| 2146 EXPECT_TRUE(gesture_provider_->OnTouchEvent(event)); |
| 2147 EXPECT_EQ(ET_GESTURE_TAP, GetMostRecentGestureEventType()); |
| 2148 EXPECT_EQ(kMinGestureBoundLength, |
| 2149 GetMostRecentGestureEvent().details.bounding_box_f().width()); |
| 2150 EXPECT_EQ(kMinGestureBoundLength, |
| 2151 GetMostRecentGestureEvent().details.bounding_box_f().height()); |
| 2152 } |
| 2153 |
| 2121 } // namespace ui | 2154 } // namespace ui |
| OLD | NEW |