OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "ui/events/blink/input_handler_proxy.h" | 5 #include "ui/events/blink/input_handler_proxy.h" |
6 | 6 |
7 #include "base/macros.h" | 7 #include "base/macros.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "cc/input/main_thread_scrolling_reason.h" | 9 #include "cc/input/main_thread_scrolling_reason.h" |
10 #include "cc/trees/swap_promise_monitor.h" | 10 #include "cc/trees/swap_promise_monitor.h" |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
124 } | 124 } |
125 | 125 |
126 void BindToClient(cc::InputHandlerClient* client) override {} | 126 void BindToClient(cc::InputHandlerClient* client) override {} |
127 | 127 |
128 void MouseMoveAt(const gfx::Point& mouse_position) override {} | 128 void MouseMoveAt(const gfx::Point& mouse_position) override {} |
129 | 129 |
130 MOCK_CONST_METHOD2(IsCurrentlyScrollingLayerAt, | 130 MOCK_CONST_METHOD2(IsCurrentlyScrollingLayerAt, |
131 bool(const gfx::Point& point, | 131 bool(const gfx::Point& point, |
132 cc::InputHandler::ScrollInputType type)); | 132 cc::InputHandler::ScrollInputType type)); |
133 | 133 |
134 MOCK_CONST_METHOD0(HaveWheelEventHandlers, bool()); | 134 MOCK_CONST_METHOD1( |
| 135 GetEventListenerProperties, |
| 136 cc::EventListenerProperties(cc::EventListenerClass event_class)); |
135 MOCK_METHOD1(DoTouchEventsBlockScrollAt, bool(const gfx::Point& point)); | 137 MOCK_METHOD1(DoTouchEventsBlockScrollAt, bool(const gfx::Point& point)); |
136 | 138 |
137 MOCK_METHOD0(RequestUpdateForSynchronousInputHandler, void()); | 139 MOCK_METHOD0(RequestUpdateForSynchronousInputHandler, void()); |
138 MOCK_METHOD1(SetSynchronousInputHandlerRootScrollOffset, | 140 MOCK_METHOD1(SetSynchronousInputHandlerRootScrollOffset, |
139 void(const gfx::ScrollOffset& root_offset)); | 141 void(const gfx::ScrollOffset& root_offset)); |
140 | 142 |
141 bool IsCurrentlyScrollingInnerViewport() const override { | 143 bool IsCurrentlyScrollingInnerViewport() const override { |
142 return is_scrolling_root_; | 144 return is_scrolling_root_; |
143 } | 145 } |
144 void set_is_scrolling_root(bool is) { is_scrolling_root_ = is; } | 146 void set_is_scrolling_root(bool is) { is_scrolling_root_ = is; } |
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
618 | 620 |
619 VERIFY_AND_RESET_MOCKS(); | 621 VERIFY_AND_RESET_MOCKS(); |
620 } | 622 } |
621 | 623 |
622 TEST_P(InputHandlerProxyTest, GesturePinch) { | 624 TEST_P(InputHandlerProxyTest, GesturePinch) { |
623 // We shouldn't send any events to the widget for this gesture. | 625 // We shouldn't send any events to the widget for this gesture. |
624 expected_disposition_ = InputHandlerProxy::DID_HANDLE; | 626 expected_disposition_ = InputHandlerProxy::DID_HANDLE; |
625 VERIFY_AND_RESET_MOCKS(); | 627 VERIFY_AND_RESET_MOCKS(); |
626 | 628 |
627 gesture_.type = WebInputEvent::GesturePinchBegin; | 629 gesture_.type = WebInputEvent::GesturePinchBegin; |
628 EXPECT_CALL(mock_input_handler_, HaveWheelEventHandlers()) | 630 EXPECT_CALL(mock_input_handler_, |
629 .WillOnce(testing::Return(false)); | 631 GetEventListenerProperties(cc::EventListenerClass::kMouseWheel)) |
| 632 .WillOnce(testing::Return(cc::EventListenerProperties::kNone)); |
630 EXPECT_CALL(mock_input_handler_, PinchGestureBegin()); | 633 EXPECT_CALL(mock_input_handler_, PinchGestureBegin()); |
631 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 634 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
632 | 635 |
633 VERIFY_AND_RESET_MOCKS(); | 636 VERIFY_AND_RESET_MOCKS(); |
634 | 637 |
635 gesture_.type = WebInputEvent::GesturePinchUpdate; | 638 gesture_.type = WebInputEvent::GesturePinchUpdate; |
636 gesture_.data.pinchUpdate.scale = 1.5; | 639 gesture_.data.pinchUpdate.scale = 1.5; |
637 gesture_.x = 7; | 640 gesture_.x = 7; |
638 gesture_.y = 13; | 641 gesture_.y = 13; |
639 EXPECT_CALL(mock_input_handler_, PinchGestureUpdate(1.5, gfx::Point(7, 13))); | 642 EXPECT_CALL(mock_input_handler_, PinchGestureUpdate(1.5, gfx::Point(7, 13))); |
(...skipping 27 matching lines...) Expand all Loading... |
667 | 670 |
668 VERIFY_AND_RESET_MOCKS(); | 671 VERIFY_AND_RESET_MOCKS(); |
669 } | 672 } |
670 | 673 |
671 TEST_P(InputHandlerProxyTest, GesturePinchWithWheelHandler) { | 674 TEST_P(InputHandlerProxyTest, GesturePinchWithWheelHandler) { |
672 // We will send the synthetic wheel event to the widget. | 675 // We will send the synthetic wheel event to the widget. |
673 expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE; | 676 expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE; |
674 VERIFY_AND_RESET_MOCKS(); | 677 VERIFY_AND_RESET_MOCKS(); |
675 | 678 |
676 gesture_.type = WebInputEvent::GesturePinchBegin; | 679 gesture_.type = WebInputEvent::GesturePinchBegin; |
677 EXPECT_CALL(mock_input_handler_, HaveWheelEventHandlers()) | 680 EXPECT_CALL(mock_input_handler_, |
678 .WillOnce(testing::Return(true)); | 681 GetEventListenerProperties(cc::EventListenerClass::kMouseWheel)) |
| 682 .WillOnce(testing::Return(cc::EventListenerProperties::kBlocking)); |
679 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 683 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
680 | 684 |
681 VERIFY_AND_RESET_MOCKS(); | 685 VERIFY_AND_RESET_MOCKS(); |
682 | 686 |
683 gesture_.type = WebInputEvent::GesturePinchUpdate; | 687 gesture_.type = WebInputEvent::GesturePinchUpdate; |
684 gesture_.data.pinchUpdate.scale = 1.5; | 688 gesture_.data.pinchUpdate.scale = 1.5; |
685 gesture_.x = 7; | 689 gesture_.x = 7; |
686 gesture_.y = 13; | 690 gesture_.y = 13; |
687 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 691 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
688 | 692 |
(...skipping 27 matching lines...) Expand all Loading... |
716 gesture_.type = WebInputEvent::GestureScrollUpdate; | 720 gesture_.type = WebInputEvent::GestureScrollUpdate; |
717 gesture_.data.scrollUpdate.deltaY = 40; | 721 gesture_.data.scrollUpdate.deltaY = 40; |
718 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 722 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
719 | 723 |
720 // However, after the pinch gesture starts, they should go to the impl | 724 // However, after the pinch gesture starts, they should go to the impl |
721 // thread. | 725 // thread. |
722 expected_disposition_ = InputHandlerProxy::DID_HANDLE; | 726 expected_disposition_ = InputHandlerProxy::DID_HANDLE; |
723 VERIFY_AND_RESET_MOCKS(); | 727 VERIFY_AND_RESET_MOCKS(); |
724 | 728 |
725 gesture_.type = WebInputEvent::GesturePinchBegin; | 729 gesture_.type = WebInputEvent::GesturePinchBegin; |
726 EXPECT_CALL(mock_input_handler_, HaveWheelEventHandlers()) | 730 EXPECT_CALL(mock_input_handler_, |
727 .WillOnce(testing::Return(false)); | 731 GetEventListenerProperties(cc::EventListenerClass::kMouseWheel)) |
| 732 .WillOnce(testing::Return(cc::EventListenerProperties::kNone)); |
728 EXPECT_CALL(mock_input_handler_, PinchGestureBegin()); | 733 EXPECT_CALL(mock_input_handler_, PinchGestureBegin()); |
729 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); | 734 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); |
730 | 735 |
731 VERIFY_AND_RESET_MOCKS(); | 736 VERIFY_AND_RESET_MOCKS(); |
732 | 737 |
733 gesture_.type = WebInputEvent::GesturePinchUpdate; | 738 gesture_.type = WebInputEvent::GesturePinchUpdate; |
734 gesture_.data.pinchUpdate.scale = 1.5; | 739 gesture_.data.pinchUpdate.scale = 1.5; |
735 gesture_.x = 7; | 740 gesture_.x = 7; |
736 gesture_.y = 13; | 741 gesture_.y = 13; |
737 EXPECT_CALL(mock_input_handler_, PinchGestureUpdate(1.5, gfx::Point(7, 13))); | 742 EXPECT_CALL(mock_input_handler_, PinchGestureUpdate(1.5, gfx::Point(7, 13))); |
(...skipping 1787 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2525 testing::Mock::VerifyAndClearExpectations(&mock_input_handler); | 2530 testing::Mock::VerifyAndClearExpectations(&mock_input_handler); |
2526 testing::Mock::VerifyAndClearExpectations(&mock_client); | 2531 testing::Mock::VerifyAndClearExpectations(&mock_client); |
2527 testing::Mock::VerifyAndClearExpectations(&mock_synchronous_input_handler); | 2532 testing::Mock::VerifyAndClearExpectations(&mock_synchronous_input_handler); |
2528 } | 2533 } |
2529 | 2534 |
2530 INSTANTIATE_TEST_CASE_P(AnimateInput, | 2535 INSTANTIATE_TEST_CASE_P(AnimateInput, |
2531 InputHandlerProxyTest, | 2536 InputHandlerProxyTest, |
2532 testing::ValuesIn(test_types)); | 2537 testing::ValuesIn(test_types)); |
2533 } // namespace test | 2538 } // namespace test |
2534 } // namespace ui | 2539 } // namespace ui |
OLD | NEW |