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

Side by Side Diff: content/browser/renderer_host/input/input_router_impl_unittest.cc

Issue 2573073003: Collapse the API surface on WebInputEvent via accessor functions. (Closed)
Patch Set: Fix nits Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/input/input_router_impl.h" 5 #include "content/browser/renderer_host/input/input_router_impl.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 } 209 }
210 210
211 void SimulateWheelEventWithPhase(WebMouseWheelEvent::Phase phase) { 211 void SimulateWheelEventWithPhase(WebMouseWheelEvent::Phase phase) {
212 input_router_->SendWheelEvent(MouseWheelEventWithLatencyInfo( 212 input_router_->SendWheelEvent(MouseWheelEventWithLatencyInfo(
213 SyntheticWebMouseWheelEventBuilder::Build(phase))); 213 SyntheticWebMouseWheelEventBuilder::Build(phase)));
214 } 214 }
215 215
216 void SimulateGestureEvent(WebGestureEvent gesture) { 216 void SimulateGestureEvent(WebGestureEvent gesture) {
217 // Ensure non-zero touchscreen fling velocities, as the router will 217 // Ensure non-zero touchscreen fling velocities, as the router will
218 // validate aganst such. 218 // validate aganst such.
219 if (gesture.type == WebInputEvent::GestureFlingStart && 219 if (gesture.type() == WebInputEvent::GestureFlingStart &&
220 gesture.sourceDevice == blink::WebGestureDeviceTouchscreen && 220 gesture.sourceDevice == blink::WebGestureDeviceTouchscreen &&
221 !gesture.data.flingStart.velocityX && 221 !gesture.data.flingStart.velocityX &&
222 !gesture.data.flingStart.velocityY) { 222 !gesture.data.flingStart.velocityY) {
223 gesture.data.flingStart.velocityX = 5.f; 223 gesture.data.flingStart.velocityX = 5.f;
224 } 224 }
225 225
226 input_router_->SendGestureEvent(GestureEventWithLatencyInfo(gesture)); 226 input_router_->SendGestureEvent(GestureEventWithLatencyInfo(gesture));
227 } 227 }
228 228
229 void SimulateGestureEvent(WebInputEvent::Type type, 229 void SimulateGestureEvent(WebInputEvent::Type type,
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
663 EXPECT_TRUE(ack_handler_->unexpected_event_ack_called()); 663 EXPECT_TRUE(ack_handler_->unexpected_event_ack_called());
664 } 664 }
665 665
666 // Tests ported from RenderWidgetHostTest -------------------------------------- 666 // Tests ported from RenderWidgetHostTest --------------------------------------
667 667
668 TEST_F(InputRouterImplTest, HandleKeyEventsWeSent) { 668 TEST_F(InputRouterImplTest, HandleKeyEventsWeSent) {
669 // Simulate a keyboard event. 669 // Simulate a keyboard event.
670 SimulateKeyboardEvent(WebInputEvent::RawKeyDown); 670 SimulateKeyboardEvent(WebInputEvent::RawKeyDown);
671 ASSERT_TRUE(input_router_->GetLastKeyboardEvent()); 671 ASSERT_TRUE(input_router_->GetLastKeyboardEvent());
672 EXPECT_EQ(WebInputEvent::RawKeyDown, 672 EXPECT_EQ(WebInputEvent::RawKeyDown,
673 input_router_->GetLastKeyboardEvent()->type); 673 input_router_->GetLastKeyboardEvent()->type());
674 674
675 // Make sure we sent the input event to the renderer. 675 // Make sure we sent the input event to the renderer.
676 EXPECT_TRUE(process_->sink().GetUniqueMessageMatching( 676 EXPECT_TRUE(process_->sink().GetUniqueMessageMatching(
677 InputMsg_HandleInputEvent::ID)); 677 InputMsg_HandleInputEvent::ID));
678 process_->sink().ClearMessages(); 678 process_->sink().ClearMessages();
679 679
680 // Send the simulated response from the renderer back. 680 // Send the simulated response from the renderer back.
681 SendInputEventACK(WebInputEvent::RawKeyDown, 681 SendInputEventACK(WebInputEvent::RawKeyDown,
682 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 682 INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
683 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount()); 683 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount());
684 EXPECT_EQ(WebInputEvent::RawKeyDown, 684 EXPECT_EQ(WebInputEvent::RawKeyDown,
685 ack_handler_->acked_keyboard_event().type); 685 ack_handler_->acked_keyboard_event().type());
686 } 686 }
687 687
688 TEST_F(InputRouterImplTest, IgnoreKeyEventsWeDidntSend) { 688 TEST_F(InputRouterImplTest, IgnoreKeyEventsWeDidntSend) {
689 // Send a simulated, unrequested key response. We should ignore this. 689 // Send a simulated, unrequested key response. We should ignore this.
690 SendInputEventACK(WebInputEvent::RawKeyDown, 690 SendInputEventACK(WebInputEvent::RawKeyDown,
691 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 691 INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
692 692
693 EXPECT_EQ(0U, ack_handler_->GetAndResetAckCount()); 693 EXPECT_EQ(0U, ack_handler_->GetAndResetAckCount());
694 } 694 }
695 695
696 TEST_F(InputRouterImplTest, CoalescesWheelEvents) { 696 TEST_F(InputRouterImplTest, CoalescesWheelEvents) {
697 // Simulate wheel events. 697 // Simulate wheel events.
698 SimulateWheelEvent(0, 0, 0, -5, 0, false); // sent directly 698 SimulateWheelEvent(0, 0, 0, -5, 0, false); // sent directly
699 SimulateWheelEvent(0, 0, 0, -10, 0, false); // enqueued 699 SimulateWheelEvent(0, 0, 0, -10, 0, false); // enqueued
700 SimulateWheelEvent(0, 0, 8, -6, 0, false); // coalesced into previous event 700 SimulateWheelEvent(0, 0, 8, -6, 0, false); // coalesced into previous event
701 SimulateWheelEvent(0, 0, 9, -7, 1, false); // enqueued, different modifiers 701 SimulateWheelEvent(0, 0, 9, -7, 1, false); // enqueued, different modifiers
702 SimulateWheelEvent(0, 0, 0, -10, 0, false); // enqueued, different modifiers 702 SimulateWheelEvent(0, 0, 0, -10, 0, false); // enqueued, different modifiers
703 // Explicitly verify that PhaseEnd isn't coalesced to avoid bugs like 703 // Explicitly verify that PhaseEnd isn't coalesced to avoid bugs like
704 // https://crbug.com/154740. 704 // https://crbug.com/154740.
705 SimulateWheelEventWithPhase(WebMouseWheelEvent::PhaseEnded); // enqueued 705 SimulateWheelEventWithPhase(WebMouseWheelEvent::PhaseEnded); // enqueued
706 706
707 // Check that only the first event was sent. 707 // Check that only the first event was sent.
708 EXPECT_TRUE(process_->sink().GetUniqueMessageMatching( 708 EXPECT_TRUE(process_->sink().GetUniqueMessageMatching(
709 InputMsg_HandleInputEvent::ID)); 709 InputMsg_HandleInputEvent::ID));
710 const WebInputEvent* input_event = 710 const WebInputEvent* input_event =
711 GetInputEventFromMessage(*process_->sink().GetMessageAt(0)); 711 GetInputEventFromMessage(*process_->sink().GetMessageAt(0));
712 ASSERT_EQ(WebInputEvent::MouseWheel, input_event->type); 712 ASSERT_EQ(WebInputEvent::MouseWheel, input_event->type());
713 const WebMouseWheelEvent* wheel_event = 713 const WebMouseWheelEvent* wheel_event =
714 static_cast<const WebMouseWheelEvent*>(input_event); 714 static_cast<const WebMouseWheelEvent*>(input_event);
715 EXPECT_EQ(0, wheel_event->deltaX); 715 EXPECT_EQ(0, wheel_event->deltaX);
716 EXPECT_EQ(-5, wheel_event->deltaY); 716 EXPECT_EQ(-5, wheel_event->deltaY);
717 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 717 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
718 718
719 // Check that the ACK sends the second message immediately. 719 // Check that the ACK sends the second message immediately.
720 SendInputEventACK(WebInputEvent::MouseWheel, 720 SendInputEventACK(WebInputEvent::MouseWheel,
721 INPUT_EVENT_ACK_STATE_CONSUMED); 721 INPUT_EVENT_ACK_STATE_CONSUMED);
722 // The coalesced events can queue up a delayed ack 722 // The coalesced events can queue up a delayed ack
723 // so that additional input events can be processed before 723 // so that additional input events can be processed before
724 // we turn off coalescing. 724 // we turn off coalescing.
725 base::RunLoop().RunUntilIdle(); 725 base::RunLoop().RunUntilIdle();
726 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount()); 726 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount());
727 EXPECT_TRUE(process_->sink().GetUniqueMessageMatching( 727 EXPECT_TRUE(process_->sink().GetUniqueMessageMatching(
728 InputMsg_HandleInputEvent::ID)); 728 InputMsg_HandleInputEvent::ID));
729 input_event = GetInputEventFromMessage(*process_->sink().GetMessageAt(0)); 729 input_event = GetInputEventFromMessage(*process_->sink().GetMessageAt(0));
730 ASSERT_EQ(WebInputEvent::MouseWheel, input_event->type); 730 ASSERT_EQ(WebInputEvent::MouseWheel, input_event->type());
731 wheel_event = static_cast<const WebMouseWheelEvent*>(input_event); 731 wheel_event = static_cast<const WebMouseWheelEvent*>(input_event);
732 EXPECT_EQ(8, wheel_event->deltaX); 732 EXPECT_EQ(8, wheel_event->deltaX);
733 EXPECT_EQ(-10 + -6, wheel_event->deltaY); // coalesced 733 EXPECT_EQ(-10 + -6, wheel_event->deltaY); // coalesced
734 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 734 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
735 735
736 // Ack the second event (which had the third coalesced into it). 736 // Ack the second event (which had the third coalesced into it).
737 SendInputEventACK(WebInputEvent::MouseWheel, 737 SendInputEventACK(WebInputEvent::MouseWheel,
738 INPUT_EVENT_ACK_STATE_CONSUMED); 738 INPUT_EVENT_ACK_STATE_CONSUMED);
739 base::RunLoop().RunUntilIdle(); 739 base::RunLoop().RunUntilIdle();
740 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount()); 740 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount());
741 EXPECT_TRUE(process_->sink().GetUniqueMessageMatching( 741 EXPECT_TRUE(process_->sink().GetUniqueMessageMatching(
742 InputMsg_HandleInputEvent::ID)); 742 InputMsg_HandleInputEvent::ID));
743 input_event = GetInputEventFromMessage(*process_->sink().GetMessageAt(0)); 743 input_event = GetInputEventFromMessage(*process_->sink().GetMessageAt(0));
744 ASSERT_EQ(WebInputEvent::MouseWheel, input_event->type); 744 ASSERT_EQ(WebInputEvent::MouseWheel, input_event->type());
745 wheel_event = static_cast<const WebMouseWheelEvent*>(input_event); 745 wheel_event = static_cast<const WebMouseWheelEvent*>(input_event);
746 EXPECT_EQ(9, wheel_event->deltaX); 746 EXPECT_EQ(9, wheel_event->deltaX);
747 EXPECT_EQ(-7, wheel_event->deltaY); 747 EXPECT_EQ(-7, wheel_event->deltaY);
748 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 748 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
749 749
750 // Ack the fourth event. 750 // Ack the fourth event.
751 SendInputEventACK(WebInputEvent::MouseWheel, 751 SendInputEventACK(WebInputEvent::MouseWheel,
752 INPUT_EVENT_ACK_STATE_CONSUMED); 752 INPUT_EVENT_ACK_STATE_CONSUMED);
753 base::RunLoop().RunUntilIdle(); 753 base::RunLoop().RunUntilIdle();
754 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount()); 754 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount());
755 EXPECT_TRUE( 755 EXPECT_TRUE(
756 process_->sink().GetUniqueMessageMatching(InputMsg_HandleInputEvent::ID)); 756 process_->sink().GetUniqueMessageMatching(InputMsg_HandleInputEvent::ID));
757 input_event = GetInputEventFromMessage(*process_->sink().GetMessageAt(0)); 757 input_event = GetInputEventFromMessage(*process_->sink().GetMessageAt(0));
758 ASSERT_EQ(WebInputEvent::MouseWheel, input_event->type); 758 ASSERT_EQ(WebInputEvent::MouseWheel, input_event->type());
759 wheel_event = static_cast<const WebMouseWheelEvent*>(input_event); 759 wheel_event = static_cast<const WebMouseWheelEvent*>(input_event);
760 EXPECT_EQ(0, wheel_event->deltaX); 760 EXPECT_EQ(0, wheel_event->deltaX);
761 EXPECT_EQ(-10, wheel_event->deltaY); 761 EXPECT_EQ(-10, wheel_event->deltaY);
762 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 762 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
763 763
764 // Ack the fifth event. 764 // Ack the fifth event.
765 SendInputEventACK(WebInputEvent::MouseWheel, INPUT_EVENT_ACK_STATE_CONSUMED); 765 SendInputEventACK(WebInputEvent::MouseWheel, INPUT_EVENT_ACK_STATE_CONSUMED);
766 base::RunLoop().RunUntilIdle(); 766 base::RunLoop().RunUntilIdle();
767 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount()); 767 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount());
768 EXPECT_TRUE( 768 EXPECT_TRUE(
769 process_->sink().GetUniqueMessageMatching(InputMsg_HandleInputEvent::ID)); 769 process_->sink().GetUniqueMessageMatching(InputMsg_HandleInputEvent::ID));
770 input_event = GetInputEventFromMessage(*process_->sink().GetMessageAt(0)); 770 input_event = GetInputEventFromMessage(*process_->sink().GetMessageAt(0));
771 ASSERT_EQ(WebInputEvent::MouseWheel, input_event->type); 771 ASSERT_EQ(WebInputEvent::MouseWheel, input_event->type());
772 wheel_event = static_cast<const WebMouseWheelEvent*>(input_event); 772 wheel_event = static_cast<const WebMouseWheelEvent*>(input_event);
773 EXPECT_EQ(0, wheel_event->deltaX); 773 EXPECT_EQ(0, wheel_event->deltaX);
774 EXPECT_EQ(0, wheel_event->deltaY); 774 EXPECT_EQ(0, wheel_event->deltaY);
775 EXPECT_EQ(WebMouseWheelEvent::PhaseEnded, wheel_event->phase); 775 EXPECT_EQ(WebMouseWheelEvent::PhaseEnded, wheel_event->phase);
776 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 776 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
777 777
778 // After the final ack, the queue should be empty. 778 // After the final ack, the queue should be empty.
779 SendInputEventACK(WebInputEvent::MouseWheel, INPUT_EVENT_ACK_STATE_CONSUMED); 779 SendInputEventACK(WebInputEvent::MouseWheel, INPUT_EVENT_ACK_STATE_CONSUMED);
780 base::RunLoop().RunUntilIdle(); 780 base::RunLoop().RunUntilIdle();
781 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount()); 781 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount());
(...skipping 16 matching lines...) Expand all
798 EXPECT_FALSE(client_->GetAndResetFilterEventCalled()); 798 EXPECT_FALSE(client_->GetAndResetFilterEventCalled());
799 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); 799 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
800 EXPECT_FALSE(TouchEventQueueEmpty()); 800 EXPECT_FALSE(TouchEventQueueEmpty());
801 801
802 // Receive an ACK for the first touch-event. 802 // Receive an ACK for the first touch-event.
803 SendTouchEventACK(WebInputEvent::TouchStart, INPUT_EVENT_ACK_STATE_CONSUMED, 803 SendTouchEventACK(WebInputEvent::TouchStart, INPUT_EVENT_ACK_STATE_CONSUMED,
804 touch_press_event_id); 804 touch_press_event_id);
805 EXPECT_FALSE(TouchEventQueueEmpty()); 805 EXPECT_FALSE(TouchEventQueueEmpty());
806 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount()); 806 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount());
807 EXPECT_EQ(WebInputEvent::TouchStart, 807 EXPECT_EQ(WebInputEvent::TouchStart,
808 ack_handler_->acked_touch_event().event.type); 808 ack_handler_->acked_touch_event().event.type());
809 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 809 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
810 810
811 SendTouchEventACK(WebInputEvent::TouchMove, INPUT_EVENT_ACK_STATE_CONSUMED, 811 SendTouchEventACK(WebInputEvent::TouchMove, INPUT_EVENT_ACK_STATE_CONSUMED,
812 touch_move_event_id); 812 touch_move_event_id);
813 EXPECT_TRUE(TouchEventQueueEmpty()); 813 EXPECT_TRUE(TouchEventQueueEmpty());
814 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount()); 814 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount());
815 EXPECT_EQ(WebInputEvent::TouchMove, 815 EXPECT_EQ(WebInputEvent::TouchMove,
816 ack_handler_->acked_touch_event().event.type); 816 ack_handler_->acked_touch_event().event.type());
817 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); 817 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
818 } 818 }
819 819
820 // Tests that the touch-queue is emptied after a page stops listening for touch 820 // Tests that the touch-queue is emptied after a page stops listening for touch
821 // events and the outstanding ack is received. 821 // events and the outstanding ack is received.
822 TEST_F(InputRouterImplTest, TouchEventQueueFlush) { 822 TEST_F(InputRouterImplTest, TouchEventQueueFlush) {
823 OnHasTouchEventHandlers(true); 823 OnHasTouchEventHandlers(true);
824 EXPECT_TRUE(client_->has_touch_handler()); 824 EXPECT_TRUE(client_->has_touch_handler());
825 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); 825 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
826 EXPECT_TRUE(TouchEventQueueEmpty()); 826 EXPECT_TRUE(TouchEventQueueEmpty());
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
912 uint32_t touch_event_ids[] = {touch_press_event_id1, touch_move_event_id1, 912 uint32_t touch_event_ids[] = {touch_press_event_id1, touch_move_event_id1,
913 touch_press_event_id2, touch_move_event_id2}; 913 touch_press_event_id2, touch_move_event_id2};
914 914
915 TouchEventCoordinateSystem coordinate_system = LOCAL_COORDINATES; 915 TouchEventCoordinateSystem coordinate_system = LOCAL_COORDINATES;
916 #if !defined(OS_WIN) 916 #if !defined(OS_WIN)
917 coordinate_system = SCREEN_COORDINATES; 917 coordinate_system = SCREEN_COORDINATES;
918 #endif 918 #endif
919 for (size_t i = 0; i < arraysize(acks); ++i) { 919 for (size_t i = 0; i < arraysize(acks); ++i) {
920 SendTouchEventACK(acks[i], INPUT_EVENT_ACK_STATE_NOT_CONSUMED, 920 SendTouchEventACK(acks[i], INPUT_EVENT_ACK_STATE_NOT_CONSUMED,
921 touch_event_ids[i]); 921 touch_event_ids[i]);
922 EXPECT_EQ(acks[i], ack_handler_->acked_touch_event().event.type); 922 EXPECT_EQ(acks[i], ack_handler_->acked_touch_event().event.type());
923 ScopedVector<ui::TouchEvent> acked; 923 ScopedVector<ui::TouchEvent> acked;
924 924
925 MakeUITouchEventsFromWebTouchEvents( 925 MakeUITouchEventsFromWebTouchEvents(
926 ack_handler_->acked_touch_event(), &acked, coordinate_system); 926 ack_handler_->acked_touch_event(), &acked, coordinate_system);
927 bool success = EventListIsSubset(acked, expected_events); 927 bool success = EventListIsSubset(acked, expected_events);
928 EXPECT_TRUE(success) << "Failed on step: " << i; 928 EXPECT_TRUE(success) << "Failed on step: " << i;
929 if (!success) 929 if (!success)
930 break; 930 break;
931 expected_events.erase(expected_events.begin(), 931 expected_events.erase(expected_events.begin(),
932 expected_events.begin() + acked.size()); 932 expected_events.begin() + acked.size());
(...skipping 758 matching lines...) Expand 10 before | Expand all | Expand 10 after
1691 // GesturePinchUpdate for trackpad sends synthetic wheel events. 1691 // GesturePinchUpdate for trackpad sends synthetic wheel events.
1692 // Note that the Touchscreen case is verified as NOT doing this as 1692 // Note that the Touchscreen case is verified as NOT doing this as
1693 // part of the ShowPressIsInOrder test. 1693 // part of the ShowPressIsInOrder test.
1694 1694
1695 SimulateGesturePinchUpdateEvent( 1695 SimulateGesturePinchUpdateEvent(
1696 1.5f, 20, 25, 0, blink::WebGestureDeviceTouchpad); 1696 1.5f, 20, 25, 0, blink::WebGestureDeviceTouchpad);
1697 1697
1698 // Verify we actually sent a special wheel event to the renderer. 1698 // Verify we actually sent a special wheel event to the renderer.
1699 const WebInputEvent* input_event = 1699 const WebInputEvent* input_event =
1700 GetInputEventFromMessage(*process_->sink().GetMessageAt(0)); 1700 GetInputEventFromMessage(*process_->sink().GetMessageAt(0));
1701 ASSERT_EQ(WebInputEvent::GesturePinchUpdate, input_event->type); 1701 ASSERT_EQ(WebInputEvent::GesturePinchUpdate, input_event->type());
1702 const WebGestureEvent* gesture_event = 1702 const WebGestureEvent* gesture_event =
1703 static_cast<const WebGestureEvent*>(input_event); 1703 static_cast<const WebGestureEvent*>(input_event);
1704 EXPECT_EQ(20, gesture_event->x); 1704 EXPECT_EQ(20, gesture_event->x);
1705 EXPECT_EQ(25, gesture_event->y); 1705 EXPECT_EQ(25, gesture_event->y);
1706 EXPECT_EQ(20, gesture_event->globalX); 1706 EXPECT_EQ(20, gesture_event->globalX);
1707 EXPECT_EQ(25, gesture_event->globalY); 1707 EXPECT_EQ(25, gesture_event->globalY);
1708 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 1708 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
1709 1709
1710 // Indicate that the wheel event was unhandled. 1710 // Indicate that the wheel event was unhandled.
1711 SendInputEventACK(WebInputEvent::GesturePinchUpdate, 1711 SendInputEventACK(WebInputEvent::GesturePinchUpdate,
1712 INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 1712 INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
1713 1713
1714 // Check that the correct unhandled pinch event was received. 1714 // Check that the correct unhandled pinch event was received.
1715 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount()); 1715 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount());
1716 ASSERT_EQ(WebInputEvent::GesturePinchUpdate, ack_handler_->ack_event_type()); 1716 ASSERT_EQ(WebInputEvent::GesturePinchUpdate, ack_handler_->ack_event_type());
1717 EXPECT_EQ(INPUT_EVENT_ACK_STATE_NOT_CONSUMED, ack_handler_->ack_state()); 1717 EXPECT_EQ(INPUT_EVENT_ACK_STATE_NOT_CONSUMED, ack_handler_->ack_state());
1718 EXPECT_EQ(1.5f, ack_handler_->acked_gesture_event().data.pinchUpdate.scale); 1718 EXPECT_EQ(1.5f, ack_handler_->acked_gesture_event().data.pinchUpdate.scale);
1719 EXPECT_EQ(0, client_->in_flight_event_count()); 1719 EXPECT_EQ(0, client_->in_flight_event_count());
1720 1720
1721 // Second a second pinch event. 1721 // Second a second pinch event.
1722 SimulateGesturePinchUpdateEvent( 1722 SimulateGesturePinchUpdateEvent(
1723 0.3f, 20, 25, 0, blink::WebGestureDeviceTouchpad); 1723 0.3f, 20, 25, 0, blink::WebGestureDeviceTouchpad);
1724 input_event = GetInputEventFromMessage(*process_->sink().GetMessageAt(0)); 1724 input_event = GetInputEventFromMessage(*process_->sink().GetMessageAt(0));
1725 ASSERT_EQ(WebInputEvent::GesturePinchUpdate, input_event->type); 1725 ASSERT_EQ(WebInputEvent::GesturePinchUpdate, input_event->type());
1726 gesture_event = static_cast<const WebGestureEvent*>(input_event); 1726 gesture_event = static_cast<const WebGestureEvent*>(input_event);
1727 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 1727 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
1728 1728
1729 // Indicate that the wheel event was handled this time. 1729 // Indicate that the wheel event was handled this time.
1730 SendInputEventACK(WebInputEvent::GesturePinchUpdate, 1730 SendInputEventACK(WebInputEvent::GesturePinchUpdate,
1731 INPUT_EVENT_ACK_STATE_CONSUMED); 1731 INPUT_EVENT_ACK_STATE_CONSUMED);
1732 1732
1733 // Check that the correct HANDLED pinch event was received. 1733 // Check that the correct HANDLED pinch event was received.
1734 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount()); 1734 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount());
1735 EXPECT_EQ(WebInputEvent::GesturePinchUpdate, ack_handler_->ack_event_type()); 1735 EXPECT_EQ(WebInputEvent::GesturePinchUpdate, ack_handler_->ack_event_type());
(...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after
2281 EXPECT_EQ(80, sent_event->data.flingStart.velocityY); 2281 EXPECT_EQ(80, sent_event->data.flingStart.velocityY);
2282 2282
2283 const WebGestureEvent* filter_event = 2283 const WebGestureEvent* filter_event =
2284 GetFilterWebInputEvent<WebGestureEvent>(); 2284 GetFilterWebInputEvent<WebGestureEvent>();
2285 TestLocationInFilterEvent(filter_event, orig); 2285 TestLocationInFilterEvent(filter_event, orig);
2286 EXPECT_EQ(30, filter_event->data.flingStart.velocityX); 2286 EXPECT_EQ(30, filter_event->data.flingStart.velocityX);
2287 EXPECT_EQ(40, filter_event->data.flingStart.velocityY); 2287 EXPECT_EQ(40, filter_event->data.flingStart.velocityY);
2288 } 2288 }
2289 2289
2290 } // namespace content 2290 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698