| 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 1894 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2224 if (!touchpad_and_wheel_scroll_latching_enabled_) { | 2226 if (!touchpad_and_wheel_scroll_latching_enabled_) { |
| 2225 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) | 2227 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) |
| 2226 .WillOnce(testing::Return(kImplThreadScrollState)); | 2228 .WillOnce(testing::Return(kImplThreadScrollState)); |
| 2227 } | 2229 } |
| 2228 EXPECT_CALL( | 2230 EXPECT_CALL( |
| 2229 mock_input_handler_, | 2231 mock_input_handler_, |
| 2230 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Lt(0)))) | 2232 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Lt(0)))) |
| 2231 .WillOnce(testing::Return(overscroll)); | 2233 .WillOnce(testing::Return(overscroll)); |
| 2232 EXPECT_CALL( | 2234 EXPECT_CALL( |
| 2233 mock_client_, | 2235 mock_client_, |
| 2234 DidOverscroll( | 2236 DidOverscroll(overscroll.accumulated_root_overscroll, |
| 2235 overscroll.accumulated_root_overscroll, | 2237 overscroll.unused_scroll_delta, |
| 2236 overscroll.unused_scroll_delta, | 2238 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)), |
| 2237 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)), | 2239 testing::_, overscroll.scroll_boundary_behavior)); |
| 2238 testing::_)); | |
| 2239 if (!touchpad_and_wheel_scroll_latching_enabled_) | 2240 if (!touchpad_and_wheel_scroll_latching_enabled_) |
| 2240 EXPECT_CALL(mock_input_handler_, ScrollEnd(testing::_)); | 2241 EXPECT_CALL(mock_input_handler_, ScrollEnd(testing::_)); |
| 2241 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); | 2242 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); |
| 2242 time += base::TimeDelta::FromMilliseconds(100); | 2243 time += base::TimeDelta::FromMilliseconds(100); |
| 2243 Animate(time); | 2244 Animate(time); |
| 2244 VERIFY_AND_RESET_MOCKS(); | 2245 VERIFY_AND_RESET_MOCKS(); |
| 2245 | 2246 |
| 2246 // The next call to animate will no longer scroll vertically. | 2247 // The next call to animate will no longer scroll vertically. |
| 2247 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); | 2248 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); |
| 2248 EXPECT_CALL(mock_input_handler_, | 2249 EXPECT_CALL(mock_input_handler_, |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2389 | 2390 |
| 2390 // The third animate hits the bottom content edge. | 2391 // The third animate hits the bottom content edge. |
| 2391 overscroll.accumulated_root_overscroll = gfx::Vector2dF(0, 100); | 2392 overscroll.accumulated_root_overscroll = gfx::Vector2dF(0, 100); |
| 2392 overscroll.unused_scroll_delta = gfx::Vector2dF(0, 100); | 2393 overscroll.unused_scroll_delta = gfx::Vector2dF(0, 100); |
| 2393 EXPECT_CALL( | 2394 EXPECT_CALL( |
| 2394 mock_input_handler_, | 2395 mock_input_handler_, |
| 2395 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Lt(0)))) | 2396 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Lt(0)))) |
| 2396 .WillOnce(testing::Return(overscroll)); | 2397 .WillOnce(testing::Return(overscroll)); |
| 2397 EXPECT_CALL( | 2398 EXPECT_CALL( |
| 2398 mock_client_, | 2399 mock_client_, |
| 2399 DidOverscroll( | 2400 DidOverscroll(overscroll.accumulated_root_overscroll, |
| 2400 overscroll.accumulated_root_overscroll, | 2401 overscroll.unused_scroll_delta, |
| 2401 overscroll.unused_scroll_delta, | 2402 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)), |
| 2402 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)), | 2403 testing::_, overscroll.scroll_boundary_behavior)); |
| 2403 testing::_)); | |
| 2404 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); | 2404 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); |
| 2405 time += base::TimeDelta::FromMilliseconds(10); | 2405 time += base::TimeDelta::FromMilliseconds(10); |
| 2406 Animate(time); | 2406 Animate(time); |
| 2407 VERIFY_AND_RESET_MOCKS(); | 2407 VERIFY_AND_RESET_MOCKS(); |
| 2408 | 2408 |
| 2409 // The next call to animate will no longer scroll vertically. | 2409 // The next call to animate will no longer scroll vertically. |
| 2410 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); | 2410 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); |
| 2411 EXPECT_CALL( | 2411 EXPECT_CALL( |
| 2412 mock_input_handler_, | 2412 mock_input_handler_, |
| 2413 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Eq(0)))) | 2413 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Eq(0)))) |
| 2414 .WillOnce(testing::Return(scroll_result_did_scroll_)); | 2414 .WillOnce(testing::Return(scroll_result_did_scroll_)); |
| 2415 time += base::TimeDelta::FromMilliseconds(10); | 2415 time += base::TimeDelta::FromMilliseconds(10); |
| 2416 Animate(time); | 2416 Animate(time); |
| 2417 VERIFY_AND_RESET_MOCKS(); | 2417 VERIFY_AND_RESET_MOCKS(); |
| 2418 | 2418 |
| 2419 // The next call will hit the right edge. | 2419 // The next call will hit the right edge. |
| 2420 overscroll.accumulated_root_overscroll = gfx::Vector2dF(100, 100); | 2420 overscroll.accumulated_root_overscroll = gfx::Vector2dF(100, 100); |
| 2421 overscroll.unused_scroll_delta = gfx::Vector2dF(100, 0); | 2421 overscroll.unused_scroll_delta = gfx::Vector2dF(100, 0); |
| 2422 EXPECT_CALL( | 2422 EXPECT_CALL( |
| 2423 mock_input_handler_, | 2423 mock_input_handler_, |
| 2424 ScrollBy(testing::Property(&cc::ScrollState::delta_x, testing::Lt(0)))) | 2424 ScrollBy(testing::Property(&cc::ScrollState::delta_x, testing::Lt(0)))) |
| 2425 .WillOnce(testing::Return(overscroll)); | 2425 .WillOnce(testing::Return(overscroll)); |
| 2426 EXPECT_CALL( | 2426 EXPECT_CALL( |
| 2427 mock_client_, | 2427 mock_client_, |
| 2428 DidOverscroll( | 2428 DidOverscroll(overscroll.accumulated_root_overscroll, |
| 2429 overscroll.accumulated_root_overscroll, | 2429 overscroll.unused_scroll_delta, |
| 2430 overscroll.unused_scroll_delta, | 2430 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)), |
| 2431 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)), | 2431 testing::_, overscroll.scroll_boundary_behavior)); |
| 2432 testing::_)); | |
| 2433 EXPECT_CALL(mock_input_handler_, ScrollEnd(testing::_)); | 2432 EXPECT_CALL(mock_input_handler_, ScrollEnd(testing::_)); |
| 2434 time += base::TimeDelta::FromMilliseconds(10); | 2433 time += base::TimeDelta::FromMilliseconds(10); |
| 2435 Animate(time); | 2434 Animate(time); |
| 2436 VERIFY_AND_RESET_MOCKS(); | 2435 VERIFY_AND_RESET_MOCKS(); |
| 2437 | 2436 |
| 2438 // The next call to animate will no longer scroll horizontally or vertically, | 2437 // The next call to animate will no longer scroll horizontally or vertically, |
| 2439 // and the fling should be cancelled. | 2438 // and the fling should be cancelled. |
| 2440 EXPECT_SET_NEEDS_ANIMATE_INPUT(0); | 2439 EXPECT_SET_NEEDS_ANIMATE_INPUT(0); |
| 2441 EXPECT_CALL(mock_input_handler_, ScrollBy(testing::_)).Times(0); | 2440 EXPECT_CALL(mock_input_handler_, ScrollBy(testing::_)).Times(0); |
| 2442 time += base::TimeDelta::FromMilliseconds(10); | 2441 time += base::TimeDelta::FromMilliseconds(10); |
| (...skipping 1721 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4164 INSTANTIATE_TEST_CASE_P(AnimateInput, | 4163 INSTANTIATE_TEST_CASE_P(AnimateInput, |
| 4165 InputHandlerProxyWithoutWheelScrollLatchingTest, | 4164 InputHandlerProxyWithoutWheelScrollLatchingTest, |
| 4166 testing::ValuesIn(test_types)); | 4165 testing::ValuesIn(test_types)); |
| 4167 | 4166 |
| 4168 INSTANTIATE_TEST_CASE_P(InputHandlerProxyEventQueueTests, | 4167 INSTANTIATE_TEST_CASE_P(InputHandlerProxyEventQueueTests, |
| 4169 InputHandlerProxyEventQueueTest, | 4168 InputHandlerProxyEventQueueTest, |
| 4170 testing::Bool()); | 4169 testing::Bool()); |
| 4171 | 4170 |
| 4172 } // namespace test | 4171 } // namespace test |
| 4173 } // namespace ui | 4172 } // namespace ui |
| OLD | NEW |