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

Side by Side Diff: content/renderer/input/input_handler_proxy_unittest.cc

Issue 304793003: use enum to specify deviceSource for fling animation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: removed desired #include Created 6 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 | Annotate | Revision Log
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 "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 20 matching lines...) Expand all
31 using blink::WebTouchPoint; 31 using blink::WebTouchPoint;
32 32
33 namespace content { 33 namespace content {
34 namespace { 34 namespace {
35 35
36 double InSecondsF(const base::TimeTicks& time) { 36 double InSecondsF(const base::TimeTicks& time) {
37 return (time - base::TimeTicks()).InSecondsF(); 37 return (time - base::TimeTicks()).InSecondsF();
38 } 38 }
39 39
40 WebGestureEvent CreateFling(base::TimeTicks timestamp, 40 WebGestureEvent CreateFling(base::TimeTicks timestamp,
41 WebGestureEvent::SourceDevice source_device, 41 WebGestureDevice source_device,
42 WebFloatPoint velocity, 42 WebFloatPoint velocity,
43 WebPoint point, 43 WebPoint point,
44 WebPoint global_point, 44 WebPoint global_point,
45 int modifiers) { 45 int modifiers) {
46 WebGestureEvent fling; 46 WebGestureEvent fling;
47 fling.type = WebInputEvent::GestureFlingStart; 47 fling.type = WebInputEvent::GestureFlingStart;
48 fling.sourceDevice = source_device; 48 fling.sourceDevice = source_device;
49 fling.timeStampSeconds = (timestamp - base::TimeTicks()).InSecondsF(); 49 fling.timeStampSeconds = (timestamp - base::TimeTicks()).InSecondsF();
50 fling.data.flingStart.velocityX = velocity.x; 50 fling.data.flingStart.velocityX = velocity.x;
51 fling.data.flingStart.velocityY = velocity.y; 51 fling.data.flingStart.velocityY = velocity.y;
52 fling.x = point.x; 52 fling.x = point.x;
53 fling.y = point.y; 53 fling.y = point.y;
54 fling.globalX = global_point.x; 54 fling.globalX = global_point.x;
55 fling.globalY = global_point.y; 55 fling.globalY = global_point.y;
56 fling.modifiers = modifiers; 56 fling.modifiers = modifiers;
57 return fling; 57 return fling;
58 } 58 }
59 59
60 WebGestureEvent CreateFling(WebGestureEvent::SourceDevice source_device, 60 WebGestureEvent CreateFling(WebGestureDevice source_device,
61 WebFloatPoint velocity, 61 WebFloatPoint velocity,
62 WebPoint point, 62 WebPoint point,
63 WebPoint global_point, 63 WebPoint global_point,
64 int modifiers) { 64 int modifiers) {
65 return CreateFling(base::TimeTicks(), 65 return CreateFling(base::TimeTicks(),
66 source_device, 66 source_device,
67 velocity, 67 velocity,
68 point, 68 point,
69 global_point, 69 global_point,
70 modifiers); 70 modifiers);
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 // This is defined as a macro because when an expectation is not satisfied the 204 // This is defined as a macro because when an expectation is not satisfied the
205 // only output you get 205 // only output you get
206 // out of gmock is the line number that set the expectation. 206 // out of gmock is the line number that set the expectation.
207 #define VERIFY_AND_RESET_MOCKS() \ 207 #define VERIFY_AND_RESET_MOCKS() \
208 do { \ 208 do { \
209 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); \ 209 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); \
210 testing::Mock::VerifyAndClearExpectations(&mock_client_); \ 210 testing::Mock::VerifyAndClearExpectations(&mock_client_); \
211 } while (false) 211 } while (false)
212 212
213 void StartFling(base::TimeTicks timestamp, 213 void StartFling(base::TimeTicks timestamp,
214 WebGestureEvent::SourceDevice source_device, 214 WebGestureDevice source_device,
215 WebFloatPoint velocity, 215 WebFloatPoint velocity,
216 WebPoint position) { 216 WebPoint position) {
217 expected_disposition_ = InputHandlerProxy::DID_HANDLE; 217 expected_disposition_ = InputHandlerProxy::DID_HANDLE;
218 VERIFY_AND_RESET_MOCKS(); 218 VERIFY_AND_RESET_MOCKS();
219 219
220 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) 220 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
221 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 221 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
222 gesture_.type = WebInputEvent::GestureScrollBegin; 222 gesture_.type = WebInputEvent::GestureScrollBegin;
223 gesture_.sourceDevice = source_device; 223 gesture_.sourceDevice = source_device;
224 EXPECT_EQ(expected_disposition_, 224 EXPECT_EQ(expected_disposition_,
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 expected_disposition_ = InputHandlerProxy::DID_HANDLE; 479 expected_disposition_ = InputHandlerProxy::DID_HANDLE;
480 VERIFY_AND_RESET_MOCKS(); 480 VERIFY_AND_RESET_MOCKS();
481 481
482 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) 482 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
483 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 483 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
484 EXPECT_CALL(mock_input_handler_, ScrollEnd()); 484 EXPECT_CALL(mock_input_handler_, ScrollEnd());
485 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); 485 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate());
486 486
487 gesture_.type = WebInputEvent::GestureFlingStart; 487 gesture_.type = WebInputEvent::GestureFlingStart;
488 gesture_.data.flingStart.velocityX = 10; 488 gesture_.data.flingStart.velocityX = 10;
489 gesture_.sourceDevice = WebGestureEvent::Touchpad; 489 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
490 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 490 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
491 491
492 VERIFY_AND_RESET_MOCKS(); 492 VERIFY_AND_RESET_MOCKS();
493 493
494 // Verify that a GestureFlingCancel during an animation cancels it. 494 // Verify that a GestureFlingCancel during an animation cancels it.
495 gesture_.type = WebInputEvent::GestureFlingCancel; 495 gesture_.type = WebInputEvent::GestureFlingCancel;
496 gesture_.sourceDevice = WebGestureEvent::Touchpad; 496 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
497 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 497 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
498 } 498 }
499 499
500 TEST_F(InputHandlerProxyTest, GestureFlingOnMainThreadTouchpad) { 500 TEST_F(InputHandlerProxyTest, GestureFlingOnMainThreadTouchpad) {
501 // We should send all events to the widget for this gesture. 501 // We should send all events to the widget for this gesture.
502 expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE; 502 expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE;
503 VERIFY_AND_RESET_MOCKS(); 503 VERIFY_AND_RESET_MOCKS();
504 504
505 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) 505 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
506 .WillOnce(testing::Return(cc::InputHandler::ScrollOnMainThread)); 506 .WillOnce(testing::Return(cc::InputHandler::ScrollOnMainThread));
507 507
508 gesture_.type = WebInputEvent::GestureFlingStart; 508 gesture_.type = WebInputEvent::GestureFlingStart;
509 gesture_.sourceDevice = WebGestureEvent::Touchpad; 509 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
510 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 510 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
511 511
512 // Since we returned ScrollStatusOnMainThread from scrollBegin, ensure the 512 // Since we returned ScrollStatusOnMainThread from scrollBegin, ensure the
513 // input handler knows it's scrolling off the impl thread 513 // input handler knows it's scrolling off the impl thread
514 ASSERT_FALSE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); 514 ASSERT_FALSE(input_handler_->gesture_scroll_on_impl_thread_for_testing());
515 515
516 VERIFY_AND_RESET_MOCKS(); 516 VERIFY_AND_RESET_MOCKS();
517 517
518 // Even if we didn't start a fling ourselves, we still need to send the cancel 518 // Even if we didn't start a fling ourselves, we still need to send the cancel
519 // event to the widget. 519 // event to the widget.
520 gesture_.type = WebInputEvent::GestureFlingCancel; 520 gesture_.type = WebInputEvent::GestureFlingCancel;
521 gesture_.sourceDevice = WebGestureEvent::Touchpad; 521 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
522 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 522 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
523 } 523 }
524 524
525 TEST_F(InputHandlerProxyTest, GestureFlingIgnoredTouchpad) { 525 TEST_F(InputHandlerProxyTest, GestureFlingIgnoredTouchpad) {
526 expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE; 526 expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE;
527 VERIFY_AND_RESET_MOCKS(); 527 VERIFY_AND_RESET_MOCKS();
528 528
529 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) 529 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
530 .WillOnce(testing::Return(cc::InputHandler::ScrollIgnored)); 530 .WillOnce(testing::Return(cc::InputHandler::ScrollIgnored));
531 531
532 gesture_.type = WebInputEvent::GestureFlingStart; 532 gesture_.type = WebInputEvent::GestureFlingStart;
533 gesture_.sourceDevice = WebGestureEvent::Touchpad; 533 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
534 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 534 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
535 535
536 expected_disposition_ = InputHandlerProxy::DROP_EVENT; 536 expected_disposition_ = InputHandlerProxy::DROP_EVENT;
537 VERIFY_AND_RESET_MOCKS(); 537 VERIFY_AND_RESET_MOCKS();
538 538
539 // Since the previous fling was ignored, we should also be dropping the next 539 // Since the previous fling was ignored, we should also be dropping the next
540 // fling_cancel. 540 // fling_cancel.
541 gesture_.type = WebInputEvent::GestureFlingCancel; 541 gesture_.type = WebInputEvent::GestureFlingCancel;
542 gesture_.sourceDevice = WebGestureEvent::Touchpad; 542 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
543 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 543 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
544 } 544 }
545 545
546 TEST_F(InputHandlerProxyTest, GestureFlingAnimatesTouchpad) { 546 TEST_F(InputHandlerProxyTest, GestureFlingAnimatesTouchpad) {
547 // We shouldn't send any events to the widget for this gesture. 547 // We shouldn't send any events to the widget for this gesture.
548 expected_disposition_ = InputHandlerProxy::DID_HANDLE; 548 expected_disposition_ = InputHandlerProxy::DID_HANDLE;
549 VERIFY_AND_RESET_MOCKS(); 549 VERIFY_AND_RESET_MOCKS();
550 550
551 // On the fling start, we should schedule an animation but not actually start 551 // On the fling start, we should schedule an animation but not actually start
552 // scrolling. 552 // scrolling.
553 gesture_.type = WebInputEvent::GestureFlingStart; 553 gesture_.type = WebInputEvent::GestureFlingStart;
554 WebFloatPoint fling_delta = WebFloatPoint(1000, 0); 554 WebFloatPoint fling_delta = WebFloatPoint(1000, 0);
555 WebPoint fling_point = WebPoint(7, 13); 555 WebPoint fling_point = WebPoint(7, 13);
556 WebPoint fling_global_point = WebPoint(17, 23); 556 WebPoint fling_global_point = WebPoint(17, 23);
557 // Note that for trackpad, wheel events with the Control modifier are 557 // Note that for trackpad, wheel events with the Control modifier are
558 // special (reserved for zoom), so don't set that here. 558 // special (reserved for zoom), so don't set that here.
559 int modifiers = WebInputEvent::ShiftKey | WebInputEvent::AltKey; 559 int modifiers = WebInputEvent::ShiftKey | WebInputEvent::AltKey;
560 gesture_ = CreateFling(WebGestureEvent::Touchpad, 560 gesture_ = CreateFling(blink::WebGestureDeviceTouchpad,
561 fling_delta, 561 fling_delta,
562 fling_point, 562 fling_point,
563 fling_global_point, 563 fling_global_point,
564 modifiers); 564 modifiers);
565 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); 565 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate());
566 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) 566 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
567 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 567 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
568 EXPECT_CALL(mock_input_handler_, ScrollEnd()); 568 EXPECT_CALL(mock_input_handler_, ScrollEnd());
569 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 569 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
570 570
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 expected_disposition_ = InputHandlerProxy::DID_HANDLE; 655 expected_disposition_ = InputHandlerProxy::DID_HANDLE;
656 VERIFY_AND_RESET_MOCKS(); 656 VERIFY_AND_RESET_MOCKS();
657 657
658 // Start a gesture fling in the -X direction with zero Y movement. 658 // Start a gesture fling in the -X direction with zero Y movement.
659 WebFloatPoint fling_delta = WebFloatPoint(1000, 0); 659 WebFloatPoint fling_delta = WebFloatPoint(1000, 0);
660 WebPoint fling_point = WebPoint(7, 13); 660 WebPoint fling_point = WebPoint(7, 13);
661 WebPoint fling_global_point = WebPoint(17, 23); 661 WebPoint fling_global_point = WebPoint(17, 23);
662 // Note that for trackpad, wheel events with the Control modifier are 662 // Note that for trackpad, wheel events with the Control modifier are
663 // special (reserved for zoom), so don't set that here. 663 // special (reserved for zoom), so don't set that here.
664 int modifiers = WebInputEvent::ShiftKey | WebInputEvent::AltKey; 664 int modifiers = WebInputEvent::ShiftKey | WebInputEvent::AltKey;
665 gesture_ = CreateFling(WebGestureEvent::Touchpad, 665 gesture_ = CreateFling(blink::WebGestureDeviceTouchpad,
666 fling_delta, 666 fling_delta,
667 fling_point, 667 fling_point,
668 fling_global_point, 668 fling_global_point,
669 modifiers); 669 modifiers);
670 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); 670 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate());
671 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) 671 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
672 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 672 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
673 EXPECT_CALL(mock_input_handler_, ScrollEnd()); 673 EXPECT_CALL(mock_input_handler_, ScrollEnd());
674 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 674 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
675 675
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
756 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 756 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
757 757
758 VERIFY_AND_RESET_MOCKS(); 758 VERIFY_AND_RESET_MOCKS();
759 input_handler_->MainThreadHasStoppedFlinging(); 759 input_handler_->MainThreadHasStoppedFlinging();
760 760
761 // Start a second gesture fling, this time in the +Y direction with no X. 761 // Start a second gesture fling, this time in the +Y direction with no X.
762 fling_delta = WebFloatPoint(0, -1000); 762 fling_delta = WebFloatPoint(0, -1000);
763 fling_point = WebPoint(95, 87); 763 fling_point = WebPoint(95, 87);
764 fling_global_point = WebPoint(32, 71); 764 fling_global_point = WebPoint(32, 71);
765 modifiers = WebInputEvent::AltKey; 765 modifiers = WebInputEvent::AltKey;
766 gesture_ = CreateFling(WebGestureEvent::Touchpad, 766 gesture_ = CreateFling(blink::WebGestureDeviceTouchpad,
767 fling_delta, 767 fling_delta,
768 fling_point, 768 fling_point,
769 fling_global_point, 769 fling_global_point,
770 modifiers); 770 modifiers);
771 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); 771 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate());
772 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) 772 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
773 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 773 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
774 EXPECT_CALL(mock_input_handler_, ScrollEnd()); 774 EXPECT_CALL(mock_input_handler_, ScrollEnd());
775 expected_disposition_ = InputHandlerProxy::DID_HANDLE; 775 expected_disposition_ = InputHandlerProxy::DID_HANDLE;
776 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 776 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
828 } 828 }
829 829
830 TEST_F(InputHandlerProxyTest, GestureFlingStartedTouchscreen) { 830 TEST_F(InputHandlerProxyTest, GestureFlingStartedTouchscreen) {
831 // We shouldn't send any events to the widget for this gesture. 831 // We shouldn't send any events to the widget for this gesture.
832 expected_disposition_ = InputHandlerProxy::DID_HANDLE; 832 expected_disposition_ = InputHandlerProxy::DID_HANDLE;
833 VERIFY_AND_RESET_MOCKS(); 833 VERIFY_AND_RESET_MOCKS();
834 834
835 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) 835 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
836 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 836 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
837 gesture_.type = WebInputEvent::GestureScrollBegin; 837 gesture_.type = WebInputEvent::GestureScrollBegin;
838 gesture_.sourceDevice = WebGestureEvent::Touchscreen; 838 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
839 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 839 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
840 840
841 VERIFY_AND_RESET_MOCKS(); 841 VERIFY_AND_RESET_MOCKS();
842 842
843 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) 843 EXPECT_CALL(mock_input_handler_, FlingScrollBegin())
844 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 844 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
845 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); 845 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate());
846 846
847 gesture_.type = WebInputEvent::GestureFlingStart; 847 gesture_.type = WebInputEvent::GestureFlingStart;
848 gesture_.data.flingStart.velocityX = 10; 848 gesture_.data.flingStart.velocityX = 10;
849 gesture_.sourceDevice = WebGestureEvent::Touchscreen; 849 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
850 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 850 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
851 851
852 VERIFY_AND_RESET_MOCKS(); 852 VERIFY_AND_RESET_MOCKS();
853 853
854 EXPECT_CALL(mock_input_handler_, ScrollEnd()); 854 EXPECT_CALL(mock_input_handler_, ScrollEnd());
855 855
856 // Verify that a GestureFlingCancel during an animation cancels it. 856 // Verify that a GestureFlingCancel during an animation cancels it.
857 gesture_.type = WebInputEvent::GestureFlingCancel; 857 gesture_.type = WebInputEvent::GestureFlingCancel;
858 gesture_.sourceDevice = WebGestureEvent::Touchscreen; 858 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
859 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 859 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
860 } 860 }
861 861
862 TEST_F(InputHandlerProxyTest, GestureFlingOnMainThreadTouchscreen) { 862 TEST_F(InputHandlerProxyTest, GestureFlingOnMainThreadTouchscreen) {
863 // We should send all events to the widget for this gesture. 863 // We should send all events to the widget for this gesture.
864 expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE; 864 expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE;
865 VERIFY_AND_RESET_MOCKS(); 865 VERIFY_AND_RESET_MOCKS();
866 866
867 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) 867 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
868 .WillOnce(testing::Return(cc::InputHandler::ScrollOnMainThread)); 868 .WillOnce(testing::Return(cc::InputHandler::ScrollOnMainThread));
869 869
870 gesture_.type = WebInputEvent::GestureScrollBegin; 870 gesture_.type = WebInputEvent::GestureScrollBegin;
871 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 871 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
872 872
873 VERIFY_AND_RESET_MOCKS(); 873 VERIFY_AND_RESET_MOCKS();
874 874
875 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()).Times(0); 875 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()).Times(0);
876 876
877 gesture_.type = WebInputEvent::GestureFlingStart; 877 gesture_.type = WebInputEvent::GestureFlingStart;
878 gesture_.sourceDevice = WebGestureEvent::Touchscreen; 878 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
879 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 879 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
880 880
881 VERIFY_AND_RESET_MOCKS(); 881 VERIFY_AND_RESET_MOCKS();
882 882
883 // Even if we didn't start a fling ourselves, we still need to send the cancel 883 // Even if we didn't start a fling ourselves, we still need to send the cancel
884 // event to the widget. 884 // event to the widget.
885 gesture_.type = WebInputEvent::GestureFlingCancel; 885 gesture_.type = WebInputEvent::GestureFlingCancel;
886 gesture_.sourceDevice = WebGestureEvent::Touchscreen; 886 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
887 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 887 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
888 } 888 }
889 889
890 TEST_F(InputHandlerProxyTest, GestureFlingIgnoredTouchscreen) { 890 TEST_F(InputHandlerProxyTest, GestureFlingIgnoredTouchscreen) {
891 expected_disposition_ = InputHandlerProxy::DID_HANDLE; 891 expected_disposition_ = InputHandlerProxy::DID_HANDLE;
892 VERIFY_AND_RESET_MOCKS(); 892 VERIFY_AND_RESET_MOCKS();
893 893
894 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) 894 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
895 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 895 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
896 896
897 gesture_.type = WebInputEvent::GestureScrollBegin; 897 gesture_.type = WebInputEvent::GestureScrollBegin;
898 gesture_.sourceDevice = WebGestureEvent::Touchscreen; 898 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
899 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 899 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
900 900
901 expected_disposition_ = InputHandlerProxy::DROP_EVENT; 901 expected_disposition_ = InputHandlerProxy::DROP_EVENT;
902 VERIFY_AND_RESET_MOCKS(); 902 VERIFY_AND_RESET_MOCKS();
903 903
904 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) 904 EXPECT_CALL(mock_input_handler_, FlingScrollBegin())
905 .WillOnce(testing::Return(cc::InputHandler::ScrollIgnored)); 905 .WillOnce(testing::Return(cc::InputHandler::ScrollIgnored));
906 906
907 gesture_.type = WebInputEvent::GestureFlingStart; 907 gesture_.type = WebInputEvent::GestureFlingStart;
908 gesture_.sourceDevice = WebGestureEvent::Touchscreen; 908 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
909 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 909 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
910 910
911 VERIFY_AND_RESET_MOCKS(); 911 VERIFY_AND_RESET_MOCKS();
912 912
913 // Even if we didn't start a fling ourselves, we still need to send the cancel 913 // Even if we didn't start a fling ourselves, we still need to send the cancel
914 // event to the widget. 914 // event to the widget.
915 gesture_.type = WebInputEvent::GestureFlingCancel; 915 gesture_.type = WebInputEvent::GestureFlingCancel;
916 gesture_.sourceDevice = WebGestureEvent::Touchscreen; 916 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
917 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 917 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
918 } 918 }
919 919
920 TEST_F(InputHandlerProxyTest, GestureFlingAnimatesTouchscreen) { 920 TEST_F(InputHandlerProxyTest, GestureFlingAnimatesTouchscreen) {
921 // We shouldn't send any events to the widget for this gesture. 921 // We shouldn't send any events to the widget for this gesture.
922 expected_disposition_ = InputHandlerProxy::DID_HANDLE; 922 expected_disposition_ = InputHandlerProxy::DID_HANDLE;
923 VERIFY_AND_RESET_MOCKS(); 923 VERIFY_AND_RESET_MOCKS();
924 924
925 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) 925 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
926 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 926 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
927 927
928 gesture_.type = WebInputEvent::GestureScrollBegin; 928 gesture_.type = WebInputEvent::GestureScrollBegin;
929 gesture_.sourceDevice = WebGestureEvent::Touchscreen; 929 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
930 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 930 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
931 931
932 VERIFY_AND_RESET_MOCKS(); 932 VERIFY_AND_RESET_MOCKS();
933 933
934 // On the fling start, we should schedule an animation but not actually start 934 // On the fling start, we should schedule an animation but not actually start
935 // scrolling. 935 // scrolling.
936 WebFloatPoint fling_delta = WebFloatPoint(100, 0); 936 WebFloatPoint fling_delta = WebFloatPoint(100, 0);
937 WebPoint fling_point = WebPoint(7, 13); 937 WebPoint fling_point = WebPoint(7, 13);
938 WebPoint fling_global_point = WebPoint(17, 23); 938 WebPoint fling_global_point = WebPoint(17, 23);
939 // Note that for touchscreen the control modifier is not special. 939 // Note that for touchscreen the control modifier is not special.
940 int modifiers = WebInputEvent::ControlKey; 940 int modifiers = WebInputEvent::ControlKey;
941 gesture_ = CreateFling(WebGestureEvent::Touchscreen, 941 gesture_ = CreateFling(blink::WebGestureDeviceTouchpad,
942 fling_delta, 942 fling_delta,
943 fling_point, 943 fling_point,
944 fling_global_point, 944 fling_global_point,
945 modifiers); 945 modifiers);
946 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); 946 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate());
947 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) 947 EXPECT_CALL(mock_input_handler_, FlingScrollBegin())
948 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 948 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
949 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 949 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
950 950
951 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); 951 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_);
(...skipping 26 matching lines...) Expand all
978 978
979 TEST_F(InputHandlerProxyTest, GestureFlingWithValidTimestamp) { 979 TEST_F(InputHandlerProxyTest, GestureFlingWithValidTimestamp) {
980 // We shouldn't send any events to the widget for this gesture. 980 // We shouldn't send any events to the widget for this gesture.
981 expected_disposition_ = InputHandlerProxy::DID_HANDLE; 981 expected_disposition_ = InputHandlerProxy::DID_HANDLE;
982 VERIFY_AND_RESET_MOCKS(); 982 VERIFY_AND_RESET_MOCKS();
983 983
984 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) 984 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
985 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 985 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
986 986
987 gesture_.type = WebInputEvent::GestureScrollBegin; 987 gesture_.type = WebInputEvent::GestureScrollBegin;
988 gesture_.sourceDevice = WebGestureEvent::Touchscreen; 988 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
989 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 989 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
990 990
991 VERIFY_AND_RESET_MOCKS(); 991 VERIFY_AND_RESET_MOCKS();
992 992
993 // On the fling start, we should schedule an animation but not actually start 993 // On the fling start, we should schedule an animation but not actually start
994 // scrolling. 994 // scrolling.
995 base::TimeDelta dt = base::TimeDelta::FromMilliseconds(10); 995 base::TimeDelta dt = base::TimeDelta::FromMilliseconds(10);
996 base::TimeTicks time = base::TimeTicks() + dt; 996 base::TimeTicks time = base::TimeTicks() + dt;
997 WebFloatPoint fling_delta = WebFloatPoint(100, 0); 997 WebFloatPoint fling_delta = WebFloatPoint(100, 0);
998 WebPoint fling_point = WebPoint(7, 13); 998 WebPoint fling_point = WebPoint(7, 13);
999 WebPoint fling_global_point = WebPoint(17, 23); 999 WebPoint fling_global_point = WebPoint(17, 23);
1000 int modifiers = WebInputEvent::ControlKey; 1000 int modifiers = WebInputEvent::ControlKey;
1001 gesture_ = CreateFling(time, 1001 gesture_ = CreateFling(time,
1002 WebGestureEvent::Touchscreen, 1002 blink::WebGestureDeviceTouchpad,
1003 fling_delta, 1003 fling_delta,
1004 fling_point, 1004 fling_point,
1005 fling_global_point, 1005 fling_global_point,
1006 modifiers); 1006 modifiers);
1007 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); 1007 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate());
1008 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) 1008 EXPECT_CALL(mock_input_handler_, FlingScrollBegin())
1009 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 1009 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
1010 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 1010 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
1011 1011
1012 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); 1012 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_);
(...skipping 19 matching lines...) Expand all
1032 1032
1033 TEST_F(InputHandlerProxyTest, GestureFlingWithInvalidTimestamp) { 1033 TEST_F(InputHandlerProxyTest, GestureFlingWithInvalidTimestamp) {
1034 // We shouldn't send any events to the widget for this gesture. 1034 // We shouldn't send any events to the widget for this gesture.
1035 expected_disposition_ = InputHandlerProxy::DID_HANDLE; 1035 expected_disposition_ = InputHandlerProxy::DID_HANDLE;
1036 VERIFY_AND_RESET_MOCKS(); 1036 VERIFY_AND_RESET_MOCKS();
1037 1037
1038 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) 1038 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
1039 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 1039 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
1040 1040
1041 gesture_.type = WebInputEvent::GestureScrollBegin; 1041 gesture_.type = WebInputEvent::GestureScrollBegin;
1042 gesture_.sourceDevice = WebGestureEvent::Touchscreen; 1042 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
1043 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 1043 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
1044 1044
1045 VERIFY_AND_RESET_MOCKS(); 1045 VERIFY_AND_RESET_MOCKS();
1046 1046
1047 // On the fling start, we should schedule an animation but not actually start 1047 // On the fling start, we should schedule an animation but not actually start
1048 // scrolling. 1048 // scrolling.
1049 base::TimeDelta start_time_offset = base::TimeDelta::FromMilliseconds(10); 1049 base::TimeDelta start_time_offset = base::TimeDelta::FromMilliseconds(10);
1050 gesture_.type = WebInputEvent::GestureFlingStart; 1050 gesture_.type = WebInputEvent::GestureFlingStart;
1051 WebFloatPoint fling_delta = WebFloatPoint(100, 0); 1051 WebFloatPoint fling_delta = WebFloatPoint(100, 0);
1052 WebPoint fling_point = WebPoint(7, 13); 1052 WebPoint fling_point = WebPoint(7, 13);
1053 WebPoint fling_global_point = WebPoint(17, 23); 1053 WebPoint fling_global_point = WebPoint(17, 23);
1054 int modifiers = WebInputEvent::ControlKey; 1054 int modifiers = WebInputEvent::ControlKey;
1055 gesture_.timeStampSeconds = start_time_offset.InSecondsF(); 1055 gesture_.timeStampSeconds = start_time_offset.InSecondsF();
1056 gesture_.data.flingStart.velocityX = fling_delta.x; 1056 gesture_.data.flingStart.velocityX = fling_delta.x;
1057 gesture_.data.flingStart.velocityY = fling_delta.y; 1057 gesture_.data.flingStart.velocityY = fling_delta.y;
1058 gesture_.sourceDevice = WebGestureEvent::Touchscreen; 1058 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
1059 gesture_.x = fling_point.x; 1059 gesture_.x = fling_point.x;
1060 gesture_.y = fling_point.y; 1060 gesture_.y = fling_point.y;
1061 gesture_.globalX = fling_global_point.x; 1061 gesture_.globalX = fling_global_point.x;
1062 gesture_.globalY = fling_global_point.y; 1062 gesture_.globalY = fling_global_point.y;
1063 gesture_.modifiers = modifiers; 1063 gesture_.modifiers = modifiers;
1064 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); 1064 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate());
1065 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) 1065 EXPECT_CALL(mock_input_handler_, FlingScrollBegin())
1066 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 1066 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
1067 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 1067 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
1068 1068
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1111 1111
1112 expected_disposition_ = InputHandlerProxy::DID_HANDLE; 1112 expected_disposition_ = InputHandlerProxy::DID_HANDLE;
1113 VERIFY_AND_RESET_MOCKS(); 1113 VERIFY_AND_RESET_MOCKS();
1114 1114
1115 // On the fling start, we should schedule an animation but not actually start 1115 // On the fling start, we should schedule an animation but not actually start
1116 // scrolling. 1116 // scrolling.
1117 WebFloatPoint fling_delta = WebFloatPoint(100, 0); 1117 WebFloatPoint fling_delta = WebFloatPoint(100, 0);
1118 WebPoint fling_point = WebPoint(7, 13); 1118 WebPoint fling_point = WebPoint(7, 13);
1119 WebPoint fling_global_point = WebPoint(17, 23); 1119 WebPoint fling_global_point = WebPoint(17, 23);
1120 int modifiers = WebInputEvent::ControlKey | WebInputEvent::AltKey; 1120 int modifiers = WebInputEvent::ControlKey | WebInputEvent::AltKey;
1121 gesture_ = CreateFling(WebGestureEvent::Touchscreen, 1121 gesture_ = CreateFling(blink::WebGestureDeviceTouchpad,
1122 fling_delta, 1122 fling_delta,
1123 fling_point, 1123 fling_point,
1124 fling_global_point, 1124 fling_global_point,
1125 modifiers); 1125 modifiers);
1126 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); 1126 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate());
1127 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) 1127 EXPECT_CALL(mock_input_handler_, FlingScrollBegin())
1128 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 1128 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
1129 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 1129 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
1130 1130
1131 // |gesture_scroll_on_impl_thread_| should still be true after 1131 // |gesture_scroll_on_impl_thread_| should still be true after
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
1232 1232
1233 TEST_F(InputHandlerProxyTest, GestureFlingNotCancelledBySmallTimeDelta) { 1233 TEST_F(InputHandlerProxyTest, GestureFlingNotCancelledBySmallTimeDelta) {
1234 // We shouldn't send any events to the widget for this gesture. 1234 // We shouldn't send any events to the widget for this gesture.
1235 expected_disposition_ = InputHandlerProxy::DID_HANDLE; 1235 expected_disposition_ = InputHandlerProxy::DID_HANDLE;
1236 VERIFY_AND_RESET_MOCKS(); 1236 VERIFY_AND_RESET_MOCKS();
1237 1237
1238 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) 1238 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
1239 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 1239 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
1240 1240
1241 gesture_.type = WebInputEvent::GestureScrollBegin; 1241 gesture_.type = WebInputEvent::GestureScrollBegin;
1242 gesture_.sourceDevice = WebGestureEvent::Touchscreen; 1242 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
1243 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 1243 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
1244 1244
1245 VERIFY_AND_RESET_MOCKS(); 1245 VERIFY_AND_RESET_MOCKS();
1246 1246
1247 // On the fling start, we should schedule an animation but not actually start 1247 // On the fling start, we should schedule an animation but not actually start
1248 // scrolling. 1248 // scrolling.
1249 base::TimeDelta dt = base::TimeDelta::FromMilliseconds(10); 1249 base::TimeDelta dt = base::TimeDelta::FromMilliseconds(10);
1250 base::TimeTicks time = base::TimeTicks() + dt; 1250 base::TimeTicks time = base::TimeTicks() + dt;
1251 WebFloatPoint fling_delta = WebFloatPoint(100, 0); 1251 WebFloatPoint fling_delta = WebFloatPoint(100, 0);
1252 WebPoint fling_point = WebPoint(7, 13); 1252 WebPoint fling_point = WebPoint(7, 13);
1253 WebPoint fling_global_point = WebPoint(17, 23); 1253 WebPoint fling_global_point = WebPoint(17, 23);
1254 int modifiers = WebInputEvent::ControlKey; 1254 int modifiers = WebInputEvent::ControlKey;
1255 gesture_ = CreateFling(time, 1255 gesture_ = CreateFling(time,
1256 WebGestureEvent::Touchscreen, 1256 blink::WebGestureDeviceTouchpad,
1257 fling_delta, 1257 fling_delta,
1258 fling_point, 1258 fling_point,
1259 fling_global_point, 1259 fling_global_point,
1260 modifiers); 1260 modifiers);
1261 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); 1261 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate());
1262 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) 1262 EXPECT_CALL(mock_input_handler_, FlingScrollBegin())
1263 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 1263 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
1264 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 1264 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
1265 1265
1266 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); 1266 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1308 } 1308 }
1309 1309
1310 TEST_F(InputHandlerProxyTest, GestureFlingCancelledAfterBothAxesStopScrolling) { 1310 TEST_F(InputHandlerProxyTest, GestureFlingCancelledAfterBothAxesStopScrolling) {
1311 // We shouldn't send any events to the widget for this gesture. 1311 // We shouldn't send any events to the widget for this gesture.
1312 expected_disposition_ = InputHandlerProxy::DID_HANDLE; 1312 expected_disposition_ = InputHandlerProxy::DID_HANDLE;
1313 VERIFY_AND_RESET_MOCKS(); 1313 VERIFY_AND_RESET_MOCKS();
1314 1314
1315 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) 1315 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
1316 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 1316 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
1317 gesture_.type = WebInputEvent::GestureScrollBegin; 1317 gesture_.type = WebInputEvent::GestureScrollBegin;
1318 gesture_.sourceDevice = WebGestureEvent::Touchscreen; 1318 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
1319 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 1319 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
1320 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); 1320 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_);
1321 1321
1322 // On the fling start, we should schedule an animation but not actually start 1322 // On the fling start, we should schedule an animation but not actually start
1323 // scrolling. 1323 // scrolling.
1324 gesture_.type = WebInputEvent::GestureFlingStart; 1324 gesture_.type = WebInputEvent::GestureFlingStart;
1325 WebFloatPoint fling_delta = WebFloatPoint(100, 100); 1325 WebFloatPoint fling_delta = WebFloatPoint(100, 100);
1326 gesture_.data.flingStart.velocityX = fling_delta.x; 1326 gesture_.data.flingStart.velocityX = fling_delta.x;
1327 gesture_.data.flingStart.velocityY = fling_delta.y; 1327 gesture_.data.flingStart.velocityY = fling_delta.y;
1328 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) 1328 EXPECT_CALL(mock_input_handler_, FlingScrollBegin())
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
1450 } 1450 }
1451 1451
1452 TEST_F(InputHandlerProxyTest, GestureFlingCancelledByKeyboardEvent) { 1452 TEST_F(InputHandlerProxyTest, GestureFlingCancelledByKeyboardEvent) {
1453 // We shouldn't send any events to the widget for this gesture. 1453 // We shouldn't send any events to the widget for this gesture.
1454 expected_disposition_ = InputHandlerProxy::DID_HANDLE; 1454 expected_disposition_ = InputHandlerProxy::DID_HANDLE;
1455 VERIFY_AND_RESET_MOCKS(); 1455 VERIFY_AND_RESET_MOCKS();
1456 1456
1457 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) 1457 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
1458 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 1458 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
1459 gesture_.type = WebInputEvent::GestureScrollBegin; 1459 gesture_.type = WebInputEvent::GestureScrollBegin;
1460 gesture_.sourceDevice = WebGestureEvent::Touchscreen; 1460 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
1461 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 1461 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
1462 EXPECT_TRUE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); 1462 EXPECT_TRUE(input_handler_->gesture_scroll_on_impl_thread_for_testing());
1463 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); 1463 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_);
1464 1464
1465 // Keyboard events received during a scroll should have no effect. 1465 // Keyboard events received during a scroll should have no effect.
1466 WebKeyboardEvent key_event; 1466 WebKeyboardEvent key_event;
1467 key_event.type = WebInputEvent::KeyDown; 1467 key_event.type = WebInputEvent::KeyDown;
1468 EXPECT_EQ(InputHandlerProxy::DID_NOT_HANDLE, 1468 EXPECT_EQ(InputHandlerProxy::DID_NOT_HANDLE,
1469 input_handler_->HandleInputEvent(key_event)); 1469 input_handler_->HandleInputEvent(key_event));
1470 EXPECT_TRUE(input_handler_->gesture_scroll_on_impl_thread_for_testing()); 1470 EXPECT_TRUE(input_handler_->gesture_scroll_on_impl_thread_for_testing());
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1503 1503
1504 TEST_F(InputHandlerProxyTest, GestureFlingWithNegativeTimeDelta) { 1504 TEST_F(InputHandlerProxyTest, GestureFlingWithNegativeTimeDelta) {
1505 // We shouldn't send any events to the widget for this gesture. 1505 // We shouldn't send any events to the widget for this gesture.
1506 expected_disposition_ = InputHandlerProxy::DID_HANDLE; 1506 expected_disposition_ = InputHandlerProxy::DID_HANDLE;
1507 VERIFY_AND_RESET_MOCKS(); 1507 VERIFY_AND_RESET_MOCKS();
1508 1508
1509 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) 1509 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
1510 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 1510 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
1511 1511
1512 gesture_.type = WebInputEvent::GestureScrollBegin; 1512 gesture_.type = WebInputEvent::GestureScrollBegin;
1513 gesture_.sourceDevice = WebGestureEvent::Touchscreen; 1513 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
1514 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 1514 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
1515 1515
1516 VERIFY_AND_RESET_MOCKS(); 1516 VERIFY_AND_RESET_MOCKS();
1517 1517
1518 // On the fling start, we should schedule an animation but not actually start 1518 // On the fling start, we should schedule an animation but not actually start
1519 // scrolling. 1519 // scrolling.
1520 base::TimeDelta dt = base::TimeDelta::FromMilliseconds(10); 1520 base::TimeDelta dt = base::TimeDelta::FromMilliseconds(10);
1521 base::TimeTicks time = base::TimeTicks() + dt; 1521 base::TimeTicks time = base::TimeTicks() + dt;
1522 WebFloatPoint fling_delta = WebFloatPoint(100, 0); 1522 WebFloatPoint fling_delta = WebFloatPoint(100, 0);
1523 WebPoint fling_point = WebPoint(7, 13); 1523 WebPoint fling_point = WebPoint(7, 13);
1524 WebPoint fling_global_point = WebPoint(17, 23); 1524 WebPoint fling_global_point = WebPoint(17, 23);
1525 int modifiers = WebInputEvent::ControlKey; 1525 int modifiers = WebInputEvent::ControlKey;
1526 gesture_ = CreateFling(time, 1526 gesture_ = CreateFling(time,
1527 WebGestureEvent::Touchscreen, 1527 blink::WebGestureDeviceTouchpad,
1528 fling_delta, 1528 fling_delta,
1529 fling_point, 1529 fling_point,
1530 fling_global_point, 1530 fling_global_point,
1531 modifiers); 1531 modifiers);
1532 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); 1532 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate());
1533 EXPECT_CALL(mock_input_handler_, FlingScrollBegin()) 1533 EXPECT_CALL(mock_input_handler_, FlingScrollBegin())
1534 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 1534 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
1535 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 1535 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
1536 1536
1537 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); 1537 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_);
(...skipping 26 matching lines...) Expand all
1564 gesture_.type = WebInputEvent::GestureFlingCancel; 1564 gesture_.type = WebInputEvent::GestureFlingCancel;
1565 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 1565 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
1566 } 1566 }
1567 1567
1568 TEST_F(InputHandlerProxyTest, FlingBoost) { 1568 TEST_F(InputHandlerProxyTest, FlingBoost) {
1569 base::TimeDelta dt = base::TimeDelta::FromMilliseconds(10); 1569 base::TimeDelta dt = base::TimeDelta::FromMilliseconds(10);
1570 base::TimeTicks time = base::TimeTicks() + dt; 1570 base::TimeTicks time = base::TimeTicks() + dt;
1571 base::TimeTicks last_animate_time = time; 1571 base::TimeTicks last_animate_time = time;
1572 WebFloatPoint fling_delta = WebFloatPoint(1000, 0); 1572 WebFloatPoint fling_delta = WebFloatPoint(1000, 0);
1573 WebPoint fling_point = WebPoint(7, 13); 1573 WebPoint fling_point = WebPoint(7, 13);
1574 StartFling(time, WebGestureEvent::Touchscreen, fling_delta, fling_point); 1574 StartFling(time, blink::WebGestureDeviceTouchpad, fling_delta, fling_point);
1575 1575
1576 // Now cancel the fling. The fling cancellation should be deferred to allow 1576 // Now cancel the fling. The fling cancellation should be deferred to allow
1577 // fling boosting events to arrive. 1577 // fling boosting events to arrive.
1578 time += dt; 1578 time += dt;
1579 CancelFling(time); 1579 CancelFling(time);
1580 1580
1581 // The GestureScrollBegin should be swallowed by the fling if it hits the same 1581 // The GestureScrollBegin should be swallowed by the fling if it hits the same
1582 // scrolling layer. 1582 // scrolling layer.
1583 EXPECT_CALL(mock_input_handler_, 1583 EXPECT_CALL(mock_input_handler_,
1584 IsCurrentlyScrollingLayerAt(testing::_, testing::_)) 1584 IsCurrentlyScrollingLayerAt(testing::_, testing::_))
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1627 .WillOnce(testing::Return(true)); 1627 .WillOnce(testing::Return(true));
1628 input_handler_->Animate(time); 1628 input_handler_->Animate(time);
1629 last_animate_time = time; 1629 last_animate_time = time;
1630 1630
1631 VERIFY_AND_RESET_MOCKS(); 1631 VERIFY_AND_RESET_MOCKS();
1632 1632
1633 // GestureFlingStart in the same direction and at sufficient speed should 1633 // GestureFlingStart in the same direction and at sufficient speed should
1634 // boost the active fling. 1634 // boost the active fling.
1635 1635
1636 gesture_ = CreateFling(time, 1636 gesture_ = CreateFling(time,
1637 WebGestureEvent::Touchscreen, 1637 blink::WebGestureDeviceTouchpad,
1638 fling_delta, 1638 fling_delta,
1639 fling_point, 1639 fling_point,
1640 fling_point, 1640 fling_point,
1641 0); 1641 0);
1642 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 1642 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
1643 VERIFY_AND_RESET_MOCKS(); 1643 VERIFY_AND_RESET_MOCKS();
1644 1644
1645 time += dt; 1645 time += dt;
1646 // Note we get *2x* as much delta because 2 flings have combined. 1646 // Note we get *2x* as much delta because 2 flings have combined.
1647 expected_delta = 2 * (time - last_animate_time).InSecondsF() * -fling_delta.x; 1647 expected_delta = 2 * (time - last_animate_time).InSecondsF() * -fling_delta.x;
1648 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); 1648 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate());
1649 EXPECT_CALL(mock_input_handler_, 1649 EXPECT_CALL(mock_input_handler_,
1650 ScrollBy(testing::_, 1650 ScrollBy(testing::_,
1651 testing::Property(&gfx::Vector2dF::x, 1651 testing::Property(&gfx::Vector2dF::x,
1652 testing::Eq(expected_delta)))) 1652 testing::Eq(expected_delta))))
1653 .WillOnce(testing::Return(true)); 1653 .WillOnce(testing::Return(true));
1654 input_handler_->Animate(time); 1654 input_handler_->Animate(time);
1655 last_animate_time = time; 1655 last_animate_time = time;
1656 1656
1657 VERIFY_AND_RESET_MOCKS(); 1657 VERIFY_AND_RESET_MOCKS();
1658 1658
1659 // Repeated GestureFlingStarts should accumulate. 1659 // Repeated GestureFlingStarts should accumulate.
1660 1660
1661 CancelFling(time); 1661 CancelFling(time);
1662 gesture_ = CreateFling(time, 1662 gesture_ = CreateFling(time,
1663 WebGestureEvent::Touchscreen, 1663 blink::WebGestureDeviceTouchpad,
1664 fling_delta, 1664 fling_delta,
1665 fling_point, 1665 fling_point,
1666 fling_point, 1666 fling_point,
1667 0); 1667 0);
1668 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 1668 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
1669 VERIFY_AND_RESET_MOCKS(); 1669 VERIFY_AND_RESET_MOCKS();
1670 1670
1671 time += dt; 1671 time += dt;
1672 // Note we get *3x* as much delta because 3 flings have combined. 1672 // Note we get *3x* as much delta because 3 flings have combined.
1673 expected_delta = 3 * (time - last_animate_time).InSecondsF() * -fling_delta.x; 1673 expected_delta = 3 * (time - last_animate_time).InSecondsF() * -fling_delta.x;
(...skipping 23 matching lines...) Expand all
1697 input_handler_->Animate(time); 1697 input_handler_->Animate(time);
1698 1698
1699 VERIFY_AND_RESET_MOCKS(); 1699 VERIFY_AND_RESET_MOCKS();
1700 } 1700 }
1701 1701
1702 TEST_F(InputHandlerProxyTest, NoFlingBoostIfScrollTargetsDifferentLayer) { 1702 TEST_F(InputHandlerProxyTest, NoFlingBoostIfScrollTargetsDifferentLayer) {
1703 base::TimeDelta dt = base::TimeDelta::FromMilliseconds(10); 1703 base::TimeDelta dt = base::TimeDelta::FromMilliseconds(10);
1704 base::TimeTicks time = base::TimeTicks() + dt; 1704 base::TimeTicks time = base::TimeTicks() + dt;
1705 WebFloatPoint fling_delta = WebFloatPoint(1000, 0); 1705 WebFloatPoint fling_delta = WebFloatPoint(1000, 0);
1706 WebPoint fling_point = WebPoint(7, 13); 1706 WebPoint fling_point = WebPoint(7, 13);
1707 StartFling(time, WebGestureEvent::Touchscreen, fling_delta, fling_point); 1707 StartFling(time, blink::WebGestureDeviceTouchpad, fling_delta, fling_point);
1708 1708
1709 // Cancel the fling. The fling cancellation should be deferred to allow 1709 // Cancel the fling. The fling cancellation should be deferred to allow
1710 // fling boosting events to arrive. 1710 // fling boosting events to arrive.
1711 time += dt; 1711 time += dt;
1712 CancelFling(time); 1712 CancelFling(time);
1713 1713
1714 // If the GestureScrollBegin targets a different layer, the fling should be 1714 // If the GestureScrollBegin targets a different layer, the fling should be
1715 // cancelled and the scroll should be handled as usual. 1715 // cancelled and the scroll should be handled as usual.
1716 EXPECT_CALL(mock_input_handler_, 1716 EXPECT_CALL(mock_input_handler_,
1717 IsCurrentlyScrollingLayerAt(testing::_, testing::_)) 1717 IsCurrentlyScrollingLayerAt(testing::_, testing::_))
1718 .WillOnce(testing::Return(false)); 1718 .WillOnce(testing::Return(false));
1719 EXPECT_CALL(mock_input_handler_, ScrollEnd()); 1719 EXPECT_CALL(mock_input_handler_, ScrollEnd());
1720 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) 1720 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
1721 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted)); 1721 .WillOnce(testing::Return(cc::InputHandler::ScrollStarted));
1722 1722
1723 time += dt; 1723 time += dt;
1724 gesture_.timeStampSeconds = InSecondsF(time); 1724 gesture_.timeStampSeconds = InSecondsF(time);
1725 gesture_.type = WebInputEvent::GestureScrollBegin; 1725 gesture_.type = WebInputEvent::GestureScrollBegin;
1726 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 1726 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
1727 1727
1728 VERIFY_AND_RESET_MOCKS(); 1728 VERIFY_AND_RESET_MOCKS();
1729 } 1729 }
1730 1730
1731 TEST_F(InputHandlerProxyTest, NoFlingBoostIfScrollDelayed) { 1731 TEST_F(InputHandlerProxyTest, NoFlingBoostIfScrollDelayed) {
1732 base::TimeDelta dt = base::TimeDelta::FromMilliseconds(10); 1732 base::TimeDelta dt = base::TimeDelta::FromMilliseconds(10);
1733 base::TimeTicks time = base::TimeTicks() + dt; 1733 base::TimeTicks time = base::TimeTicks() + dt;
1734 WebFloatPoint fling_delta = WebFloatPoint(1000, 0); 1734 WebFloatPoint fling_delta = WebFloatPoint(1000, 0);
1735 WebPoint fling_point = WebPoint(7, 13); 1735 WebPoint fling_point = WebPoint(7, 13);
1736 StartFling(time, WebGestureEvent::Touchscreen, fling_delta, fling_point); 1736 StartFling(time, blink::WebGestureDeviceTouchpad, fling_delta, fling_point);
1737 1737
1738 // Cancel the fling. The fling cancellation should be deferred to allow 1738 // Cancel the fling. The fling cancellation should be deferred to allow
1739 // fling boosting events to arrive. 1739 // fling boosting events to arrive.
1740 time += dt; 1740 time += dt;
1741 CancelFling(time); 1741 CancelFling(time);
1742 1742
1743 // The GestureScrollBegin should be swallowed by the fling if it hits the same 1743 // The GestureScrollBegin should be swallowed by the fling if it hits the same
1744 // scrolling layer. 1744 // scrolling layer.
1745 EXPECT_CALL(mock_input_handler_, 1745 EXPECT_CALL(mock_input_handler_,
1746 IsCurrentlyScrollingLayerAt(testing::_, testing::_)) 1746 IsCurrentlyScrollingLayerAt(testing::_, testing::_))
(...skipping 15 matching lines...) Expand all
1762 input_handler_->Animate(time); 1762 input_handler_->Animate(time);
1763 1763
1764 VERIFY_AND_RESET_MOCKS(); 1764 VERIFY_AND_RESET_MOCKS();
1765 } 1765 }
1766 1766
1767 TEST_F(InputHandlerProxyTest, NoFlingBoostIfScrollInDifferentDirection) { 1767 TEST_F(InputHandlerProxyTest, NoFlingBoostIfScrollInDifferentDirection) {
1768 base::TimeDelta dt = base::TimeDelta::FromMilliseconds(10); 1768 base::TimeDelta dt = base::TimeDelta::FromMilliseconds(10);
1769 base::TimeTicks time = base::TimeTicks() + dt; 1769 base::TimeTicks time = base::TimeTicks() + dt;
1770 WebFloatPoint fling_delta = WebFloatPoint(1000, 0); 1770 WebFloatPoint fling_delta = WebFloatPoint(1000, 0);
1771 WebPoint fling_point = WebPoint(7, 13); 1771 WebPoint fling_point = WebPoint(7, 13);
1772 StartFling(time, WebGestureEvent::Touchscreen, fling_delta, fling_point); 1772 StartFling(time, blink::WebGestureDeviceTouchpad, fling_delta, fling_point);
1773 1773
1774 // Cancel the fling. The fling cancellation should be deferred to allow 1774 // Cancel the fling. The fling cancellation should be deferred to allow
1775 // fling boosting events to arrive. 1775 // fling boosting events to arrive.
1776 time += dt; 1776 time += dt;
1777 CancelFling(time); 1777 CancelFling(time);
1778 1778
1779 // The GestureScrollBegin should be swallowed by the fling if it hits the same 1779 // The GestureScrollBegin should be swallowed by the fling if it hits the same
1780 // scrolling layer. 1780 // scrolling layer.
1781 EXPECT_CALL(mock_input_handler_, 1781 EXPECT_CALL(mock_input_handler_,
1782 IsCurrentlyScrollingLayerAt(testing::_, testing::_)) 1782 IsCurrentlyScrollingLayerAt(testing::_, testing::_))
(...skipping 23 matching lines...) Expand all
1806 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 1806 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
1807 1807
1808 VERIFY_AND_RESET_MOCKS(); 1808 VERIFY_AND_RESET_MOCKS();
1809 } 1809 }
1810 1810
1811 TEST_F(InputHandlerProxyTest, NoFlingBoostIfFlingTooSlow) { 1811 TEST_F(InputHandlerProxyTest, NoFlingBoostIfFlingTooSlow) {
1812 base::TimeDelta dt = base::TimeDelta::FromMilliseconds(10); 1812 base::TimeDelta dt = base::TimeDelta::FromMilliseconds(10);
1813 base::TimeTicks time = base::TimeTicks() + dt; 1813 base::TimeTicks time = base::TimeTicks() + dt;
1814 WebFloatPoint fling_delta = WebFloatPoint(1000, 0); 1814 WebFloatPoint fling_delta = WebFloatPoint(1000, 0);
1815 WebPoint fling_point = WebPoint(7, 13); 1815 WebPoint fling_point = WebPoint(7, 13);
1816 StartFling(time, WebGestureEvent::Touchscreen, fling_delta, fling_point); 1816 StartFling(time, blink::WebGestureDeviceTouchpad, fling_delta, fling_point);
1817 1817
1818 // Cancel the fling. The fling cancellation should be deferred to allow 1818 // Cancel the fling. The fling cancellation should be deferred to allow
1819 // fling boosting events to arrive. 1819 // fling boosting events to arrive.
1820 time += dt; 1820 time += dt;
1821 CancelFling(time); 1821 CancelFling(time);
1822 1822
1823 // If the new fling is too slow, no boosting should take place, with the new 1823 // If the new fling is too slow, no boosting should take place, with the new
1824 // fling replacing the old. 1824 // fling replacing the old.
1825 WebFloatPoint small_fling_delta = WebFloatPoint(100, 0); 1825 WebFloatPoint small_fling_delta = WebFloatPoint(100, 0);
1826 gesture_ = CreateFling(time, 1826 gesture_ = CreateFling(time,
1827 WebGestureEvent::Touchscreen, 1827 blink::WebGestureDeviceTouchpad,
1828 small_fling_delta, 1828 small_fling_delta,
1829 fling_point, 1829 fling_point,
1830 fling_point, 1830 fling_point,
1831 0); 1831 0);
1832 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_)); 1832 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
1833 1833
1834 VERIFY_AND_RESET_MOCKS(); 1834 VERIFY_AND_RESET_MOCKS();
1835 1835
1836 // Note that the new fling delta uses the *slow*, unboosted fling velocity. 1836 // Note that the new fling delta uses the *slow*, unboosted fling velocity.
1837 time += dt; 1837 time += dt;
1838 float expected_delta = dt.InSecondsF() * -small_fling_delta.x; 1838 float expected_delta = dt.InSecondsF() * -small_fling_delta.x;
1839 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate()); 1839 EXPECT_CALL(mock_input_handler_, SetNeedsAnimate());
1840 EXPECT_CALL(mock_input_handler_, 1840 EXPECT_CALL(mock_input_handler_,
1841 ScrollBy(testing::_, 1841 ScrollBy(testing::_,
1842 testing::Property(&gfx::Vector2dF::x, 1842 testing::Property(&gfx::Vector2dF::x,
1843 testing::Eq(expected_delta)))) 1843 testing::Eq(expected_delta))))
1844 .WillOnce(testing::Return(true)); 1844 .WillOnce(testing::Return(true));
1845 input_handler_->Animate(time); 1845 input_handler_->Animate(time);
1846 1846
1847 VERIFY_AND_RESET_MOCKS(); 1847 VERIFY_AND_RESET_MOCKS();
1848 } 1848 }
1849 1849
1850 } // namespace 1850 } // namespace
1851 } // namespace content 1851 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698