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 "content/renderer/input/input_handler_proxy.h" | 5 #include "content/renderer/input/input_handler_proxy.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "cc/base/swap_promise_monitor.h" | 9 #include "cc/base/swap_promise_monitor.h" |
10 #include "content/common/input/did_overscroll_params.h" | 10 #include "content/common/input/did_overscroll_params.h" |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 | 110 |
111 virtual void BindToClient(cc::InputHandlerClient* client) override {} | 111 virtual void BindToClient(cc::InputHandlerClient* client) override {} |
112 | 112 |
113 virtual void MouseMoveAt(const gfx::Point& mouse_position) override {} | 113 virtual void MouseMoveAt(const gfx::Point& mouse_position) override {} |
114 | 114 |
115 MOCK_METHOD2(IsCurrentlyScrollingLayerAt, | 115 MOCK_METHOD2(IsCurrentlyScrollingLayerAt, |
116 bool(const gfx::Point& point, | 116 bool(const gfx::Point& point, |
117 cc::InputHandler::ScrollInputType type)); | 117 cc::InputHandler::ScrollInputType type)); |
118 | 118 |
119 MOCK_METHOD1(HaveWheelEventHandlersAt, bool(const gfx::Point& point)); | 119 MOCK_METHOD1(HaveWheelEventHandlersAt, bool(const gfx::Point& point)); |
120 MOCK_METHOD1(HaveTouchEventHandlersAt, bool(const gfx::Point& point)); | 120 MOCK_METHOD1(DoTouchEventsBlockScrollAt, bool(const gfx::Point& point)); |
121 | 121 |
122 virtual void SetRootLayerScrollOffsetDelegate( | 122 virtual void SetRootLayerScrollOffsetDelegate( |
123 cc::LayerScrollOffsetDelegate* root_layer_scroll_offset_delegate) | 123 cc::LayerScrollOffsetDelegate* root_layer_scroll_offset_delegate) |
124 override {} | 124 override {} |
125 | 125 |
126 virtual void OnRootLayerDelegatedScrollOffsetChanged() override {} | 126 virtual void OnRootLayerDelegatedScrollOffsetChanged() override {} |
127 | 127 |
128 DISALLOW_COPY_AND_ASSIGN(MockInputHandler); | 128 DISALLOW_COPY_AND_ASSIGN(MockInputHandler); |
129 }; | 129 }; |
130 | 130 |
(...skipping 1363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1494 EXPECT_FALSE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); | 1494 EXPECT_FALSE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); |
1495 } | 1495 } |
1496 | 1496 |
1497 TEST_F(InputHandlerProxyTest, MultiTouchPointHitTestNegative) { | 1497 TEST_F(InputHandlerProxyTest, MultiTouchPointHitTestNegative) { |
1498 // None of the three touch points fall in the touch region. So the event | 1498 // None of the three touch points fall in the touch region. So the event |
1499 // should be dropped. | 1499 // should be dropped. |
1500 expected_disposition_ = InputHandlerProxy::DROP_EVENT; | 1500 expected_disposition_ = InputHandlerProxy::DROP_EVENT; |
1501 VERIFY_AND_RESET_MOCKS(); | 1501 VERIFY_AND_RESET_MOCKS(); |
1502 | 1502 |
1503 EXPECT_CALL(mock_input_handler_, | 1503 EXPECT_CALL(mock_input_handler_, |
1504 HaveTouchEventHandlersAt( | 1504 DoTouchEventsBlockScrollAt( |
1505 testing::Property(&gfx::Point::x, testing::Gt(0)))) | 1505 testing::Property(&gfx::Point::x, testing::Gt(0)))) |
1506 .WillOnce(testing::Return(false)); | 1506 .WillOnce(testing::Return(false)); |
1507 EXPECT_CALL(mock_input_handler_, | 1507 EXPECT_CALL(mock_input_handler_, |
1508 HaveTouchEventHandlersAt( | 1508 DoTouchEventsBlockScrollAt( |
1509 testing::Property(&gfx::Point::x, testing::Lt(0)))) | 1509 testing::Property(&gfx::Point::x, testing::Lt(0)))) |
1510 .WillOnce(testing::Return(false)); | 1510 .WillOnce(testing::Return(false)); |
1511 | 1511 |
1512 WebTouchEvent touch; | 1512 WebTouchEvent touch; |
1513 touch.type = WebInputEvent::TouchStart; | 1513 touch.type = WebInputEvent::TouchStart; |
1514 | 1514 |
1515 touch.touchesLength = 3; | 1515 touch.touchesLength = 3; |
1516 touch.touches[0] = CreateWebTouchPoint(WebTouchPoint::StateStationary, 0, 0); | 1516 touch.touches[0] = CreateWebTouchPoint(WebTouchPoint::StateStationary, 0, 0); |
1517 touch.touches[1] = CreateWebTouchPoint(WebTouchPoint::StatePressed, 10, 10); | 1517 touch.touches[1] = CreateWebTouchPoint(WebTouchPoint::StatePressed, 10, 10); |
1518 touch.touches[2] = CreateWebTouchPoint(WebTouchPoint::StatePressed, -10, 10); | 1518 touch.touches[2] = CreateWebTouchPoint(WebTouchPoint::StatePressed, -10, 10); |
1519 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(touch)); | 1519 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(touch)); |
1520 } | 1520 } |
1521 | 1521 |
1522 TEST_F(InputHandlerProxyTest, MultiTouchPointHitTestPositive) { | 1522 TEST_F(InputHandlerProxyTest, MultiTouchPointHitTestPositive) { |
1523 // One of the touch points is on a touch-region. So the event should be sent | 1523 // One of the touch points is on a touch-region. So the event should be sent |
1524 // to the main thread. | 1524 // to the main thread. |
1525 expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE; | 1525 expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE; |
1526 VERIFY_AND_RESET_MOCKS(); | 1526 VERIFY_AND_RESET_MOCKS(); |
1527 | 1527 |
1528 EXPECT_CALL(mock_input_handler_, | 1528 EXPECT_CALL(mock_input_handler_, |
1529 HaveTouchEventHandlersAt( | 1529 DoTouchEventsBlockScrollAt( |
1530 testing::Property(&gfx::Point::x, testing::Eq(0)))) | 1530 testing::Property(&gfx::Point::x, testing::Eq(0)))) |
1531 .WillOnce(testing::Return(false)); | 1531 .WillOnce(testing::Return(false)); |
1532 EXPECT_CALL(mock_input_handler_, | 1532 EXPECT_CALL(mock_input_handler_, |
1533 HaveTouchEventHandlersAt( | 1533 DoTouchEventsBlockScrollAt( |
1534 testing::Property(&gfx::Point::x, testing::Gt(0)))) | 1534 testing::Property(&gfx::Point::x, testing::Gt(0)))) |
1535 .WillOnce(testing::Return(true)); | 1535 .WillOnce(testing::Return(true)); |
1536 // Since the second touch point hits a touch-region, there should be no | 1536 // Since the second touch point hits a touch-region, there should be no |
1537 // hit-testing for the third touch point. | 1537 // hit-testing for the third touch point. |
1538 | 1538 |
1539 WebTouchEvent touch; | 1539 WebTouchEvent touch; |
1540 touch.type = WebInputEvent::TouchStart; | 1540 touch.type = WebInputEvent::TouchStart; |
1541 | 1541 |
1542 touch.touchesLength = 3; | 1542 touch.touchesLength = 3; |
1543 touch.touches[0] = CreateWebTouchPoint(WebTouchPoint::StatePressed, 0, 0); | 1543 touch.touches[0] = CreateWebTouchPoint(WebTouchPoint::StatePressed, 0, 0); |
(...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2122 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); | 2122 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); |
2123 EXPECT_CALL(mock_client, DidAnimateForInput()); | 2123 EXPECT_CALL(mock_client, DidAnimateForInput()); |
2124 base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSeconds(10); | 2124 base::TimeTicks time = base::TimeTicks() + base::TimeDelta::FromSeconds(10); |
2125 input_handler_->Animate(time); | 2125 input_handler_->Animate(time); |
2126 | 2126 |
2127 testing::Mock::VerifyAndClearExpectations(&mock_client); | 2127 testing::Mock::VerifyAndClearExpectations(&mock_client); |
2128 } | 2128 } |
2129 | 2129 |
2130 } // namespace | 2130 } // namespace |
2131 } // namespace content | 2131 } // namespace content |
OLD | NEW |