| 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 <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 | 305 |
| 306 std::unique_ptr<blink::WebGestureCurve> CreateFlingAnimationCurve( | 306 std::unique_ptr<blink::WebGestureCurve> CreateFlingAnimationCurve( |
| 307 WebGestureDevice deviceSource, | 307 WebGestureDevice deviceSource, |
| 308 const WebFloatPoint& velocity, | 308 const WebFloatPoint& velocity, |
| 309 const WebSize& cumulative_scroll) override { | 309 const WebSize& cumulative_scroll) override { |
| 310 return base::MakeUnique<FakeWebGestureCurve>( | 310 return base::MakeUnique<FakeWebGestureCurve>( |
| 311 blink::WebFloatSize(velocity.x, velocity.y), | 311 blink::WebFloatSize(velocity.x, velocity.y), |
| 312 blink::WebFloatSize(cumulative_scroll.width, cumulative_scroll.height)); | 312 blink::WebFloatSize(cumulative_scroll.width, cumulative_scroll.height)); |
| 313 } | 313 } |
| 314 | 314 |
| 315 MOCK_METHOD4(DidOverscroll, | 315 MOCK_METHOD5( |
| 316 void(const gfx::Vector2dF& accumulated_overscroll, | 316 DidOverscroll, |
| 317 const gfx::Vector2dF& latest_overscroll_delta, | 317 void(const gfx::Vector2dF& accumulated_overscroll, |
| 318 const gfx::Vector2dF& current_fling_velocity, | 318 const gfx::Vector2dF& latest_overscroll_delta, |
| 319 const gfx::PointF& causal_event_viewport_point)); | 319 const gfx::Vector2dF& current_fling_velocity, |
| 320 const gfx::PointF& causal_event_viewport_point, |
| 321 const cc::ScrollBoundaryBehavior& scroll_boundary_behavior)); |
| 320 void DidStopFlinging() override {} | 322 void DidStopFlinging() override {} |
| 321 void DidAnimateForInput() override {} | 323 void DidAnimateForInput() override {} |
| 322 MOCK_METHOD3(SetWhiteListedTouchAction, | 324 MOCK_METHOD3(SetWhiteListedTouchAction, |
| 323 void(cc::TouchAction touch_action, | 325 void(cc::TouchAction touch_action, |
| 324 uint32_t unique_touch_event_id, | 326 uint32_t unique_touch_event_id, |
| 325 InputHandlerProxy::EventDisposition event_disposition)); | 327 InputHandlerProxy::EventDisposition event_disposition)); |
| 326 | 328 |
| 327 private: | 329 private: |
| 328 DISALLOW_COPY_AND_ASSIGN(MockInputHandlerProxyClient); | 330 DISALLOW_COPY_AND_ASSIGN(MockInputHandlerProxyClient); |
| 329 }; | 331 }; |
| (...skipping 1902 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2232 if (!touchpad_and_wheel_scroll_latching_enabled_) { | 2234 if (!touchpad_and_wheel_scroll_latching_enabled_) { |
| 2233 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) | 2235 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) |
| 2234 .WillOnce(testing::Return(kImplThreadScrollState)); | 2236 .WillOnce(testing::Return(kImplThreadScrollState)); |
| 2235 } | 2237 } |
| 2236 EXPECT_CALL( | 2238 EXPECT_CALL( |
| 2237 mock_input_handler_, | 2239 mock_input_handler_, |
| 2238 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Lt(0)))) | 2240 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Lt(0)))) |
| 2239 .WillOnce(testing::Return(overscroll)); | 2241 .WillOnce(testing::Return(overscroll)); |
| 2240 EXPECT_CALL( | 2242 EXPECT_CALL( |
| 2241 mock_client_, | 2243 mock_client_, |
| 2242 DidOverscroll( | 2244 DidOverscroll(overscroll.accumulated_root_overscroll, |
| 2243 overscroll.accumulated_root_overscroll, | 2245 overscroll.unused_scroll_delta, |
| 2244 overscroll.unused_scroll_delta, | 2246 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)), |
| 2245 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)), | 2247 testing::_, overscroll.scroll_boundary_behavior)); |
| 2246 testing::_)); | |
| 2247 if (!touchpad_and_wheel_scroll_latching_enabled_) | 2248 if (!touchpad_and_wheel_scroll_latching_enabled_) |
| 2248 EXPECT_CALL(mock_input_handler_, ScrollEnd(testing::_)); | 2249 EXPECT_CALL(mock_input_handler_, ScrollEnd(testing::_)); |
| 2249 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); | 2250 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); |
| 2250 time += base::TimeDelta::FromMilliseconds(100); | 2251 time += base::TimeDelta::FromMilliseconds(100); |
| 2251 Animate(time); | 2252 Animate(time); |
| 2252 VERIFY_AND_RESET_MOCKS(); | 2253 VERIFY_AND_RESET_MOCKS(); |
| 2253 | 2254 |
| 2254 // The next call to animate will no longer scroll vertically. | 2255 // The next call to animate will no longer scroll vertically. |
| 2255 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); | 2256 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); |
| 2256 EXPECT_CALL(mock_input_handler_, | 2257 EXPECT_CALL(mock_input_handler_, |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2397 | 2398 |
| 2398 // The third animate hits the bottom content edge. | 2399 // The third animate hits the bottom content edge. |
| 2399 overscroll.accumulated_root_overscroll = gfx::Vector2dF(0, 100); | 2400 overscroll.accumulated_root_overscroll = gfx::Vector2dF(0, 100); |
| 2400 overscroll.unused_scroll_delta = gfx::Vector2dF(0, 100); | 2401 overscroll.unused_scroll_delta = gfx::Vector2dF(0, 100); |
| 2401 EXPECT_CALL( | 2402 EXPECT_CALL( |
| 2402 mock_input_handler_, | 2403 mock_input_handler_, |
| 2403 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Lt(0)))) | 2404 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Lt(0)))) |
| 2404 .WillOnce(testing::Return(overscroll)); | 2405 .WillOnce(testing::Return(overscroll)); |
| 2405 EXPECT_CALL( | 2406 EXPECT_CALL( |
| 2406 mock_client_, | 2407 mock_client_, |
| 2407 DidOverscroll( | 2408 DidOverscroll(overscroll.accumulated_root_overscroll, |
| 2408 overscroll.accumulated_root_overscroll, | 2409 overscroll.unused_scroll_delta, |
| 2409 overscroll.unused_scroll_delta, | 2410 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)), |
| 2410 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)), | 2411 testing::_, overscroll.scroll_boundary_behavior)); |
| 2411 testing::_)); | |
| 2412 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); | 2412 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); |
| 2413 time += base::TimeDelta::FromMilliseconds(10); | 2413 time += base::TimeDelta::FromMilliseconds(10); |
| 2414 Animate(time); | 2414 Animate(time); |
| 2415 VERIFY_AND_RESET_MOCKS(); | 2415 VERIFY_AND_RESET_MOCKS(); |
| 2416 | 2416 |
| 2417 // The next call to animate will no longer scroll vertically. | 2417 // The next call to animate will no longer scroll vertically. |
| 2418 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); | 2418 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); |
| 2419 EXPECT_CALL( | 2419 EXPECT_CALL( |
| 2420 mock_input_handler_, | 2420 mock_input_handler_, |
| 2421 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Eq(0)))) | 2421 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Eq(0)))) |
| 2422 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 2422 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 2423 time += base::TimeDelta::FromMilliseconds(10); | 2423 time += base::TimeDelta::FromMilliseconds(10); |
| 2424 Animate(time); | 2424 Animate(time); |
| 2425 VERIFY_AND_RESET_MOCKS(); | 2425 VERIFY_AND_RESET_MOCKS(); |
| 2426 | 2426 |
| 2427 // The next call will hit the right edge. | 2427 // The next call will hit the right edge. |
| 2428 overscroll.accumulated_root_overscroll = gfx::Vector2dF(100, 100); | 2428 overscroll.accumulated_root_overscroll = gfx::Vector2dF(100, 100); |
| 2429 overscroll.unused_scroll_delta = gfx::Vector2dF(100, 0); | 2429 overscroll.unused_scroll_delta = gfx::Vector2dF(100, 0); |
| 2430 EXPECT_CALL( | 2430 EXPECT_CALL( |
| 2431 mock_input_handler_, | 2431 mock_input_handler_, |
| 2432 ScrollBy(testing::Property(&cc::ScrollState::delta_x, testing::Lt(0)))) | 2432 ScrollBy(testing::Property(&cc::ScrollState::delta_x, testing::Lt(0)))) |
| 2433 .WillOnce(testing::Return(overscroll)); | 2433 .WillOnce(testing::Return(overscroll)); |
| 2434 EXPECT_CALL( | 2434 EXPECT_CALL( |
| 2435 mock_client_, | 2435 mock_client_, |
| 2436 DidOverscroll( | 2436 DidOverscroll(overscroll.accumulated_root_overscroll, |
| 2437 overscroll.accumulated_root_overscroll, | 2437 overscroll.unused_scroll_delta, |
| 2438 overscroll.unused_scroll_delta, | 2438 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)), |
| 2439 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)), | 2439 testing::_, overscroll.scroll_boundary_behavior)); |
| 2440 testing::_)); | |
| 2441 EXPECT_CALL(mock_input_handler_, ScrollEnd(testing::_)); | 2440 EXPECT_CALL(mock_input_handler_, ScrollEnd(testing::_)); |
| 2442 time += base::TimeDelta::FromMilliseconds(10); | 2441 time += base::TimeDelta::FromMilliseconds(10); |
| 2443 Animate(time); | 2442 Animate(time); |
| 2444 VERIFY_AND_RESET_MOCKS(); | 2443 VERIFY_AND_RESET_MOCKS(); |
| 2445 | 2444 |
| 2446 // The next call to animate will no longer scroll horizontally or vertically, | 2445 // The next call to animate will no longer scroll horizontally or vertically, |
| 2447 // and the fling should be cancelled. | 2446 // and the fling should be cancelled. |
| 2448 EXPECT_SET_NEEDS_ANIMATE_INPUT(0); | 2447 EXPECT_SET_NEEDS_ANIMATE_INPUT(0); |
| 2449 EXPECT_CALL(mock_input_handler_, ScrollBy(testing::_)).Times(0); | 2448 EXPECT_CALL(mock_input_handler_, ScrollBy(testing::_)).Times(0); |
| 2450 time += base::TimeDelta::FromMilliseconds(10); | 2449 time += base::TimeDelta::FromMilliseconds(10); |
| (...skipping 1721 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4172 INSTANTIATE_TEST_CASE_P(AnimateInput, | 4171 INSTANTIATE_TEST_CASE_P(AnimateInput, |
| 4173 InputHandlerProxyWithoutWheelScrollLatchingTest, | 4172 InputHandlerProxyWithoutWheelScrollLatchingTest, |
| 4174 testing::ValuesIn(test_types)); | 4173 testing::ValuesIn(test_types)); |
| 4175 | 4174 |
| 4176 INSTANTIATE_TEST_CASE_P(InputHandlerProxyEventQueueTests, | 4175 INSTANTIATE_TEST_CASE_P(InputHandlerProxyEventQueueTests, |
| 4177 InputHandlerProxyEventQueueTest, | 4176 InputHandlerProxyEventQueueTest, |
| 4178 testing::Bool()); | 4177 testing::Bool()); |
| 4179 | 4178 |
| 4180 } // namespace test | 4179 } // namespace test |
| 4181 } // namespace ui | 4180 } // namespace ui |
| OLD | NEW |