| 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_METHOD1(SetWhiteListedTouchAction, void(cc::TouchAction touch_action)); | 324 MOCK_METHOD1(SetWhiteListedTouchAction, void(cc::TouchAction touch_action)); |
| 323 | 325 |
| 324 private: | 326 private: |
| 325 DISALLOW_COPY_AND_ASSIGN(MockInputHandlerProxyClient); | 327 DISALLOW_COPY_AND_ASSIGN(MockInputHandlerProxyClient); |
| 326 }; | 328 }; |
| 327 | 329 |
| 328 class MockInputHandlerProxyClientWithDidAnimateForInput | 330 class MockInputHandlerProxyClientWithDidAnimateForInput |
| 329 : public MockInputHandlerProxyClient { | 331 : public MockInputHandlerProxyClient { |
| (...skipping 1888 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2218 if (!touchpad_and_wheel_scroll_latching_enabled_) { | 2220 if (!touchpad_and_wheel_scroll_latching_enabled_) { |
| 2219 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) | 2221 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) |
| 2220 .WillOnce(testing::Return(kImplThreadScrollState)); | 2222 .WillOnce(testing::Return(kImplThreadScrollState)); |
| 2221 } | 2223 } |
| 2222 EXPECT_CALL( | 2224 EXPECT_CALL( |
| 2223 mock_input_handler_, | 2225 mock_input_handler_, |
| 2224 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Lt(0)))) | 2226 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Lt(0)))) |
| 2225 .WillOnce(testing::Return(overscroll)); | 2227 .WillOnce(testing::Return(overscroll)); |
| 2226 EXPECT_CALL( | 2228 EXPECT_CALL( |
| 2227 mock_client_, | 2229 mock_client_, |
| 2228 DidOverscroll( | 2230 DidOverscroll(overscroll.accumulated_root_overscroll, |
| 2229 overscroll.accumulated_root_overscroll, | 2231 overscroll.unused_scroll_delta, |
| 2230 overscroll.unused_scroll_delta, | 2232 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)), |
| 2231 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)), | 2233 testing::_, overscroll.scroll_boundary_behavior)); |
| 2232 testing::_)); | |
| 2233 if (!touchpad_and_wheel_scroll_latching_enabled_) | 2234 if (!touchpad_and_wheel_scroll_latching_enabled_) |
| 2234 EXPECT_CALL(mock_input_handler_, ScrollEnd(testing::_)); | 2235 EXPECT_CALL(mock_input_handler_, ScrollEnd(testing::_)); |
| 2235 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); | 2236 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); |
| 2236 time += base::TimeDelta::FromMilliseconds(100); | 2237 time += base::TimeDelta::FromMilliseconds(100); |
| 2237 Animate(time); | 2238 Animate(time); |
| 2238 VERIFY_AND_RESET_MOCKS(); | 2239 VERIFY_AND_RESET_MOCKS(); |
| 2239 | 2240 |
| 2240 // The next call to animate will no longer scroll vertically. | 2241 // The next call to animate will no longer scroll vertically. |
| 2241 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); | 2242 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); |
| 2242 EXPECT_CALL(mock_input_handler_, | 2243 EXPECT_CALL(mock_input_handler_, |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2383 | 2384 |
| 2384 // The third animate hits the bottom content edge. | 2385 // The third animate hits the bottom content edge. |
| 2385 overscroll.accumulated_root_overscroll = gfx::Vector2dF(0, 100); | 2386 overscroll.accumulated_root_overscroll = gfx::Vector2dF(0, 100); |
| 2386 overscroll.unused_scroll_delta = gfx::Vector2dF(0, 100); | 2387 overscroll.unused_scroll_delta = gfx::Vector2dF(0, 100); |
| 2387 EXPECT_CALL( | 2388 EXPECT_CALL( |
| 2388 mock_input_handler_, | 2389 mock_input_handler_, |
| 2389 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Lt(0)))) | 2390 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Lt(0)))) |
| 2390 .WillOnce(testing::Return(overscroll)); | 2391 .WillOnce(testing::Return(overscroll)); |
| 2391 EXPECT_CALL( | 2392 EXPECT_CALL( |
| 2392 mock_client_, | 2393 mock_client_, |
| 2393 DidOverscroll( | 2394 DidOverscroll(overscroll.accumulated_root_overscroll, |
| 2394 overscroll.accumulated_root_overscroll, | 2395 overscroll.unused_scroll_delta, |
| 2395 overscroll.unused_scroll_delta, | 2396 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)), |
| 2396 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)), | 2397 testing::_, overscroll.scroll_boundary_behavior)); |
| 2397 testing::_)); | |
| 2398 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); | 2398 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); |
| 2399 time += base::TimeDelta::FromMilliseconds(10); | 2399 time += base::TimeDelta::FromMilliseconds(10); |
| 2400 Animate(time); | 2400 Animate(time); |
| 2401 VERIFY_AND_RESET_MOCKS(); | 2401 VERIFY_AND_RESET_MOCKS(); |
| 2402 | 2402 |
| 2403 // The next call to animate will no longer scroll vertically. | 2403 // The next call to animate will no longer scroll vertically. |
| 2404 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); | 2404 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); |
| 2405 EXPECT_CALL( | 2405 EXPECT_CALL( |
| 2406 mock_input_handler_, | 2406 mock_input_handler_, |
| 2407 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Eq(0)))) | 2407 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Eq(0)))) |
| 2408 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 2408 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 2409 time += base::TimeDelta::FromMilliseconds(10); | 2409 time += base::TimeDelta::FromMilliseconds(10); |
| 2410 Animate(time); | 2410 Animate(time); |
| 2411 VERIFY_AND_RESET_MOCKS(); | 2411 VERIFY_AND_RESET_MOCKS(); |
| 2412 | 2412 |
| 2413 // The next call will hit the right edge. | 2413 // The next call will hit the right edge. |
| 2414 overscroll.accumulated_root_overscroll = gfx::Vector2dF(100, 100); | 2414 overscroll.accumulated_root_overscroll = gfx::Vector2dF(100, 100); |
| 2415 overscroll.unused_scroll_delta = gfx::Vector2dF(100, 0); | 2415 overscroll.unused_scroll_delta = gfx::Vector2dF(100, 0); |
| 2416 EXPECT_CALL( | 2416 EXPECT_CALL( |
| 2417 mock_input_handler_, | 2417 mock_input_handler_, |
| 2418 ScrollBy(testing::Property(&cc::ScrollState::delta_x, testing::Lt(0)))) | 2418 ScrollBy(testing::Property(&cc::ScrollState::delta_x, testing::Lt(0)))) |
| 2419 .WillOnce(testing::Return(overscroll)); | 2419 .WillOnce(testing::Return(overscroll)); |
| 2420 EXPECT_CALL( | 2420 EXPECT_CALL( |
| 2421 mock_client_, | 2421 mock_client_, |
| 2422 DidOverscroll( | 2422 DidOverscroll(overscroll.accumulated_root_overscroll, |
| 2423 overscroll.accumulated_root_overscroll, | 2423 overscroll.unused_scroll_delta, |
| 2424 overscroll.unused_scroll_delta, | 2424 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)), |
| 2425 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)), | 2425 testing::_, overscroll.scroll_boundary_behavior)); |
| 2426 testing::_)); | |
| 2427 EXPECT_CALL(mock_input_handler_, ScrollEnd(testing::_)); | 2426 EXPECT_CALL(mock_input_handler_, ScrollEnd(testing::_)); |
| 2428 time += base::TimeDelta::FromMilliseconds(10); | 2427 time += base::TimeDelta::FromMilliseconds(10); |
| 2429 Animate(time); | 2428 Animate(time); |
| 2430 VERIFY_AND_RESET_MOCKS(); | 2429 VERIFY_AND_RESET_MOCKS(); |
| 2431 | 2430 |
| 2432 // The next call to animate will no longer scroll horizontally or vertically, | 2431 // The next call to animate will no longer scroll horizontally or vertically, |
| 2433 // and the fling should be cancelled. | 2432 // and the fling should be cancelled. |
| 2434 EXPECT_SET_NEEDS_ANIMATE_INPUT(0); | 2433 EXPECT_SET_NEEDS_ANIMATE_INPUT(0); |
| 2435 EXPECT_CALL(mock_input_handler_, ScrollBy(testing::_)).Times(0); | 2434 EXPECT_CALL(mock_input_handler_, ScrollBy(testing::_)).Times(0); |
| 2436 time += base::TimeDelta::FromMilliseconds(10); | 2435 time += base::TimeDelta::FromMilliseconds(10); |
| (...skipping 1673 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4110 INSTANTIATE_TEST_CASE_P(AnimateInput, | 4109 INSTANTIATE_TEST_CASE_P(AnimateInput, |
| 4111 InputHandlerProxyWithoutWheelScrollLatchingTest, | 4110 InputHandlerProxyWithoutWheelScrollLatchingTest, |
| 4112 testing::ValuesIn(test_types)); | 4111 testing::ValuesIn(test_types)); |
| 4113 | 4112 |
| 4114 INSTANTIATE_TEST_CASE_P(InputHandlerProxyEventQueueTests, | 4113 INSTANTIATE_TEST_CASE_P(InputHandlerProxyEventQueueTests, |
| 4115 InputHandlerProxyEventQueueTest, | 4114 InputHandlerProxyEventQueueTest, |
| 4116 testing::Bool()); | 4115 testing::Bool()); |
| 4117 | 4116 |
| 4118 } // namespace test | 4117 } // namespace test |
| 4119 } // namespace ui | 4118 } // namespace ui |
| OLD | NEW |