Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(164)

Side by Side Diff: ui/events/blink/input_handler_proxy_unittest.cc

Issue 2884423003: Use scroll-boundary-behavior to control overscroll-refresh/glow on android. (Closed)
Patch Set: Update the test Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 302
303 std::unique_ptr<blink::WebGestureCurve> CreateFlingAnimationCurve( 303 std::unique_ptr<blink::WebGestureCurve> CreateFlingAnimationCurve(
304 WebGestureDevice deviceSource, 304 WebGestureDevice deviceSource,
305 const WebFloatPoint& velocity, 305 const WebFloatPoint& velocity,
306 const WebSize& cumulative_scroll) override { 306 const WebSize& cumulative_scroll) override {
307 return base::MakeUnique<FakeWebGestureCurve>( 307 return base::MakeUnique<FakeWebGestureCurve>(
308 blink::WebFloatSize(velocity.x, velocity.y), 308 blink::WebFloatSize(velocity.x, velocity.y),
309 blink::WebFloatSize(cumulative_scroll.width, cumulative_scroll.height)); 309 blink::WebFloatSize(cumulative_scroll.width, cumulative_scroll.height));
310 } 310 }
311 311
312 MOCK_METHOD4(DidOverscroll, 312 MOCK_METHOD5(
313 void(const gfx::Vector2dF& accumulated_overscroll, 313 DidOverscroll,
314 const gfx::Vector2dF& latest_overscroll_delta, 314 void(const gfx::Vector2dF& accumulated_overscroll,
315 const gfx::Vector2dF& current_fling_velocity, 315 const gfx::Vector2dF& latest_overscroll_delta,
316 const gfx::PointF& causal_event_viewport_point)); 316 const gfx::Vector2dF& current_fling_velocity,
317 const gfx::PointF& causal_event_viewport_point,
318 const cc::ScrollBoundaryBehavior& scroll_boundary_behavior));
317 void DidStopFlinging() override {} 319 void DidStopFlinging() override {}
318 void DidAnimateForInput() override {} 320 void DidAnimateForInput() override {}
319 321
320 private: 322 private:
321 DISALLOW_COPY_AND_ASSIGN(MockInputHandlerProxyClient); 323 DISALLOW_COPY_AND_ASSIGN(MockInputHandlerProxyClient);
322 }; 324 };
323 325
324 class MockInputHandlerProxyClientWithDidAnimateForInput 326 class MockInputHandlerProxyClientWithDidAnimateForInput
325 : public MockInputHandlerProxyClient { 327 : public MockInputHandlerProxyClient {
326 public: 328 public:
(...skipping 1865 matching lines...) Expand 10 before | Expand all | Expand 10 after
2192 if (!touchpad_and_wheel_scroll_latching_enabled_) { 2194 if (!touchpad_and_wheel_scroll_latching_enabled_) {
2193 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) 2195 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
2194 .WillOnce(testing::Return(kImplThreadScrollState)); 2196 .WillOnce(testing::Return(kImplThreadScrollState));
2195 } 2197 }
2196 EXPECT_CALL( 2198 EXPECT_CALL(
2197 mock_input_handler_, 2199 mock_input_handler_,
2198 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Lt(0)))) 2200 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Lt(0))))
2199 .WillOnce(testing::Return(overscroll)); 2201 .WillOnce(testing::Return(overscroll));
2200 EXPECT_CALL( 2202 EXPECT_CALL(
2201 mock_client_, 2203 mock_client_,
2202 DidOverscroll( 2204 DidOverscroll(overscroll.accumulated_root_overscroll,
2203 overscroll.accumulated_root_overscroll, 2205 overscroll.unused_scroll_delta,
2204 overscroll.unused_scroll_delta, 2206 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)),
2205 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)), 2207 testing::_, overscroll.scroll_boundary_behavior));
2206 testing::_));
2207 if (!touchpad_and_wheel_scroll_latching_enabled_) 2208 if (!touchpad_and_wheel_scroll_latching_enabled_)
2208 EXPECT_CALL(mock_input_handler_, ScrollEnd(testing::_)); 2209 EXPECT_CALL(mock_input_handler_, ScrollEnd(testing::_));
2209 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); 2210 EXPECT_SET_NEEDS_ANIMATE_INPUT(1);
2210 time += base::TimeDelta::FromMilliseconds(100); 2211 time += base::TimeDelta::FromMilliseconds(100);
2211 Animate(time); 2212 Animate(time);
2212 VERIFY_AND_RESET_MOCKS(); 2213 VERIFY_AND_RESET_MOCKS();
2213 2214
2214 // The next call to animate will no longer scroll vertically. 2215 // The next call to animate will no longer scroll vertically.
2215 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); 2216 EXPECT_SET_NEEDS_ANIMATE_INPUT(1);
2216 EXPECT_CALL(mock_input_handler_, 2217 EXPECT_CALL(mock_input_handler_,
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
2357 2358
2358 // The third animate hits the bottom content edge. 2359 // The third animate hits the bottom content edge.
2359 overscroll.accumulated_root_overscroll = gfx::Vector2dF(0, 100); 2360 overscroll.accumulated_root_overscroll = gfx::Vector2dF(0, 100);
2360 overscroll.unused_scroll_delta = gfx::Vector2dF(0, 100); 2361 overscroll.unused_scroll_delta = gfx::Vector2dF(0, 100);
2361 EXPECT_CALL( 2362 EXPECT_CALL(
2362 mock_input_handler_, 2363 mock_input_handler_,
2363 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Lt(0)))) 2364 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Lt(0))))
2364 .WillOnce(testing::Return(overscroll)); 2365 .WillOnce(testing::Return(overscroll));
2365 EXPECT_CALL( 2366 EXPECT_CALL(
2366 mock_client_, 2367 mock_client_,
2367 DidOverscroll( 2368 DidOverscroll(overscroll.accumulated_root_overscroll,
2368 overscroll.accumulated_root_overscroll, 2369 overscroll.unused_scroll_delta,
2369 overscroll.unused_scroll_delta, 2370 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)),
2370 testing::Property(&gfx::Vector2dF::y, testing::Lt(0)), 2371 testing::_, overscroll.scroll_boundary_behavior));
2371 testing::_));
2372 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); 2372 EXPECT_SET_NEEDS_ANIMATE_INPUT(1);
2373 time += base::TimeDelta::FromMilliseconds(10); 2373 time += base::TimeDelta::FromMilliseconds(10);
2374 Animate(time); 2374 Animate(time);
2375 VERIFY_AND_RESET_MOCKS(); 2375 VERIFY_AND_RESET_MOCKS();
2376 2376
2377 // The next call to animate will no longer scroll vertically. 2377 // The next call to animate will no longer scroll vertically.
2378 EXPECT_SET_NEEDS_ANIMATE_INPUT(1); 2378 EXPECT_SET_NEEDS_ANIMATE_INPUT(1);
2379 EXPECT_CALL( 2379 EXPECT_CALL(
2380 mock_input_handler_, 2380 mock_input_handler_,
2381 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Eq(0)))) 2381 ScrollBy(testing::Property(&cc::ScrollState::delta_y, testing::Eq(0))))
2382 .WillOnce(testing::Return(scroll_result_did_scroll_)); 2382 .WillOnce(testing::Return(scroll_result_did_scroll_));
2383 time += base::TimeDelta::FromMilliseconds(10); 2383 time += base::TimeDelta::FromMilliseconds(10);
2384 Animate(time); 2384 Animate(time);
2385 VERIFY_AND_RESET_MOCKS(); 2385 VERIFY_AND_RESET_MOCKS();
2386 2386
2387 // The next call will hit the right edge. 2387 // The next call will hit the right edge.
2388 overscroll.accumulated_root_overscroll = gfx::Vector2dF(100, 100); 2388 overscroll.accumulated_root_overscroll = gfx::Vector2dF(100, 100);
2389 overscroll.unused_scroll_delta = gfx::Vector2dF(100, 0); 2389 overscroll.unused_scroll_delta = gfx::Vector2dF(100, 0);
2390 EXPECT_CALL( 2390 EXPECT_CALL(
2391 mock_input_handler_, 2391 mock_input_handler_,
2392 ScrollBy(testing::Property(&cc::ScrollState::delta_x, testing::Lt(0)))) 2392 ScrollBy(testing::Property(&cc::ScrollState::delta_x, testing::Lt(0))))
2393 .WillOnce(testing::Return(overscroll)); 2393 .WillOnce(testing::Return(overscroll));
2394 EXPECT_CALL( 2394 EXPECT_CALL(
2395 mock_client_, 2395 mock_client_,
2396 DidOverscroll( 2396 DidOverscroll(overscroll.accumulated_root_overscroll,
2397 overscroll.accumulated_root_overscroll, 2397 overscroll.unused_scroll_delta,
2398 overscroll.unused_scroll_delta, 2398 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)),
2399 testing::Property(&gfx::Vector2dF::x, testing::Lt(0)), 2399 testing::_, overscroll.scroll_boundary_behavior));
2400 testing::_));
2401 EXPECT_CALL(mock_input_handler_, ScrollEnd(testing::_)); 2400 EXPECT_CALL(mock_input_handler_, ScrollEnd(testing::_));
2402 time += base::TimeDelta::FromMilliseconds(10); 2401 time += base::TimeDelta::FromMilliseconds(10);
2403 Animate(time); 2402 Animate(time);
2404 VERIFY_AND_RESET_MOCKS(); 2403 VERIFY_AND_RESET_MOCKS();
2405 2404
2406 // The next call to animate will no longer scroll horizontally or vertically, 2405 // The next call to animate will no longer scroll horizontally or vertically,
2407 // and the fling should be cancelled. 2406 // and the fling should be cancelled.
2408 EXPECT_SET_NEEDS_ANIMATE_INPUT(0); 2407 EXPECT_SET_NEEDS_ANIMATE_INPUT(0);
2409 EXPECT_CALL(mock_input_handler_, ScrollBy(testing::_)).Times(0); 2408 EXPECT_CALL(mock_input_handler_, ScrollBy(testing::_)).Times(0);
2410 time += base::TimeDelta::FromMilliseconds(10); 2409 time += base::TimeDelta::FromMilliseconds(10);
(...skipping 1499 matching lines...) Expand 10 before | Expand all | Expand 10 after
3910 INSTANTIATE_TEST_CASE_P(AnimateInput, 3909 INSTANTIATE_TEST_CASE_P(AnimateInput,
3911 InputHandlerProxyWithoutWheelScrollLatchingTest, 3910 InputHandlerProxyWithoutWheelScrollLatchingTest,
3912 testing::ValuesIn(test_types)); 3911 testing::ValuesIn(test_types));
3913 3912
3914 INSTANTIATE_TEST_CASE_P(InputHandlerProxyEventQueueTests, 3913 INSTANTIATE_TEST_CASE_P(InputHandlerProxyEventQueueTests,
3915 InputHandlerProxyEventQueueTest, 3914 InputHandlerProxyEventQueueTest,
3916 testing::Bool()); 3915 testing::Bool());
3917 3916
3918 } // namespace test 3917 } // namespace test
3919 } // namespace ui 3918 } // namespace ui
OLDNEW
« ui/android/overscroll_refresh.h ('K') | « ui/events/blink/input_handler_proxy_client.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698