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 "content/browser/renderer_host/input/synthetic_gesture_controller.h" |
| 6 |
5 #include <stddef.h> | 7 #include <stddef.h> |
6 #include <stdint.h> | 8 #include <stdint.h> |
| 9 #include <utility> |
7 | 10 |
8 #include "base/bind.h" | 11 #include "base/bind.h" |
9 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
10 #include "base/time/time.h" | 13 #include "base/time/time.h" |
11 #include "content/browser/renderer_host/input/synthetic_gesture.h" | 14 #include "content/browser/renderer_host/input/synthetic_gesture.h" |
12 #include "content/browser/renderer_host/input/synthetic_gesture_controller.h" | |
13 #include "content/browser/renderer_host/input/synthetic_gesture_target.h" | 15 #include "content/browser/renderer_host/input/synthetic_gesture_target.h" |
14 #include "content/browser/renderer_host/input/synthetic_pinch_gesture.h" | 16 #include "content/browser/renderer_host/input/synthetic_pinch_gesture.h" |
15 #include "content/browser/renderer_host/input/synthetic_pointer_action.h" | 17 #include "content/browser/renderer_host/input/synthetic_pointer_action.h" |
16 #include "content/browser/renderer_host/input/synthetic_smooth_drag_gesture.h" | 18 #include "content/browser/renderer_host/input/synthetic_smooth_drag_gesture.h" |
17 #include "content/browser/renderer_host/input/synthetic_smooth_move_gesture.h" | 19 #include "content/browser/renderer_host/input/synthetic_smooth_move_gesture.h" |
18 #include "content/browser/renderer_host/input/synthetic_smooth_scroll_gesture.h" | 20 #include "content/browser/renderer_host/input/synthetic_smooth_scroll_gesture.h" |
19 #include "content/browser/renderer_host/input/synthetic_tap_gesture.h" | 21 #include "content/browser/renderer_host/input/synthetic_tap_gesture.h" |
20 #include "content/browser/renderer_host/input/synthetic_touch_pointer.h" | 22 #include "content/browser/renderer_host/input/synthetic_touch_pointer.h" |
21 #include "content/browser/renderer_host/input/synthetic_touchpad_pinch_gesture.h
" | 23 #include "content/browser/renderer_host/input/synthetic_touchpad_pinch_gesture.h
" |
22 #include "content/browser/renderer_host/input/synthetic_touchscreen_pinch_gestur
e.h" | 24 #include "content/browser/renderer_host/input/synthetic_touchscreen_pinch_gestur
e.h" |
(...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
516 protected: | 518 protected: |
517 template<typename MockGestureTarget> | 519 template<typename MockGestureTarget> |
518 void CreateControllerAndTarget() { | 520 void CreateControllerAndTarget() { |
519 target_ = new MockGestureTarget(); | 521 target_ = new MockGestureTarget(); |
520 controller_.reset(new SyntheticGestureController( | 522 controller_.reset(new SyntheticGestureController( |
521 scoped_ptr<SyntheticGestureTarget>(target_))); | 523 scoped_ptr<SyntheticGestureTarget>(target_))); |
522 } | 524 } |
523 | 525 |
524 void QueueSyntheticGesture(scoped_ptr<SyntheticGesture> gesture) { | 526 void QueueSyntheticGesture(scoped_ptr<SyntheticGesture> gesture) { |
525 controller_->QueueSyntheticGesture( | 527 controller_->QueueSyntheticGesture( |
526 gesture.Pass(), | 528 std::move(gesture), |
527 base::Bind( | 529 base::Bind( |
528 &SyntheticGestureControllerTestBase::OnSyntheticGestureCompleted, | 530 &SyntheticGestureControllerTestBase::OnSyntheticGestureCompleted, |
529 base::Unretained(this))); | 531 base::Unretained(this))); |
530 } | 532 } |
531 | 533 |
532 void FlushInputUntilComplete() { | 534 void FlushInputUntilComplete() { |
533 while (target_->flush_requested()) { | 535 while (target_->flush_requested()) { |
534 while (target_->flush_requested()) { | 536 while (target_->flush_requested()) { |
535 target_->ClearFlushRequest(); | 537 target_->ClearFlushRequest(); |
536 time_ += base::TimeDelta::FromMilliseconds(kFlushInputRateInMs); | 538 time_ += base::TimeDelta::FromMilliseconds(kFlushInputRateInMs); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
593 time_ = base::TimeTicks(); | 595 time_ = base::TimeTicks(); |
594 } | 596 } |
595 }; | 597 }; |
596 | 598 |
597 TEST_F(SyntheticGestureControllerTest, SingleGesture) { | 599 TEST_F(SyntheticGestureControllerTest, SingleGesture) { |
598 CreateControllerAndTarget<MockSyntheticGestureTarget>(); | 600 CreateControllerAndTarget<MockSyntheticGestureTarget>(); |
599 | 601 |
600 bool finished = false; | 602 bool finished = false; |
601 scoped_ptr<MockSyntheticGesture> gesture( | 603 scoped_ptr<MockSyntheticGesture> gesture( |
602 new MockSyntheticGesture(&finished, 3)); | 604 new MockSyntheticGesture(&finished, 3)); |
603 QueueSyntheticGesture(gesture.Pass()); | 605 QueueSyntheticGesture(std::move(gesture)); |
604 FlushInputUntilComplete(); | 606 FlushInputUntilComplete(); |
605 | 607 |
606 EXPECT_TRUE(finished); | 608 EXPECT_TRUE(finished); |
607 EXPECT_EQ(1, num_success_); | 609 EXPECT_EQ(1, num_success_); |
608 EXPECT_EQ(0, num_failure_); | 610 EXPECT_EQ(0, num_failure_); |
609 } | 611 } |
610 | 612 |
611 TEST_F(SyntheticGestureControllerTest, GestureFailed) { | 613 TEST_F(SyntheticGestureControllerTest, GestureFailed) { |
612 CreateControllerAndTarget<MockSyntheticGestureTarget>(); | 614 CreateControllerAndTarget<MockSyntheticGestureTarget>(); |
613 | 615 |
614 bool finished = false; | 616 bool finished = false; |
615 scoped_ptr<MockSyntheticGesture> gesture( | 617 scoped_ptr<MockSyntheticGesture> gesture( |
616 new MockSyntheticGesture(&finished, 0)); | 618 new MockSyntheticGesture(&finished, 0)); |
617 QueueSyntheticGesture(gesture.Pass()); | 619 QueueSyntheticGesture(std::move(gesture)); |
618 FlushInputUntilComplete(); | 620 FlushInputUntilComplete(); |
619 | 621 |
620 EXPECT_TRUE(finished); | 622 EXPECT_TRUE(finished); |
621 EXPECT_EQ(1, num_failure_); | 623 EXPECT_EQ(1, num_failure_); |
622 EXPECT_EQ(0, num_success_); | 624 EXPECT_EQ(0, num_success_); |
623 } | 625 } |
624 | 626 |
625 TEST_F(SyntheticGestureControllerTest, SuccessiveGestures) { | 627 TEST_F(SyntheticGestureControllerTest, SuccessiveGestures) { |
626 CreateControllerAndTarget<MockSyntheticGestureTarget>(); | 628 CreateControllerAndTarget<MockSyntheticGestureTarget>(); |
627 | 629 |
628 bool finished_1 = false; | 630 bool finished_1 = false; |
629 scoped_ptr<MockSyntheticGesture> gesture_1( | 631 scoped_ptr<MockSyntheticGesture> gesture_1( |
630 new MockSyntheticGesture(&finished_1, 2)); | 632 new MockSyntheticGesture(&finished_1, 2)); |
631 bool finished_2 = false; | 633 bool finished_2 = false; |
632 scoped_ptr<MockSyntheticGesture> gesture_2( | 634 scoped_ptr<MockSyntheticGesture> gesture_2( |
633 new MockSyntheticGesture(&finished_2, 4)); | 635 new MockSyntheticGesture(&finished_2, 4)); |
634 | 636 |
635 // Queue first gesture and wait for it to finish | 637 // Queue first gesture and wait for it to finish |
636 QueueSyntheticGesture(gesture_1.Pass()); | 638 QueueSyntheticGesture(std::move(gesture_1)); |
637 FlushInputUntilComplete(); | 639 FlushInputUntilComplete(); |
638 | 640 |
639 EXPECT_TRUE(finished_1); | 641 EXPECT_TRUE(finished_1); |
640 EXPECT_EQ(1, num_success_); | 642 EXPECT_EQ(1, num_success_); |
641 EXPECT_EQ(0, num_failure_); | 643 EXPECT_EQ(0, num_failure_); |
642 | 644 |
643 // Queue second gesture. | 645 // Queue second gesture. |
644 QueueSyntheticGesture(gesture_2.Pass()); | 646 QueueSyntheticGesture(std::move(gesture_2)); |
645 FlushInputUntilComplete(); | 647 FlushInputUntilComplete(); |
646 | 648 |
647 EXPECT_TRUE(finished_2); | 649 EXPECT_TRUE(finished_2); |
648 EXPECT_EQ(2, num_success_); | 650 EXPECT_EQ(2, num_success_); |
649 EXPECT_EQ(0, num_failure_); | 651 EXPECT_EQ(0, num_failure_); |
650 } | 652 } |
651 | 653 |
652 TEST_F(SyntheticGestureControllerTest, TwoGesturesInFlight) { | 654 TEST_F(SyntheticGestureControllerTest, TwoGesturesInFlight) { |
653 CreateControllerAndTarget<MockSyntheticGestureTarget>(); | 655 CreateControllerAndTarget<MockSyntheticGestureTarget>(); |
654 | 656 |
655 bool finished_1 = false; | 657 bool finished_1 = false; |
656 scoped_ptr<MockSyntheticGesture> gesture_1( | 658 scoped_ptr<MockSyntheticGesture> gesture_1( |
657 new MockSyntheticGesture(&finished_1, 2)); | 659 new MockSyntheticGesture(&finished_1, 2)); |
658 bool finished_2 = false; | 660 bool finished_2 = false; |
659 scoped_ptr<MockSyntheticGesture> gesture_2( | 661 scoped_ptr<MockSyntheticGesture> gesture_2( |
660 new MockSyntheticGesture(&finished_2, 4)); | 662 new MockSyntheticGesture(&finished_2, 4)); |
661 | 663 |
662 QueueSyntheticGesture(gesture_1.Pass()); | 664 QueueSyntheticGesture(std::move(gesture_1)); |
663 QueueSyntheticGesture(gesture_2.Pass()); | 665 QueueSyntheticGesture(std::move(gesture_2)); |
664 FlushInputUntilComplete(); | 666 FlushInputUntilComplete(); |
665 | 667 |
666 EXPECT_TRUE(finished_1); | 668 EXPECT_TRUE(finished_1); |
667 EXPECT_TRUE(finished_2); | 669 EXPECT_TRUE(finished_2); |
668 | 670 |
669 EXPECT_EQ(2, num_success_); | 671 EXPECT_EQ(2, num_success_); |
670 EXPECT_EQ(0, num_failure_); | 672 EXPECT_EQ(0, num_failure_); |
671 } | 673 } |
672 | 674 |
673 TEST_F(SyntheticGestureControllerTest, GestureCompletedOnDidFlushInput) { | 675 TEST_F(SyntheticGestureControllerTest, GestureCompletedOnDidFlushInput) { |
674 CreateControllerAndTarget<MockSyntheticGestureTarget>(); | 676 CreateControllerAndTarget<MockSyntheticGestureTarget>(); |
675 | 677 |
676 bool finished_1, finished_2; | 678 bool finished_1, finished_2; |
677 scoped_ptr<MockSyntheticGesture> gesture_1( | 679 scoped_ptr<MockSyntheticGesture> gesture_1( |
678 new MockSyntheticGesture(&finished_1, 2)); | 680 new MockSyntheticGesture(&finished_1, 2)); |
679 scoped_ptr<MockSyntheticGesture> gesture_2( | 681 scoped_ptr<MockSyntheticGesture> gesture_2( |
680 new MockSyntheticGesture(&finished_2, 4)); | 682 new MockSyntheticGesture(&finished_2, 4)); |
681 | 683 |
682 QueueSyntheticGesture(gesture_1.Pass()); | 684 QueueSyntheticGesture(std::move(gesture_1)); |
683 QueueSyntheticGesture(gesture_2.Pass()); | 685 QueueSyntheticGesture(std::move(gesture_2)); |
684 | 686 |
685 while (target_->flush_requested()) { | 687 while (target_->flush_requested()) { |
686 target_->ClearFlushRequest(); | 688 target_->ClearFlushRequest(); |
687 time_ += base::TimeDelta::FromMilliseconds(kFlushInputRateInMs); | 689 time_ += base::TimeDelta::FromMilliseconds(kFlushInputRateInMs); |
688 controller_->Flush(time_); | 690 controller_->Flush(time_); |
689 } | 691 } |
690 EXPECT_EQ(0, num_success_); | 692 EXPECT_EQ(0, num_success_); |
691 controller_->OnDidFlushInput(); | 693 controller_->OnDidFlushInput(); |
692 EXPECT_EQ(1, num_success_); | 694 EXPECT_EQ(1, num_success_); |
693 | 695 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
727 SyntheticSmoothMoveGestureParams params; | 729 SyntheticSmoothMoveGestureParams params; |
728 params.input_type = SyntheticSmoothMoveGestureParams::TOUCH_INPUT; | 730 params.input_type = SyntheticSmoothMoveGestureParams::TOUCH_INPUT; |
729 if (GetParam() == TOUCH_DRAG) { | 731 if (GetParam() == TOUCH_DRAG) { |
730 params.add_slop = false; | 732 params.add_slop = false; |
731 } | 733 } |
732 params.start_point.SetPoint(89, 32); | 734 params.start_point.SetPoint(89, 32); |
733 params.distances.push_back(gfx::Vector2d(0, 123)); | 735 params.distances.push_back(gfx::Vector2d(0, 123)); |
734 | 736 |
735 scoped_ptr<SyntheticSmoothMoveGesture> gesture( | 737 scoped_ptr<SyntheticSmoothMoveGesture> gesture( |
736 new SyntheticSmoothMoveGesture(params)); | 738 new SyntheticSmoothMoveGesture(params)); |
737 QueueSyntheticGesture(gesture.Pass()); | 739 QueueSyntheticGesture(std::move(gesture)); |
738 FlushInputUntilComplete(); | 740 FlushInputUntilComplete(); |
739 | 741 |
740 MockMoveGestureTarget* scroll_target = | 742 MockMoveGestureTarget* scroll_target = |
741 static_cast<MockMoveGestureTarget*>(target_); | 743 static_cast<MockMoveGestureTarget*>(target_); |
742 EXPECT_EQ(1, num_success_); | 744 EXPECT_EQ(1, num_success_); |
743 EXPECT_EQ(0, num_failure_); | 745 EXPECT_EQ(0, num_failure_); |
744 if (GetParam() == TOUCH_SCROLL) { | 746 if (GetParam() == TOUCH_SCROLL) { |
745 EXPECT_EQ(AddTouchSlopToVector(params.distances[0], target_), | 747 EXPECT_EQ(AddTouchSlopToVector(params.distances[0], target_), |
746 scroll_target->start_to_end_distance()); | 748 scroll_target->start_to_end_distance()); |
747 } else { | 749 } else { |
748 EXPECT_EQ(params.distances[0], scroll_target->start_to_end_distance()); | 750 EXPECT_EQ(params.distances[0], scroll_target->start_to_end_distance()); |
749 } | 751 } |
750 } | 752 } |
751 | 753 |
752 TEST_P(SyntheticGestureControllerTestWithParam, | 754 TEST_P(SyntheticGestureControllerTestWithParam, |
753 SingleScrollGestureTouchHorizontal) { | 755 SingleScrollGestureTouchHorizontal) { |
754 CreateControllerAndTarget<MockMoveTouchTarget>(); | 756 CreateControllerAndTarget<MockMoveTouchTarget>(); |
755 | 757 |
756 SyntheticSmoothMoveGestureParams params; | 758 SyntheticSmoothMoveGestureParams params; |
757 params.input_type = SyntheticSmoothMoveGestureParams::TOUCH_INPUT; | 759 params.input_type = SyntheticSmoothMoveGestureParams::TOUCH_INPUT; |
758 if (GetParam() == TOUCH_DRAG) { | 760 if (GetParam() == TOUCH_DRAG) { |
759 params.add_slop = false; | 761 params.add_slop = false; |
760 } | 762 } |
761 params.start_point.SetPoint(12, -23); | 763 params.start_point.SetPoint(12, -23); |
762 params.distances.push_back(gfx::Vector2d(-234, 0)); | 764 params.distances.push_back(gfx::Vector2d(-234, 0)); |
763 | 765 |
764 scoped_ptr<SyntheticSmoothMoveGesture> gesture( | 766 scoped_ptr<SyntheticSmoothMoveGesture> gesture( |
765 new SyntheticSmoothMoveGesture(params)); | 767 new SyntheticSmoothMoveGesture(params)); |
766 QueueSyntheticGesture(gesture.Pass()); | 768 QueueSyntheticGesture(std::move(gesture)); |
767 FlushInputUntilComplete(); | 769 FlushInputUntilComplete(); |
768 | 770 |
769 MockMoveGestureTarget* scroll_target = | 771 MockMoveGestureTarget* scroll_target = |
770 static_cast<MockMoveGestureTarget*>(target_); | 772 static_cast<MockMoveGestureTarget*>(target_); |
771 EXPECT_EQ(1, num_success_); | 773 EXPECT_EQ(1, num_success_); |
772 EXPECT_EQ(0, num_failure_); | 774 EXPECT_EQ(0, num_failure_); |
773 if (GetParam() == TOUCH_SCROLL) { | 775 if (GetParam() == TOUCH_SCROLL) { |
774 EXPECT_EQ(AddTouchSlopToVector(params.distances[0], target_), | 776 EXPECT_EQ(AddTouchSlopToVector(params.distances[0], target_), |
775 scroll_target->start_to_end_distance()); | 777 scroll_target->start_to_end_distance()); |
776 } else { | 778 } else { |
(...skipping 24 matching lines...) Expand all Loading... |
801 TEST_F(SyntheticGestureControllerTest, SingleScrollGestureTouchDiagonal) { | 803 TEST_F(SyntheticGestureControllerTest, SingleScrollGestureTouchDiagonal) { |
802 CreateControllerAndTarget<MockMoveTouchTarget>(); | 804 CreateControllerAndTarget<MockMoveTouchTarget>(); |
803 | 805 |
804 SyntheticSmoothMoveGestureParams params; | 806 SyntheticSmoothMoveGestureParams params; |
805 params.input_type = SyntheticSmoothMoveGestureParams::TOUCH_INPUT; | 807 params.input_type = SyntheticSmoothMoveGestureParams::TOUCH_INPUT; |
806 params.start_point.SetPoint(0, 7); | 808 params.start_point.SetPoint(0, 7); |
807 params.distances.push_back(gfx::Vector2d(413, -83)); | 809 params.distances.push_back(gfx::Vector2d(413, -83)); |
808 | 810 |
809 scoped_ptr<SyntheticSmoothMoveGesture> gesture( | 811 scoped_ptr<SyntheticSmoothMoveGesture> gesture( |
810 new SyntheticSmoothMoveGesture(params)); | 812 new SyntheticSmoothMoveGesture(params)); |
811 QueueSyntheticGesture(gesture.Pass()); | 813 QueueSyntheticGesture(std::move(gesture)); |
812 FlushInputUntilComplete(); | 814 FlushInputUntilComplete(); |
813 | 815 |
814 MockMoveGestureTarget* scroll_target = | 816 MockMoveGestureTarget* scroll_target = |
815 static_cast<MockMoveGestureTarget*>(target_); | 817 static_cast<MockMoveGestureTarget*>(target_); |
816 EXPECT_EQ(1, num_success_); | 818 EXPECT_EQ(1, num_success_); |
817 EXPECT_EQ(0, num_failure_); | 819 EXPECT_EQ(0, num_failure_); |
818 CheckSingleScrollDistanceIsWithinRange( | 820 CheckSingleScrollDistanceIsWithinRange( |
819 scroll_target->start_to_end_distance(), params.distances[0], target_); | 821 scroll_target->start_to_end_distance(), params.distances[0], target_); |
820 } | 822 } |
821 | 823 |
822 TEST_F(SyntheticGestureControllerTest, SingleScrollGestureTouchLongStop) { | 824 TEST_F(SyntheticGestureControllerTest, SingleScrollGestureTouchLongStop) { |
823 CreateControllerAndTarget<MockMoveTouchTarget>(); | 825 CreateControllerAndTarget<MockMoveTouchTarget>(); |
824 | 826 |
825 // Create a smooth scroll with a short distance and set the pointer assumed | 827 // Create a smooth scroll with a short distance and set the pointer assumed |
826 // stopped time high, so that the stopping should dominate the time the | 828 // stopped time high, so that the stopping should dominate the time the |
827 // gesture is active. | 829 // gesture is active. |
828 SyntheticSmoothMoveGestureParams params; | 830 SyntheticSmoothMoveGestureParams params; |
829 params.input_type = SyntheticSmoothMoveGestureParams::TOUCH_INPUT; | 831 params.input_type = SyntheticSmoothMoveGestureParams::TOUCH_INPUT; |
830 params.start_point.SetPoint(-98, -23); | 832 params.start_point.SetPoint(-98, -23); |
831 params.distances.push_back(gfx::Vector2d(21, -12)); | 833 params.distances.push_back(gfx::Vector2d(21, -12)); |
832 params.prevent_fling = true; | 834 params.prevent_fling = true; |
833 target_->set_pointer_assumed_stopped_time_ms(543); | 835 target_->set_pointer_assumed_stopped_time_ms(543); |
834 | 836 |
835 scoped_ptr<SyntheticSmoothMoveGesture> gesture( | 837 scoped_ptr<SyntheticSmoothMoveGesture> gesture( |
836 new SyntheticSmoothMoveGesture(params)); | 838 new SyntheticSmoothMoveGesture(params)); |
837 QueueSyntheticGesture(gesture.Pass()); | 839 QueueSyntheticGesture(std::move(gesture)); |
838 FlushInputUntilComplete(); | 840 FlushInputUntilComplete(); |
839 | 841 |
840 MockMoveGestureTarget* scroll_target = | 842 MockMoveGestureTarget* scroll_target = |
841 static_cast<MockMoveGestureTarget*>(target_); | 843 static_cast<MockMoveGestureTarget*>(target_); |
842 EXPECT_EQ(1, num_success_); | 844 EXPECT_EQ(1, num_success_); |
843 EXPECT_EQ(0, num_failure_); | 845 EXPECT_EQ(0, num_failure_); |
844 CheckSingleScrollDistanceIsWithinRange( | 846 CheckSingleScrollDistanceIsWithinRange( |
845 scroll_target->start_to_end_distance(), params.distances[0], target_); | 847 scroll_target->start_to_end_distance(), params.distances[0], target_); |
846 EXPECT_GE(GetTotalTime(), target_->PointerAssumedStoppedTime()); | 848 EXPECT_GE(GetTotalTime(), target_->PointerAssumedStoppedTime()); |
847 } | 849 } |
848 | 850 |
849 TEST_F(SyntheticGestureControllerTest, SingleScrollGestureTouchFling) { | 851 TEST_F(SyntheticGestureControllerTest, SingleScrollGestureTouchFling) { |
850 CreateControllerAndTarget<MockMoveTouchTarget>(); | 852 CreateControllerAndTarget<MockMoveTouchTarget>(); |
851 | 853 |
852 // Create a smooth scroll with a short distance and set the pointer assumed | 854 // Create a smooth scroll with a short distance and set the pointer assumed |
853 // stopped time high. Disable 'prevent_fling' and check that the gesture | 855 // stopped time high. Disable 'prevent_fling' and check that the gesture |
854 // finishes without waiting before it stops. | 856 // finishes without waiting before it stops. |
855 SyntheticSmoothMoveGestureParams params; | 857 SyntheticSmoothMoveGestureParams params; |
856 params.input_type = SyntheticSmoothMoveGestureParams::TOUCH_INPUT; | 858 params.input_type = SyntheticSmoothMoveGestureParams::TOUCH_INPUT; |
857 params.start_point.SetPoint(-89, 78); | 859 params.start_point.SetPoint(-89, 78); |
858 params.distances.push_back(gfx::Vector2d(-43, 19)); | 860 params.distances.push_back(gfx::Vector2d(-43, 19)); |
859 params.prevent_fling = false; | 861 params.prevent_fling = false; |
860 | 862 |
861 target_->set_pointer_assumed_stopped_time_ms(543); | 863 target_->set_pointer_assumed_stopped_time_ms(543); |
862 | 864 |
863 scoped_ptr<SyntheticSmoothMoveGesture> gesture( | 865 scoped_ptr<SyntheticSmoothMoveGesture> gesture( |
864 new SyntheticSmoothMoveGesture(params)); | 866 new SyntheticSmoothMoveGesture(params)); |
865 QueueSyntheticGesture(gesture.Pass()); | 867 QueueSyntheticGesture(std::move(gesture)); |
866 FlushInputUntilComplete(); | 868 FlushInputUntilComplete(); |
867 | 869 |
868 MockMoveGestureTarget* scroll_target = | 870 MockMoveGestureTarget* scroll_target = |
869 static_cast<MockMoveGestureTarget*>(target_); | 871 static_cast<MockMoveGestureTarget*>(target_); |
870 EXPECT_EQ(1, num_success_); | 872 EXPECT_EQ(1, num_success_); |
871 EXPECT_EQ(0, num_failure_); | 873 EXPECT_EQ(0, num_failure_); |
872 CheckSingleScrollDistanceIsWithinRange( | 874 CheckSingleScrollDistanceIsWithinRange( |
873 scroll_target->start_to_end_distance(), params.distances[0], target_); | 875 scroll_target->start_to_end_distance(), params.distances[0], target_); |
874 EXPECT_LE(GetTotalTime(), target_->PointerAssumedStoppedTime()); | 876 EXPECT_LE(GetTotalTime(), target_->PointerAssumedStoppedTime()); |
875 } | 877 } |
876 | 878 |
877 TEST_P(SyntheticGestureControllerTestWithParam, | 879 TEST_P(SyntheticGestureControllerTestWithParam, |
878 SingleScrollGestureTouchZeroDistance) { | 880 SingleScrollGestureTouchZeroDistance) { |
879 CreateControllerAndTarget<MockMoveTouchTarget>(); | 881 CreateControllerAndTarget<MockMoveTouchTarget>(); |
880 | 882 |
881 SyntheticSmoothMoveGestureParams params; | 883 SyntheticSmoothMoveGestureParams params; |
882 params.input_type = SyntheticSmoothMoveGestureParams::TOUCH_INPUT; | 884 params.input_type = SyntheticSmoothMoveGestureParams::TOUCH_INPUT; |
883 if (GetParam() == TOUCH_DRAG) { | 885 if (GetParam() == TOUCH_DRAG) { |
884 params.add_slop = false; | 886 params.add_slop = false; |
885 } | 887 } |
886 params.start_point.SetPoint(-32, 43); | 888 params.start_point.SetPoint(-32, 43); |
887 params.distances.push_back(gfx::Vector2d(0, 0)); | 889 params.distances.push_back(gfx::Vector2d(0, 0)); |
888 | 890 |
889 scoped_ptr<SyntheticSmoothMoveGesture> gesture( | 891 scoped_ptr<SyntheticSmoothMoveGesture> gesture( |
890 new SyntheticSmoothMoveGesture(params)); | 892 new SyntheticSmoothMoveGesture(params)); |
891 QueueSyntheticGesture(gesture.Pass()); | 893 QueueSyntheticGesture(std::move(gesture)); |
892 FlushInputUntilComplete(); | 894 FlushInputUntilComplete(); |
893 | 895 |
894 MockMoveGestureTarget* scroll_target = | 896 MockMoveGestureTarget* scroll_target = |
895 static_cast<MockMoveGestureTarget*>(target_); | 897 static_cast<MockMoveGestureTarget*>(target_); |
896 EXPECT_EQ(1, num_success_); | 898 EXPECT_EQ(1, num_success_); |
897 EXPECT_EQ(0, num_failure_); | 899 EXPECT_EQ(0, num_failure_); |
898 EXPECT_EQ(gfx::Vector2dF(0, 0), scroll_target->start_to_end_distance()); | 900 EXPECT_EQ(gfx::Vector2dF(0, 0), scroll_target->start_to_end_distance()); |
899 } | 901 } |
900 | 902 |
901 TEST_F(SyntheticGestureControllerTest, SingleScrollGestureMouseVertical) { | 903 TEST_F(SyntheticGestureControllerTest, SingleScrollGestureMouseVertical) { |
902 CreateControllerAndTarget<MockScrollMouseTarget>(); | 904 CreateControllerAndTarget<MockScrollMouseTarget>(); |
903 | 905 |
904 SyntheticSmoothMoveGestureParams params; | 906 SyntheticSmoothMoveGestureParams params; |
905 params.input_type = SyntheticSmoothMoveGestureParams::MOUSE_WHEEL_INPUT; | 907 params.input_type = SyntheticSmoothMoveGestureParams::MOUSE_WHEEL_INPUT; |
906 params.start_point.SetPoint(432, 89); | 908 params.start_point.SetPoint(432, 89); |
907 params.distances.push_back(gfx::Vector2d(0, -234)); | 909 params.distances.push_back(gfx::Vector2d(0, -234)); |
908 | 910 |
909 scoped_ptr<SyntheticSmoothMoveGesture> gesture( | 911 scoped_ptr<SyntheticSmoothMoveGesture> gesture( |
910 new SyntheticSmoothMoveGesture(params)); | 912 new SyntheticSmoothMoveGesture(params)); |
911 QueueSyntheticGesture(gesture.Pass()); | 913 QueueSyntheticGesture(std::move(gesture)); |
912 FlushInputUntilComplete(); | 914 FlushInputUntilComplete(); |
913 | 915 |
914 MockMoveGestureTarget* scroll_target = | 916 MockMoveGestureTarget* scroll_target = |
915 static_cast<MockMoveGestureTarget*>(target_); | 917 static_cast<MockMoveGestureTarget*>(target_); |
916 EXPECT_EQ(1, num_success_); | 918 EXPECT_EQ(1, num_success_); |
917 EXPECT_EQ(0, num_failure_); | 919 EXPECT_EQ(0, num_failure_); |
918 EXPECT_EQ(params.distances[0], scroll_target->start_to_end_distance()); | 920 EXPECT_EQ(params.distances[0], scroll_target->start_to_end_distance()); |
919 } | 921 } |
920 | 922 |
921 TEST_F(SyntheticGestureControllerTest, SingleScrollGestureMouseHorizontal) { | 923 TEST_F(SyntheticGestureControllerTest, SingleScrollGestureMouseHorizontal) { |
922 CreateControllerAndTarget<MockScrollMouseTarget>(); | 924 CreateControllerAndTarget<MockScrollMouseTarget>(); |
923 | 925 |
924 SyntheticSmoothMoveGestureParams params; | 926 SyntheticSmoothMoveGestureParams params; |
925 params.input_type = SyntheticSmoothMoveGestureParams::MOUSE_WHEEL_INPUT; | 927 params.input_type = SyntheticSmoothMoveGestureParams::MOUSE_WHEEL_INPUT; |
926 params.start_point.SetPoint(90, 12); | 928 params.start_point.SetPoint(90, 12); |
927 params.distances.push_back(gfx::Vector2d(345, 0)); | 929 params.distances.push_back(gfx::Vector2d(345, 0)); |
928 | 930 |
929 scoped_ptr<SyntheticSmoothMoveGesture> gesture( | 931 scoped_ptr<SyntheticSmoothMoveGesture> gesture( |
930 new SyntheticSmoothMoveGesture(params)); | 932 new SyntheticSmoothMoveGesture(params)); |
931 QueueSyntheticGesture(gesture.Pass()); | 933 QueueSyntheticGesture(std::move(gesture)); |
932 FlushInputUntilComplete(); | 934 FlushInputUntilComplete(); |
933 | 935 |
934 MockMoveGestureTarget* scroll_target = | 936 MockMoveGestureTarget* scroll_target = |
935 static_cast<MockMoveGestureTarget*>(target_); | 937 static_cast<MockMoveGestureTarget*>(target_); |
936 EXPECT_EQ(1, num_success_); | 938 EXPECT_EQ(1, num_success_); |
937 EXPECT_EQ(0, num_failure_); | 939 EXPECT_EQ(0, num_failure_); |
938 EXPECT_EQ(params.distances[0], scroll_target->start_to_end_distance()); | 940 EXPECT_EQ(params.distances[0], scroll_target->start_to_end_distance()); |
939 } | 941 } |
940 | 942 |
941 TEST_F(SyntheticGestureControllerTest, SingleScrollGestureMouseDiagonal) { | 943 TEST_F(SyntheticGestureControllerTest, SingleScrollGestureMouseDiagonal) { |
942 CreateControllerAndTarget<MockScrollMouseTarget>(); | 944 CreateControllerAndTarget<MockScrollMouseTarget>(); |
943 | 945 |
944 SyntheticSmoothMoveGestureParams params; | 946 SyntheticSmoothMoveGestureParams params; |
945 params.input_type = SyntheticSmoothMoveGestureParams::MOUSE_WHEEL_INPUT; | 947 params.input_type = SyntheticSmoothMoveGestureParams::MOUSE_WHEEL_INPUT; |
946 params.start_point.SetPoint(90, 12); | 948 params.start_point.SetPoint(90, 12); |
947 params.distances.push_back(gfx::Vector2d(-194, 303)); | 949 params.distances.push_back(gfx::Vector2d(-194, 303)); |
948 | 950 |
949 scoped_ptr<SyntheticSmoothMoveGesture> gesture( | 951 scoped_ptr<SyntheticSmoothMoveGesture> gesture( |
950 new SyntheticSmoothMoveGesture(params)); | 952 new SyntheticSmoothMoveGesture(params)); |
951 QueueSyntheticGesture(gesture.Pass()); | 953 QueueSyntheticGesture(std::move(gesture)); |
952 FlushInputUntilComplete(); | 954 FlushInputUntilComplete(); |
953 | 955 |
954 MockMoveGestureTarget* scroll_target = | 956 MockMoveGestureTarget* scroll_target = |
955 static_cast<MockMoveGestureTarget*>(target_); | 957 static_cast<MockMoveGestureTarget*>(target_); |
956 EXPECT_EQ(1, num_success_); | 958 EXPECT_EQ(1, num_success_); |
957 EXPECT_EQ(0, num_failure_); | 959 EXPECT_EQ(0, num_failure_); |
958 EXPECT_EQ(params.distances[0], scroll_target->start_to_end_distance()); | 960 EXPECT_EQ(params.distances[0], scroll_target->start_to_end_distance()); |
959 } | 961 } |
960 | 962 |
961 TEST_F(SyntheticGestureControllerTest, MultiScrollGestureMouse) { | 963 TEST_F(SyntheticGestureControllerTest, MultiScrollGestureMouse) { |
962 CreateControllerAndTarget<MockScrollMouseTarget>(); | 964 CreateControllerAndTarget<MockScrollMouseTarget>(); |
963 | 965 |
964 SyntheticSmoothMoveGestureParams params; | 966 SyntheticSmoothMoveGestureParams params; |
965 params.input_type = SyntheticSmoothMoveGestureParams::MOUSE_WHEEL_INPUT; | 967 params.input_type = SyntheticSmoothMoveGestureParams::MOUSE_WHEEL_INPUT; |
966 params.start_point.SetPoint(90, 12); | 968 params.start_point.SetPoint(90, 12); |
967 params.distances.push_back(gfx::Vector2d(-129, 212)); | 969 params.distances.push_back(gfx::Vector2d(-129, 212)); |
968 params.distances.push_back(gfx::Vector2d(8, -9)); | 970 params.distances.push_back(gfx::Vector2d(8, -9)); |
969 | 971 |
970 scoped_ptr<SyntheticSmoothMoveGesture> gesture( | 972 scoped_ptr<SyntheticSmoothMoveGesture> gesture( |
971 new SyntheticSmoothMoveGesture(params)); | 973 new SyntheticSmoothMoveGesture(params)); |
972 QueueSyntheticGesture(gesture.Pass()); | 974 QueueSyntheticGesture(std::move(gesture)); |
973 FlushInputUntilComplete(); | 975 FlushInputUntilComplete(); |
974 | 976 |
975 MockMoveGestureTarget* scroll_target = | 977 MockMoveGestureTarget* scroll_target = |
976 static_cast<MockMoveGestureTarget*>(target_); | 978 static_cast<MockMoveGestureTarget*>(target_); |
977 EXPECT_EQ(1, num_success_); | 979 EXPECT_EQ(1, num_success_); |
978 EXPECT_EQ(0, num_failure_); | 980 EXPECT_EQ(0, num_failure_); |
979 EXPECT_EQ(params.distances[0] + params.distances[1], | 981 EXPECT_EQ(params.distances[0] + params.distances[1], |
980 scroll_target->start_to_end_distance()); | 982 scroll_target->start_to_end_distance()); |
981 } | 983 } |
982 | 984 |
983 TEST_F(SyntheticGestureControllerTest, MultiScrollGestureMouseHorizontal) { | 985 TEST_F(SyntheticGestureControllerTest, MultiScrollGestureMouseHorizontal) { |
984 CreateControllerAndTarget<MockScrollMouseTarget>(); | 986 CreateControllerAndTarget<MockScrollMouseTarget>(); |
985 | 987 |
986 SyntheticSmoothMoveGestureParams params; | 988 SyntheticSmoothMoveGestureParams params; |
987 params.input_type = SyntheticSmoothMoveGestureParams::MOUSE_WHEEL_INPUT; | 989 params.input_type = SyntheticSmoothMoveGestureParams::MOUSE_WHEEL_INPUT; |
988 params.start_point.SetPoint(90, 12); | 990 params.start_point.SetPoint(90, 12); |
989 params.distances.push_back(gfx::Vector2d(-129, 0)); | 991 params.distances.push_back(gfx::Vector2d(-129, 0)); |
990 params.distances.push_back(gfx::Vector2d(79, 0)); | 992 params.distances.push_back(gfx::Vector2d(79, 0)); |
991 | 993 |
992 scoped_ptr<SyntheticSmoothMoveGesture> gesture( | 994 scoped_ptr<SyntheticSmoothMoveGesture> gesture( |
993 new SyntheticSmoothMoveGesture(params)); | 995 new SyntheticSmoothMoveGesture(params)); |
994 QueueSyntheticGesture(gesture.Pass()); | 996 QueueSyntheticGesture(std::move(gesture)); |
995 FlushInputUntilComplete(); | 997 FlushInputUntilComplete(); |
996 | 998 |
997 MockMoveGestureTarget* scroll_target = | 999 MockMoveGestureTarget* scroll_target = |
998 static_cast<MockMoveGestureTarget*>(target_); | 1000 static_cast<MockMoveGestureTarget*>(target_); |
999 EXPECT_EQ(1, num_success_); | 1001 EXPECT_EQ(1, num_success_); |
1000 EXPECT_EQ(0, num_failure_); | 1002 EXPECT_EQ(0, num_failure_); |
1001 // This check only works for horizontal or vertical scrolls because of | 1003 // This check only works for horizontal or vertical scrolls because of |
1002 // floating point precision issues with diagonal scrolls. | 1004 // floating point precision issues with diagonal scrolls. |
1003 EXPECT_FLOAT_EQ(params.distances[0].Length() + params.distances[1].Length(), | 1005 EXPECT_FLOAT_EQ(params.distances[0].Length() + params.distances[1].Length(), |
1004 scroll_target->total_abs_move_distance_length()); | 1006 scroll_target->total_abs_move_distance_length()); |
(...skipping 25 matching lines...) Expand all Loading... |
1030 CreateControllerAndTarget<MockMoveTouchTarget>(); | 1032 CreateControllerAndTarget<MockMoveTouchTarget>(); |
1031 | 1033 |
1032 SyntheticSmoothMoveGestureParams params; | 1034 SyntheticSmoothMoveGestureParams params; |
1033 params.input_type = SyntheticSmoothMoveGestureParams::TOUCH_INPUT; | 1035 params.input_type = SyntheticSmoothMoveGestureParams::TOUCH_INPUT; |
1034 params.start_point.SetPoint(8, -13); | 1036 params.start_point.SetPoint(8, -13); |
1035 params.distances.push_back(gfx::Vector2d(234, 133)); | 1037 params.distances.push_back(gfx::Vector2d(234, 133)); |
1036 params.distances.push_back(gfx::Vector2d(-9, 78)); | 1038 params.distances.push_back(gfx::Vector2d(-9, 78)); |
1037 | 1039 |
1038 scoped_ptr<SyntheticSmoothMoveGesture> gesture( | 1040 scoped_ptr<SyntheticSmoothMoveGesture> gesture( |
1039 new SyntheticSmoothMoveGesture(params)); | 1041 new SyntheticSmoothMoveGesture(params)); |
1040 QueueSyntheticGesture(gesture.Pass()); | 1042 QueueSyntheticGesture(std::move(gesture)); |
1041 FlushInputUntilComplete(); | 1043 FlushInputUntilComplete(); |
1042 | 1044 |
1043 MockMoveGestureTarget* scroll_target = | 1045 MockMoveGestureTarget* scroll_target = |
1044 static_cast<MockMoveGestureTarget*>(target_); | 1046 static_cast<MockMoveGestureTarget*>(target_); |
1045 EXPECT_EQ(1, num_success_); | 1047 EXPECT_EQ(1, num_success_); |
1046 EXPECT_EQ(0, num_failure_); | 1048 EXPECT_EQ(0, num_failure_); |
1047 CheckMultiScrollDistanceIsWithinRange( | 1049 CheckMultiScrollDistanceIsWithinRange( |
1048 scroll_target->start_to_end_distance(), | 1050 scroll_target->start_to_end_distance(), |
1049 params.distances[0] + params.distances[1], | 1051 params.distances[0] + params.distances[1], |
1050 target_); | 1052 target_); |
1051 } | 1053 } |
1052 | 1054 |
1053 TEST_P(SyntheticGestureControllerTestWithParam, | 1055 TEST_P(SyntheticGestureControllerTestWithParam, |
1054 MultiScrollGestureTouchVertical) { | 1056 MultiScrollGestureTouchVertical) { |
1055 CreateControllerAndTarget<MockMoveTouchTarget>(); | 1057 CreateControllerAndTarget<MockMoveTouchTarget>(); |
1056 | 1058 |
1057 SyntheticSmoothMoveGestureParams params; | 1059 SyntheticSmoothMoveGestureParams params; |
1058 params.input_type = SyntheticSmoothMoveGestureParams::TOUCH_INPUT; | 1060 params.input_type = SyntheticSmoothMoveGestureParams::TOUCH_INPUT; |
1059 if (GetParam() == TOUCH_DRAG) { | 1061 if (GetParam() == TOUCH_DRAG) { |
1060 params.add_slop = false; | 1062 params.add_slop = false; |
1061 } | 1063 } |
1062 params.start_point.SetPoint(234, -13); | 1064 params.start_point.SetPoint(234, -13); |
1063 params.distances.push_back(gfx::Vector2d(0, 133)); | 1065 params.distances.push_back(gfx::Vector2d(0, 133)); |
1064 params.distances.push_back(gfx::Vector2d(0, 78)); | 1066 params.distances.push_back(gfx::Vector2d(0, 78)); |
1065 | 1067 |
1066 scoped_ptr<SyntheticSmoothMoveGesture> gesture( | 1068 scoped_ptr<SyntheticSmoothMoveGesture> gesture( |
1067 new SyntheticSmoothMoveGesture(params)); | 1069 new SyntheticSmoothMoveGesture(params)); |
1068 QueueSyntheticGesture(gesture.Pass()); | 1070 QueueSyntheticGesture(std::move(gesture)); |
1069 FlushInputUntilComplete(); | 1071 FlushInputUntilComplete(); |
1070 | 1072 |
1071 MockMoveGestureTarget* scroll_target = | 1073 MockMoveGestureTarget* scroll_target = |
1072 static_cast<MockMoveGestureTarget*>(target_); | 1074 static_cast<MockMoveGestureTarget*>(target_); |
1073 EXPECT_EQ(1, num_success_); | 1075 EXPECT_EQ(1, num_success_); |
1074 EXPECT_EQ(0, num_failure_); | 1076 EXPECT_EQ(0, num_failure_); |
1075 if (GetParam() == TOUCH_SCROLL) { | 1077 if (GetParam() == TOUCH_SCROLL) { |
1076 EXPECT_FLOAT_EQ(params.distances[0].Length() + | 1078 EXPECT_FLOAT_EQ(params.distances[0].Length() + |
1077 params.distances[1].Length() + | 1079 params.distances[1].Length() + |
1078 target_->GetTouchSlopInDips(), | 1080 target_->GetTouchSlopInDips(), |
(...skipping 16 matching lines...) Expand all Loading... |
1095 TEST_F(SyntheticGestureControllerTest, SingleDragGestureMouseDiagonal) { | 1097 TEST_F(SyntheticGestureControllerTest, SingleDragGestureMouseDiagonal) { |
1096 CreateControllerAndTarget<MockDragMouseTarget>(); | 1098 CreateControllerAndTarget<MockDragMouseTarget>(); |
1097 | 1099 |
1098 SyntheticSmoothMoveGestureParams params; | 1100 SyntheticSmoothMoveGestureParams params; |
1099 params.input_type = SyntheticSmoothMoveGestureParams::MOUSE_DRAG_INPUT; | 1101 params.input_type = SyntheticSmoothMoveGestureParams::MOUSE_DRAG_INPUT; |
1100 params.start_point.SetPoint(0, 7); | 1102 params.start_point.SetPoint(0, 7); |
1101 params.distances.push_back(gfx::Vector2d(413, -83)); | 1103 params.distances.push_back(gfx::Vector2d(413, -83)); |
1102 | 1104 |
1103 scoped_ptr<SyntheticSmoothMoveGesture> gesture( | 1105 scoped_ptr<SyntheticSmoothMoveGesture> gesture( |
1104 new SyntheticSmoothMoveGesture(params)); | 1106 new SyntheticSmoothMoveGesture(params)); |
1105 QueueSyntheticGesture(gesture.Pass()); | 1107 QueueSyntheticGesture(std::move(gesture)); |
1106 FlushInputUntilComplete(); | 1108 FlushInputUntilComplete(); |
1107 | 1109 |
1108 MockMoveGestureTarget* drag_target = | 1110 MockMoveGestureTarget* drag_target = |
1109 static_cast<MockMoveGestureTarget*>(target_); | 1111 static_cast<MockMoveGestureTarget*>(target_); |
1110 EXPECT_EQ(1, num_success_); | 1112 EXPECT_EQ(1, num_success_); |
1111 EXPECT_EQ(0, num_failure_); | 1113 EXPECT_EQ(0, num_failure_); |
1112 EXPECT_EQ(drag_target->start_to_end_distance(), params.distances[0]); | 1114 EXPECT_EQ(drag_target->start_to_end_distance(), params.distances[0]); |
1113 } | 1115 } |
1114 | 1116 |
1115 TEST_F(SyntheticGestureControllerTest, SingleDragGestureMouseZeroDistance) { | 1117 TEST_F(SyntheticGestureControllerTest, SingleDragGestureMouseZeroDistance) { |
1116 CreateControllerAndTarget<MockDragMouseTarget>(); | 1118 CreateControllerAndTarget<MockDragMouseTarget>(); |
1117 | 1119 |
1118 SyntheticSmoothMoveGestureParams params; | 1120 SyntheticSmoothMoveGestureParams params; |
1119 params.input_type = SyntheticSmoothMoveGestureParams::MOUSE_DRAG_INPUT; | 1121 params.input_type = SyntheticSmoothMoveGestureParams::MOUSE_DRAG_INPUT; |
1120 params.start_point.SetPoint(-32, 43); | 1122 params.start_point.SetPoint(-32, 43); |
1121 params.distances.push_back(gfx::Vector2d(0, 0)); | 1123 params.distances.push_back(gfx::Vector2d(0, 0)); |
1122 | 1124 |
1123 scoped_ptr<SyntheticSmoothMoveGesture> gesture( | 1125 scoped_ptr<SyntheticSmoothMoveGesture> gesture( |
1124 new SyntheticSmoothMoveGesture(params)); | 1126 new SyntheticSmoothMoveGesture(params)); |
1125 QueueSyntheticGesture(gesture.Pass()); | 1127 QueueSyntheticGesture(std::move(gesture)); |
1126 FlushInputUntilComplete(); | 1128 FlushInputUntilComplete(); |
1127 | 1129 |
1128 MockMoveGestureTarget* drag_target = | 1130 MockMoveGestureTarget* drag_target = |
1129 static_cast<MockMoveGestureTarget*>(target_); | 1131 static_cast<MockMoveGestureTarget*>(target_); |
1130 EXPECT_EQ(1, num_success_); | 1132 EXPECT_EQ(1, num_success_); |
1131 EXPECT_EQ(0, num_failure_); | 1133 EXPECT_EQ(0, num_failure_); |
1132 EXPECT_EQ(gfx::Vector2dF(0, 0), drag_target->start_to_end_distance()); | 1134 EXPECT_EQ(gfx::Vector2dF(0, 0), drag_target->start_to_end_distance()); |
1133 } | 1135 } |
1134 | 1136 |
1135 TEST_F(SyntheticGestureControllerTest, MultiDragGestureMouse) { | 1137 TEST_F(SyntheticGestureControllerTest, MultiDragGestureMouse) { |
1136 CreateControllerAndTarget<MockDragMouseTarget>(); | 1138 CreateControllerAndTarget<MockDragMouseTarget>(); |
1137 | 1139 |
1138 SyntheticSmoothMoveGestureParams params; | 1140 SyntheticSmoothMoveGestureParams params; |
1139 params.input_type = SyntheticSmoothMoveGestureParams::MOUSE_DRAG_INPUT; | 1141 params.input_type = SyntheticSmoothMoveGestureParams::MOUSE_DRAG_INPUT; |
1140 params.start_point.SetPoint(8, -13); | 1142 params.start_point.SetPoint(8, -13); |
1141 params.distances.push_back(gfx::Vector2d(234, 133)); | 1143 params.distances.push_back(gfx::Vector2d(234, 133)); |
1142 params.distances.push_back(gfx::Vector2d(-9, 78)); | 1144 params.distances.push_back(gfx::Vector2d(-9, 78)); |
1143 | 1145 |
1144 scoped_ptr<SyntheticSmoothMoveGesture> gesture( | 1146 scoped_ptr<SyntheticSmoothMoveGesture> gesture( |
1145 new SyntheticSmoothMoveGesture(params)); | 1147 new SyntheticSmoothMoveGesture(params)); |
1146 QueueSyntheticGesture(gesture.Pass()); | 1148 QueueSyntheticGesture(std::move(gesture)); |
1147 FlushInputUntilComplete(); | 1149 FlushInputUntilComplete(); |
1148 | 1150 |
1149 MockMoveGestureTarget* drag_target = | 1151 MockMoveGestureTarget* drag_target = |
1150 static_cast<MockMoveGestureTarget*>(target_); | 1152 static_cast<MockMoveGestureTarget*>(target_); |
1151 EXPECT_EQ(1, num_success_); | 1153 EXPECT_EQ(1, num_success_); |
1152 EXPECT_EQ(0, num_failure_); | 1154 EXPECT_EQ(0, num_failure_); |
1153 EXPECT_EQ(drag_target->start_to_end_distance(), | 1155 EXPECT_EQ(drag_target->start_to_end_distance(), |
1154 params.distances[0] + params.distances[1]); | 1156 params.distances[0] + params.distances[1]); |
1155 } | 1157 } |
1156 | 1158 |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1218 TouchscreenTouchpadPinchGestureTouchZoomIn) { | 1220 TouchscreenTouchpadPinchGestureTouchZoomIn) { |
1219 CreateControllerAndTarget<MockSyntheticTouchscreenPinchTouchTarget>(); | 1221 CreateControllerAndTarget<MockSyntheticTouchscreenPinchTouchTarget>(); |
1220 | 1222 |
1221 SyntheticPinchGestureParams params; | 1223 SyntheticPinchGestureParams params; |
1222 params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT; | 1224 params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT; |
1223 params.scale_factor = 2.3f; | 1225 params.scale_factor = 2.3f; |
1224 params.anchor.SetPoint(54, 89); | 1226 params.anchor.SetPoint(54, 89); |
1225 | 1227 |
1226 scoped_ptr<SyntheticTouchscreenPinchGesture> gesture( | 1228 scoped_ptr<SyntheticTouchscreenPinchGesture> gesture( |
1227 new SyntheticTouchscreenPinchGesture(params)); | 1229 new SyntheticTouchscreenPinchGesture(params)); |
1228 QueueSyntheticGesture(gesture.Pass()); | 1230 QueueSyntheticGesture(std::move(gesture)); |
1229 FlushInputUntilComplete(); | 1231 FlushInputUntilComplete(); |
1230 | 1232 |
1231 MockSyntheticTouchscreenPinchTouchTarget* pinch_target = | 1233 MockSyntheticTouchscreenPinchTouchTarget* pinch_target = |
1232 static_cast<MockSyntheticTouchscreenPinchTouchTarget*>(target_); | 1234 static_cast<MockSyntheticTouchscreenPinchTouchTarget*>(target_); |
1233 EXPECT_EQ(1, num_success_); | 1235 EXPECT_EQ(1, num_success_); |
1234 EXPECT_EQ(0, num_failure_); | 1236 EXPECT_EQ(0, num_failure_); |
1235 EXPECT_EQ(pinch_target->zoom_direction(), | 1237 EXPECT_EQ(pinch_target->zoom_direction(), |
1236 MockSyntheticTouchscreenPinchTouchTarget::ZOOM_IN); | 1238 MockSyntheticTouchscreenPinchTouchTarget::ZOOM_IN); |
1237 EXPECT_FLOAT_EQ(params.scale_factor, pinch_target->ComputeScaleFactor()); | 1239 EXPECT_FLOAT_EQ(params.scale_factor, pinch_target->ComputeScaleFactor()); |
1238 } | 1240 } |
1239 | 1241 |
1240 TEST_F(SyntheticGestureControllerTest, | 1242 TEST_F(SyntheticGestureControllerTest, |
1241 TouchscreenTouchpadPinchGestureTouchZoomOut) { | 1243 TouchscreenTouchpadPinchGestureTouchZoomOut) { |
1242 CreateControllerAndTarget<MockSyntheticTouchscreenPinchTouchTarget>(); | 1244 CreateControllerAndTarget<MockSyntheticTouchscreenPinchTouchTarget>(); |
1243 | 1245 |
1244 SyntheticPinchGestureParams params; | 1246 SyntheticPinchGestureParams params; |
1245 params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT; | 1247 params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT; |
1246 params.scale_factor = 0.4f; | 1248 params.scale_factor = 0.4f; |
1247 params.anchor.SetPoint(-12, 93); | 1249 params.anchor.SetPoint(-12, 93); |
1248 | 1250 |
1249 scoped_ptr<SyntheticTouchscreenPinchGesture> gesture( | 1251 scoped_ptr<SyntheticTouchscreenPinchGesture> gesture( |
1250 new SyntheticTouchscreenPinchGesture(params)); | 1252 new SyntheticTouchscreenPinchGesture(params)); |
1251 QueueSyntheticGesture(gesture.Pass()); | 1253 QueueSyntheticGesture(std::move(gesture)); |
1252 FlushInputUntilComplete(); | 1254 FlushInputUntilComplete(); |
1253 | 1255 |
1254 MockSyntheticTouchscreenPinchTouchTarget* pinch_target = | 1256 MockSyntheticTouchscreenPinchTouchTarget* pinch_target = |
1255 static_cast<MockSyntheticTouchscreenPinchTouchTarget*>(target_); | 1257 static_cast<MockSyntheticTouchscreenPinchTouchTarget*>(target_); |
1256 EXPECT_EQ(1, num_success_); | 1258 EXPECT_EQ(1, num_success_); |
1257 EXPECT_EQ(0, num_failure_); | 1259 EXPECT_EQ(0, num_failure_); |
1258 EXPECT_EQ(pinch_target->zoom_direction(), | 1260 EXPECT_EQ(pinch_target->zoom_direction(), |
1259 MockSyntheticTouchscreenPinchTouchTarget::ZOOM_OUT); | 1261 MockSyntheticTouchscreenPinchTouchTarget::ZOOM_OUT); |
1260 EXPECT_FLOAT_EQ(params.scale_factor, pinch_target->ComputeScaleFactor()); | 1262 EXPECT_FLOAT_EQ(params.scale_factor, pinch_target->ComputeScaleFactor()); |
1261 } | 1263 } |
1262 | 1264 |
1263 TEST_F(SyntheticGestureControllerTest, | 1265 TEST_F(SyntheticGestureControllerTest, |
1264 TouchscreenTouchpadPinchGestureTouchNoScaling) { | 1266 TouchscreenTouchpadPinchGestureTouchNoScaling) { |
1265 CreateControllerAndTarget<MockSyntheticTouchscreenPinchTouchTarget>(); | 1267 CreateControllerAndTarget<MockSyntheticTouchscreenPinchTouchTarget>(); |
1266 | 1268 |
1267 SyntheticPinchGestureParams params; | 1269 SyntheticPinchGestureParams params; |
1268 params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT; | 1270 params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT; |
1269 params.scale_factor = 1.0f; | 1271 params.scale_factor = 1.0f; |
1270 | 1272 |
1271 scoped_ptr<SyntheticTouchscreenPinchGesture> gesture( | 1273 scoped_ptr<SyntheticTouchscreenPinchGesture> gesture( |
1272 new SyntheticTouchscreenPinchGesture(params)); | 1274 new SyntheticTouchscreenPinchGesture(params)); |
1273 QueueSyntheticGesture(gesture.Pass()); | 1275 QueueSyntheticGesture(std::move(gesture)); |
1274 FlushInputUntilComplete(); | 1276 FlushInputUntilComplete(); |
1275 | 1277 |
1276 MockSyntheticTouchscreenPinchTouchTarget* pinch_target = | 1278 MockSyntheticTouchscreenPinchTouchTarget* pinch_target = |
1277 static_cast<MockSyntheticTouchscreenPinchTouchTarget*>(target_); | 1279 static_cast<MockSyntheticTouchscreenPinchTouchTarget*>(target_); |
1278 EXPECT_EQ(1, num_success_); | 1280 EXPECT_EQ(1, num_success_); |
1279 EXPECT_EQ(0, num_failure_); | 1281 EXPECT_EQ(0, num_failure_); |
1280 EXPECT_EQ(pinch_target->zoom_direction(), | 1282 EXPECT_EQ(pinch_target->zoom_direction(), |
1281 MockSyntheticTouchscreenPinchTouchTarget::ZOOM_DIRECTION_UNKNOWN); | 1283 MockSyntheticTouchscreenPinchTouchTarget::ZOOM_DIRECTION_UNKNOWN); |
1282 EXPECT_EQ(params.scale_factor, pinch_target->ComputeScaleFactor()); | 1284 EXPECT_EQ(params.scale_factor, pinch_target->ComputeScaleFactor()); |
1283 } | 1285 } |
1284 | 1286 |
1285 TEST_F(SyntheticGestureControllerTest, TouchpadPinchGestureTouchZoomIn) { | 1287 TEST_F(SyntheticGestureControllerTest, TouchpadPinchGestureTouchZoomIn) { |
1286 CreateControllerAndTarget<MockSyntheticTouchpadPinchTouchTarget>(); | 1288 CreateControllerAndTarget<MockSyntheticTouchpadPinchTouchTarget>(); |
1287 | 1289 |
1288 SyntheticPinchGestureParams params; | 1290 SyntheticPinchGestureParams params; |
1289 params.gesture_source_type = SyntheticGestureParams::MOUSE_INPUT; | 1291 params.gesture_source_type = SyntheticGestureParams::MOUSE_INPUT; |
1290 params.scale_factor = 2.3f; | 1292 params.scale_factor = 2.3f; |
1291 params.anchor.SetPoint(54, 89); | 1293 params.anchor.SetPoint(54, 89); |
1292 | 1294 |
1293 scoped_ptr<SyntheticTouchpadPinchGesture> gesture( | 1295 scoped_ptr<SyntheticTouchpadPinchGesture> gesture( |
1294 new SyntheticTouchpadPinchGesture(params)); | 1296 new SyntheticTouchpadPinchGesture(params)); |
1295 QueueSyntheticGesture(gesture.Pass()); | 1297 QueueSyntheticGesture(std::move(gesture)); |
1296 FlushInputUntilComplete(); | 1298 FlushInputUntilComplete(); |
1297 | 1299 |
1298 MockSyntheticTouchpadPinchTouchTarget* pinch_target = | 1300 MockSyntheticTouchpadPinchTouchTarget* pinch_target = |
1299 static_cast<MockSyntheticTouchpadPinchTouchTarget*>(target_); | 1301 static_cast<MockSyntheticTouchpadPinchTouchTarget*>(target_); |
1300 EXPECT_EQ(1, num_success_); | 1302 EXPECT_EQ(1, num_success_); |
1301 EXPECT_EQ(0, num_failure_); | 1303 EXPECT_EQ(0, num_failure_); |
1302 EXPECT_EQ(pinch_target->zoom_direction(), | 1304 EXPECT_EQ(pinch_target->zoom_direction(), |
1303 MockSyntheticTouchpadPinchTouchTarget::ZOOM_IN); | 1305 MockSyntheticTouchpadPinchTouchTarget::ZOOM_IN); |
1304 EXPECT_FLOAT_EQ(params.scale_factor, pinch_target->scale_factor()); | 1306 EXPECT_FLOAT_EQ(params.scale_factor, pinch_target->scale_factor()); |
1305 } | 1307 } |
1306 | 1308 |
1307 TEST_F(SyntheticGestureControllerTest, TouchpadPinchGestureTouchZoomOut) { | 1309 TEST_F(SyntheticGestureControllerTest, TouchpadPinchGestureTouchZoomOut) { |
1308 CreateControllerAndTarget<MockSyntheticTouchpadPinchTouchTarget>(); | 1310 CreateControllerAndTarget<MockSyntheticTouchpadPinchTouchTarget>(); |
1309 | 1311 |
1310 SyntheticPinchGestureParams params; | 1312 SyntheticPinchGestureParams params; |
1311 params.gesture_source_type = SyntheticGestureParams::MOUSE_INPUT; | 1313 params.gesture_source_type = SyntheticGestureParams::MOUSE_INPUT; |
1312 params.scale_factor = 0.4f; | 1314 params.scale_factor = 0.4f; |
1313 params.anchor.SetPoint(-12, 93); | 1315 params.anchor.SetPoint(-12, 93); |
1314 | 1316 |
1315 scoped_ptr<SyntheticTouchpadPinchGesture> gesture( | 1317 scoped_ptr<SyntheticTouchpadPinchGesture> gesture( |
1316 new SyntheticTouchpadPinchGesture(params)); | 1318 new SyntheticTouchpadPinchGesture(params)); |
1317 QueueSyntheticGesture(gesture.Pass()); | 1319 QueueSyntheticGesture(std::move(gesture)); |
1318 FlushInputUntilComplete(); | 1320 FlushInputUntilComplete(); |
1319 | 1321 |
1320 MockSyntheticTouchpadPinchTouchTarget* pinch_target = | 1322 MockSyntheticTouchpadPinchTouchTarget* pinch_target = |
1321 static_cast<MockSyntheticTouchpadPinchTouchTarget*>(target_); | 1323 static_cast<MockSyntheticTouchpadPinchTouchTarget*>(target_); |
1322 EXPECT_EQ(1, num_success_); | 1324 EXPECT_EQ(1, num_success_); |
1323 EXPECT_EQ(0, num_failure_); | 1325 EXPECT_EQ(0, num_failure_); |
1324 EXPECT_EQ(pinch_target->zoom_direction(), | 1326 EXPECT_EQ(pinch_target->zoom_direction(), |
1325 MockSyntheticTouchpadPinchTouchTarget::ZOOM_OUT); | 1327 MockSyntheticTouchpadPinchTouchTarget::ZOOM_OUT); |
1326 EXPECT_FLOAT_EQ(params.scale_factor, pinch_target->scale_factor()); | 1328 EXPECT_FLOAT_EQ(params.scale_factor, pinch_target->scale_factor()); |
1327 } | 1329 } |
1328 | 1330 |
1329 TEST_F(SyntheticGestureControllerTest, TouchpadPinchGestureTouchNoScaling) { | 1331 TEST_F(SyntheticGestureControllerTest, TouchpadPinchGestureTouchNoScaling) { |
1330 CreateControllerAndTarget<MockSyntheticTouchpadPinchTouchTarget>(); | 1332 CreateControllerAndTarget<MockSyntheticTouchpadPinchTouchTarget>(); |
1331 | 1333 |
1332 SyntheticPinchGestureParams params; | 1334 SyntheticPinchGestureParams params; |
1333 params.gesture_source_type = SyntheticGestureParams::MOUSE_INPUT; | 1335 params.gesture_source_type = SyntheticGestureParams::MOUSE_INPUT; |
1334 params.scale_factor = 1.0f; | 1336 params.scale_factor = 1.0f; |
1335 | 1337 |
1336 scoped_ptr<SyntheticTouchpadPinchGesture> gesture( | 1338 scoped_ptr<SyntheticTouchpadPinchGesture> gesture( |
1337 new SyntheticTouchpadPinchGesture(params)); | 1339 new SyntheticTouchpadPinchGesture(params)); |
1338 QueueSyntheticGesture(gesture.Pass()); | 1340 QueueSyntheticGesture(std::move(gesture)); |
1339 FlushInputUntilComplete(); | 1341 FlushInputUntilComplete(); |
1340 | 1342 |
1341 MockSyntheticTouchpadPinchTouchTarget* pinch_target = | 1343 MockSyntheticTouchpadPinchTouchTarget* pinch_target = |
1342 static_cast<MockSyntheticTouchpadPinchTouchTarget*>(target_); | 1344 static_cast<MockSyntheticTouchpadPinchTouchTarget*>(target_); |
1343 EXPECT_EQ(1, num_success_); | 1345 EXPECT_EQ(1, num_success_); |
1344 EXPECT_EQ(0, num_failure_); | 1346 EXPECT_EQ(0, num_failure_); |
1345 EXPECT_EQ(pinch_target->zoom_direction(), | 1347 EXPECT_EQ(pinch_target->zoom_direction(), |
1346 MockSyntheticTouchpadPinchTouchTarget::ZOOM_DIRECTION_UNKNOWN); | 1348 MockSyntheticTouchpadPinchTouchTarget::ZOOM_DIRECTION_UNKNOWN); |
1347 EXPECT_EQ(params.scale_factor, pinch_target->scale_factor()); | 1349 EXPECT_EQ(params.scale_factor, pinch_target->scale_factor()); |
1348 } | 1350 } |
1349 | 1351 |
1350 // Ensure that if SyntheticPinchGesture is instantiated with TOUCH_INPUT it | 1352 // Ensure that if SyntheticPinchGesture is instantiated with TOUCH_INPUT it |
1351 // correctly creates a touchscreen gesture. | 1353 // correctly creates a touchscreen gesture. |
1352 TEST_F(SyntheticGestureControllerTest, PinchGestureExplicitTouch) { | 1354 TEST_F(SyntheticGestureControllerTest, PinchGestureExplicitTouch) { |
1353 CreateControllerAndTarget<MockSyntheticTouchscreenPinchTouchTarget>(); | 1355 CreateControllerAndTarget<MockSyntheticTouchscreenPinchTouchTarget>(); |
1354 | 1356 |
1355 SyntheticPinchGestureParams params; | 1357 SyntheticPinchGestureParams params; |
1356 params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT; | 1358 params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT; |
1357 params.scale_factor = 2.3f; | 1359 params.scale_factor = 2.3f; |
1358 params.anchor.SetPoint(54, 89); | 1360 params.anchor.SetPoint(54, 89); |
1359 | 1361 |
1360 scoped_ptr<SyntheticPinchGesture> gesture(new SyntheticPinchGesture(params)); | 1362 scoped_ptr<SyntheticPinchGesture> gesture(new SyntheticPinchGesture(params)); |
1361 QueueSyntheticGesture(gesture.Pass()); | 1363 QueueSyntheticGesture(std::move(gesture)); |
1362 FlushInputUntilComplete(); | 1364 FlushInputUntilComplete(); |
1363 | 1365 |
1364 // Gesture target will fail expectations if the wrong underlying | 1366 // Gesture target will fail expectations if the wrong underlying |
1365 // SyntheticPinch*Gesture was instantiated. | 1367 // SyntheticPinch*Gesture was instantiated. |
1366 } | 1368 } |
1367 | 1369 |
1368 // Ensure that if SyntheticPinchGesture is instantiated with MOUSE_INPUT it | 1370 // Ensure that if SyntheticPinchGesture is instantiated with MOUSE_INPUT it |
1369 // correctly creates a touchpad gesture. | 1371 // correctly creates a touchpad gesture. |
1370 TEST_F(SyntheticGestureControllerTest, PinchGestureExplicitMouse) { | 1372 TEST_F(SyntheticGestureControllerTest, PinchGestureExplicitMouse) { |
1371 CreateControllerAndTarget<MockSyntheticTouchpadPinchTouchTarget>(); | 1373 CreateControllerAndTarget<MockSyntheticTouchpadPinchTouchTarget>(); |
1372 | 1374 |
1373 SyntheticPinchGestureParams params; | 1375 SyntheticPinchGestureParams params; |
1374 params.gesture_source_type = SyntheticGestureParams::MOUSE_INPUT; | 1376 params.gesture_source_type = SyntheticGestureParams::MOUSE_INPUT; |
1375 params.scale_factor = 2.3f; | 1377 params.scale_factor = 2.3f; |
1376 params.anchor.SetPoint(54, 89); | 1378 params.anchor.SetPoint(54, 89); |
1377 | 1379 |
1378 scoped_ptr<SyntheticPinchGesture> gesture(new SyntheticPinchGesture(params)); | 1380 scoped_ptr<SyntheticPinchGesture> gesture(new SyntheticPinchGesture(params)); |
1379 QueueSyntheticGesture(gesture.Pass()); | 1381 QueueSyntheticGesture(std::move(gesture)); |
1380 FlushInputUntilComplete(); | 1382 FlushInputUntilComplete(); |
1381 | 1383 |
1382 // Gesture target will fail expectations if the wrong underlying | 1384 // Gesture target will fail expectations if the wrong underlying |
1383 // SyntheticPinch*Gesture was instantiated. | 1385 // SyntheticPinch*Gesture was instantiated. |
1384 } | 1386 } |
1385 | 1387 |
1386 // Ensure that if SyntheticPinchGesture is instantiated with DEFAULT_INPUT it | 1388 // Ensure that if SyntheticPinchGesture is instantiated with DEFAULT_INPUT it |
1387 // correctly creates a touchscreen gesture for a touchscreen controller. | 1389 // correctly creates a touchscreen gesture for a touchscreen controller. |
1388 TEST_F(SyntheticGestureControllerTest, PinchGestureDefaultTouch) { | 1390 TEST_F(SyntheticGestureControllerTest, PinchGestureDefaultTouch) { |
1389 CreateControllerAndTarget<MockSyntheticTouchscreenPinchTouchTarget>(); | 1391 CreateControllerAndTarget<MockSyntheticTouchscreenPinchTouchTarget>(); |
1390 | 1392 |
1391 SyntheticPinchGestureParams params; | 1393 SyntheticPinchGestureParams params; |
1392 params.gesture_source_type = SyntheticGestureParams::DEFAULT_INPUT; | 1394 params.gesture_source_type = SyntheticGestureParams::DEFAULT_INPUT; |
1393 params.scale_factor = 2.3f; | 1395 params.scale_factor = 2.3f; |
1394 params.anchor.SetPoint(54, 89); | 1396 params.anchor.SetPoint(54, 89); |
1395 | 1397 |
1396 scoped_ptr<SyntheticPinchGesture> gesture(new SyntheticPinchGesture(params)); | 1398 scoped_ptr<SyntheticPinchGesture> gesture(new SyntheticPinchGesture(params)); |
1397 QueueSyntheticGesture(gesture.Pass()); | 1399 QueueSyntheticGesture(std::move(gesture)); |
1398 FlushInputUntilComplete(); | 1400 FlushInputUntilComplete(); |
1399 | 1401 |
1400 // Gesture target will fail expectations if the wrong underlying | 1402 // Gesture target will fail expectations if the wrong underlying |
1401 // SyntheticPinch*Gesture was instantiated. | 1403 // SyntheticPinch*Gesture was instantiated. |
1402 } | 1404 } |
1403 | 1405 |
1404 // Ensure that if SyntheticPinchGesture is instantiated with DEFAULT_INPUT it | 1406 // Ensure that if SyntheticPinchGesture is instantiated with DEFAULT_INPUT it |
1405 // correctly creates a touchpad gesture for a touchpad controller. | 1407 // correctly creates a touchpad gesture for a touchpad controller. |
1406 TEST_F(SyntheticGestureControllerTest, PinchGestureDefaultMouse) { | 1408 TEST_F(SyntheticGestureControllerTest, PinchGestureDefaultMouse) { |
1407 CreateControllerAndTarget<MockSyntheticTouchpadPinchTouchTarget>(); | 1409 CreateControllerAndTarget<MockSyntheticTouchpadPinchTouchTarget>(); |
1408 | 1410 |
1409 SyntheticPinchGestureParams params; | 1411 SyntheticPinchGestureParams params; |
1410 params.gesture_source_type = SyntheticGestureParams::DEFAULT_INPUT; | 1412 params.gesture_source_type = SyntheticGestureParams::DEFAULT_INPUT; |
1411 params.scale_factor = 2.3f; | 1413 params.scale_factor = 2.3f; |
1412 params.anchor.SetPoint(54, 89); | 1414 params.anchor.SetPoint(54, 89); |
1413 | 1415 |
1414 scoped_ptr<SyntheticPinchGesture> gesture(new SyntheticPinchGesture(params)); | 1416 scoped_ptr<SyntheticPinchGesture> gesture(new SyntheticPinchGesture(params)); |
1415 QueueSyntheticGesture(gesture.Pass()); | 1417 QueueSyntheticGesture(std::move(gesture)); |
1416 FlushInputUntilComplete(); | 1418 FlushInputUntilComplete(); |
1417 | 1419 |
1418 // Gesture target will fail expectations if the wrong underlying | 1420 // Gesture target will fail expectations if the wrong underlying |
1419 // SyntheticPinch*Gesture was instantiated. | 1421 // SyntheticPinch*Gesture was instantiated. |
1420 } | 1422 } |
1421 | 1423 |
1422 TEST_F(SyntheticGestureControllerTest, TapGestureTouch) { | 1424 TEST_F(SyntheticGestureControllerTest, TapGestureTouch) { |
1423 CreateControllerAndTarget<MockSyntheticTapTouchTarget>(); | 1425 CreateControllerAndTarget<MockSyntheticTapTouchTarget>(); |
1424 | 1426 |
1425 SyntheticTapGestureParams params; | 1427 SyntheticTapGestureParams params; |
1426 params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT; | 1428 params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT; |
1427 params.duration_ms = 123; | 1429 params.duration_ms = 123; |
1428 params.position.SetPoint(87, -124); | 1430 params.position.SetPoint(87, -124); |
1429 | 1431 |
1430 scoped_ptr<SyntheticTapGesture> gesture(new SyntheticTapGesture(params)); | 1432 scoped_ptr<SyntheticTapGesture> gesture(new SyntheticTapGesture(params)); |
1431 QueueSyntheticGesture(gesture.Pass()); | 1433 QueueSyntheticGesture(std::move(gesture)); |
1432 FlushInputUntilComplete(); | 1434 FlushInputUntilComplete(); |
1433 | 1435 |
1434 MockSyntheticTapTouchTarget* tap_target = | 1436 MockSyntheticTapTouchTarget* tap_target = |
1435 static_cast<MockSyntheticTapTouchTarget*>(target_); | 1437 static_cast<MockSyntheticTapTouchTarget*>(target_); |
1436 EXPECT_EQ(1, num_success_); | 1438 EXPECT_EQ(1, num_success_); |
1437 EXPECT_EQ(0, num_failure_); | 1439 EXPECT_EQ(0, num_failure_); |
1438 EXPECT_TRUE(tap_target->GestureFinished()); | 1440 EXPECT_TRUE(tap_target->GestureFinished()); |
1439 EXPECT_EQ(tap_target->position(), params.position); | 1441 EXPECT_EQ(tap_target->position(), params.position); |
1440 EXPECT_EQ(tap_target->GetDuration().InMilliseconds(), params.duration_ms); | 1442 EXPECT_EQ(tap_target->GetDuration().InMilliseconds(), params.duration_ms); |
1441 EXPECT_GE(GetTotalTime(), | 1443 EXPECT_GE(GetTotalTime(), |
1442 base::TimeDelta::FromMilliseconds(params.duration_ms)); | 1444 base::TimeDelta::FromMilliseconds(params.duration_ms)); |
1443 } | 1445 } |
1444 | 1446 |
1445 TEST_F(SyntheticGestureControllerTest, TapGestureMouse) { | 1447 TEST_F(SyntheticGestureControllerTest, TapGestureMouse) { |
1446 CreateControllerAndTarget<MockSyntheticTapMouseTarget>(); | 1448 CreateControllerAndTarget<MockSyntheticTapMouseTarget>(); |
1447 | 1449 |
1448 SyntheticTapGestureParams params; | 1450 SyntheticTapGestureParams params; |
1449 params.gesture_source_type = SyntheticGestureParams::MOUSE_INPUT; | 1451 params.gesture_source_type = SyntheticGestureParams::MOUSE_INPUT; |
1450 params.duration_ms = 79; | 1452 params.duration_ms = 79; |
1451 params.position.SetPoint(98, 123); | 1453 params.position.SetPoint(98, 123); |
1452 | 1454 |
1453 scoped_ptr<SyntheticTapGesture> gesture(new SyntheticTapGesture(params)); | 1455 scoped_ptr<SyntheticTapGesture> gesture(new SyntheticTapGesture(params)); |
1454 QueueSyntheticGesture(gesture.Pass()); | 1456 QueueSyntheticGesture(std::move(gesture)); |
1455 FlushInputUntilComplete(); | 1457 FlushInputUntilComplete(); |
1456 | 1458 |
1457 MockSyntheticTapMouseTarget* tap_target = | 1459 MockSyntheticTapMouseTarget* tap_target = |
1458 static_cast<MockSyntheticTapMouseTarget*>(target_); | 1460 static_cast<MockSyntheticTapMouseTarget*>(target_); |
1459 EXPECT_EQ(1, num_success_); | 1461 EXPECT_EQ(1, num_success_); |
1460 EXPECT_EQ(0, num_failure_); | 1462 EXPECT_EQ(0, num_failure_); |
1461 EXPECT_TRUE(tap_target->GestureFinished()); | 1463 EXPECT_TRUE(tap_target->GestureFinished()); |
1462 EXPECT_EQ(tap_target->position(), params.position); | 1464 EXPECT_EQ(tap_target->position(), params.position); |
1463 EXPECT_EQ(tap_target->GetDuration().InMilliseconds(), params.duration_ms); | 1465 EXPECT_EQ(tap_target->GetDuration().InMilliseconds(), params.duration_ms); |
1464 EXPECT_GE(GetTotalTime(), | 1466 EXPECT_GE(GetTotalTime(), |
1465 base::TimeDelta::FromMilliseconds(params.duration_ms)); | 1467 base::TimeDelta::FromMilliseconds(params.duration_ms)); |
1466 } | 1468 } |
1467 | 1469 |
1468 TEST_F(SyntheticGestureControllerTest, PointerTouchAction) { | 1470 TEST_F(SyntheticGestureControllerTest, PointerTouchAction) { |
1469 CreateControllerAndTarget<MockSyntheticPointerTouchActionTarget>(); | 1471 CreateControllerAndTarget<MockSyntheticPointerTouchActionTarget>(); |
1470 | 1472 |
1471 SyntheticTouchPointer synthetic_pointer; | 1473 SyntheticTouchPointer synthetic_pointer; |
1472 | 1474 |
1473 gfx::PointF position(54, 89); | 1475 gfx::PointF position(54, 89); |
1474 scoped_ptr<SyntheticPointerAction> gesture(new SyntheticPointerAction( | 1476 scoped_ptr<SyntheticPointerAction> gesture(new SyntheticPointerAction( |
1475 SyntheticGestureParams::TOUCH_INPUT, SyntheticGesture::PRESS, | 1477 SyntheticGestureParams::TOUCH_INPUT, SyntheticGesture::PRESS, |
1476 &synthetic_pointer, position)); | 1478 &synthetic_pointer, position)); |
1477 QueueSyntheticGesture(gesture.Pass()); | 1479 QueueSyntheticGesture(std::move(gesture)); |
1478 FlushInputUntilComplete(); | 1480 FlushInputUntilComplete(); |
1479 | 1481 |
1480 MockSyntheticPointerTouchActionTarget* pointer_touch_target = | 1482 MockSyntheticPointerTouchActionTarget* pointer_touch_target = |
1481 static_cast<MockSyntheticPointerTouchActionTarget*>(target_); | 1483 static_cast<MockSyntheticPointerTouchActionTarget*>(target_); |
1482 EXPECT_EQ(pointer_touch_target->type(), WebInputEvent::TouchStart); | 1484 EXPECT_EQ(pointer_touch_target->type(), WebInputEvent::TouchStart); |
1483 EXPECT_EQ(pointer_touch_target->positions(0), position); | 1485 EXPECT_EQ(pointer_touch_target->positions(0), position); |
1484 EXPECT_EQ(pointer_touch_target->states(0), WebTouchPoint::StatePressed); | 1486 EXPECT_EQ(pointer_touch_target->states(0), WebTouchPoint::StatePressed); |
1485 ASSERT_EQ(pointer_touch_target->touch_length(), 1U); | 1487 ASSERT_EQ(pointer_touch_target->touch_length(), 1U); |
1486 | 1488 |
1487 position.SetPoint(79, 132); | 1489 position.SetPoint(79, 132); |
1488 gesture.reset(new SyntheticPointerAction(SyntheticGestureParams::TOUCH_INPUT, | 1490 gesture.reset(new SyntheticPointerAction(SyntheticGestureParams::TOUCH_INPUT, |
1489 SyntheticGesture::PRESS, | 1491 SyntheticGesture::PRESS, |
1490 &synthetic_pointer, position)); | 1492 &synthetic_pointer, position)); |
1491 QueueSyntheticGesture(gesture.Pass()); | 1493 QueueSyntheticGesture(std::move(gesture)); |
1492 FlushInputUntilComplete(); | 1494 FlushInputUntilComplete(); |
1493 | 1495 |
1494 pointer_touch_target = | 1496 pointer_touch_target = |
1495 static_cast<MockSyntheticPointerTouchActionTarget*>(target_); | 1497 static_cast<MockSyntheticPointerTouchActionTarget*>(target_); |
1496 EXPECT_EQ(pointer_touch_target->type(), WebInputEvent::TouchStart); | 1498 EXPECT_EQ(pointer_touch_target->type(), WebInputEvent::TouchStart); |
1497 EXPECT_EQ(pointer_touch_target->indexes(1), 1); | 1499 EXPECT_EQ(pointer_touch_target->indexes(1), 1); |
1498 EXPECT_EQ(pointer_touch_target->positions(1), position); | 1500 EXPECT_EQ(pointer_touch_target->positions(1), position); |
1499 EXPECT_EQ(pointer_touch_target->states(1), WebTouchPoint::StatePressed); | 1501 EXPECT_EQ(pointer_touch_target->states(1), WebTouchPoint::StatePressed); |
1500 ASSERT_EQ(pointer_touch_target->touch_length(), 2U); | 1502 ASSERT_EQ(pointer_touch_target->touch_length(), 2U); |
1501 | 1503 |
1502 int index = 1; | 1504 int index = 1; |
1503 position.SetPoint(133, 156); | 1505 position.SetPoint(133, 156); |
1504 gesture.reset(new SyntheticPointerAction( | 1506 gesture.reset(new SyntheticPointerAction( |
1505 SyntheticGestureParams::TOUCH_INPUT, SyntheticGesture::MOVE, | 1507 SyntheticGestureParams::TOUCH_INPUT, SyntheticGesture::MOVE, |
1506 &synthetic_pointer, position, index)); | 1508 &synthetic_pointer, position, index)); |
1507 QueueSyntheticGesture(gesture.Pass()); | 1509 QueueSyntheticGesture(std::move(gesture)); |
1508 FlushInputUntilComplete(); | 1510 FlushInputUntilComplete(); |
1509 | 1511 |
1510 pointer_touch_target = | 1512 pointer_touch_target = |
1511 static_cast<MockSyntheticPointerTouchActionTarget*>(target_); | 1513 static_cast<MockSyntheticPointerTouchActionTarget*>(target_); |
1512 EXPECT_EQ(pointer_touch_target->type(), WebInputEvent::TouchMove); | 1514 EXPECT_EQ(pointer_touch_target->type(), WebInputEvent::TouchMove); |
1513 EXPECT_EQ(pointer_touch_target->positions(1), position); | 1515 EXPECT_EQ(pointer_touch_target->positions(1), position); |
1514 EXPECT_EQ(pointer_touch_target->states(1), WebTouchPoint::StateMoved); | 1516 EXPECT_EQ(pointer_touch_target->states(1), WebTouchPoint::StateMoved); |
1515 ASSERT_EQ(pointer_touch_target->touch_length(), 2U); | 1517 ASSERT_EQ(pointer_touch_target->touch_length(), 2U); |
1516 | 1518 |
1517 gesture.reset(new SyntheticPointerAction( | 1519 gesture.reset(new SyntheticPointerAction( |
1518 SyntheticGestureParams::TOUCH_INPUT, SyntheticGesture::RELEASE, | 1520 SyntheticGestureParams::TOUCH_INPUT, SyntheticGesture::RELEASE, |
1519 &synthetic_pointer, position, index)); | 1521 &synthetic_pointer, position, index)); |
1520 QueueSyntheticGesture(gesture.Pass()); | 1522 QueueSyntheticGesture(std::move(gesture)); |
1521 FlushInputUntilComplete(); | 1523 FlushInputUntilComplete(); |
1522 | 1524 |
1523 pointer_touch_target = | 1525 pointer_touch_target = |
1524 static_cast<MockSyntheticPointerTouchActionTarget*>(target_); | 1526 static_cast<MockSyntheticPointerTouchActionTarget*>(target_); |
1525 EXPECT_EQ(pointer_touch_target->type(), WebInputEvent::TouchEnd); | 1527 EXPECT_EQ(pointer_touch_target->type(), WebInputEvent::TouchEnd); |
1526 EXPECT_EQ(pointer_touch_target->states(1), WebTouchPoint::StateReleased); | 1528 EXPECT_EQ(pointer_touch_target->states(1), WebTouchPoint::StateReleased); |
1527 } | 1529 } |
1528 | 1530 |
1529 } // namespace | 1531 } // namespace |
1530 | 1532 |
1531 } // namespace content | 1533 } // namespace content |
OLD | NEW |