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

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

Issue 2725263002: Revert of Fix unit tests to enable them testing with the rAF aligned touch input. (Closed)
Patch Set: Created 3 years, 9 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
« no previous file with comments | « no previous file | content/browser/renderer_host/render_widget_host_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 } 137 }
138 138
139 return true; 139 return true;
140 } 140 }
141 #endif // defined(USE_AURA) 141 #endif // defined(USE_AURA)
142 142
143 } // namespace 143 } // namespace
144 144
145 class InputRouterImplTest : public testing::Test { 145 class InputRouterImplTest : public testing::Test {
146 public: 146 public:
147 InputRouterImplTest(bool raf_aligned_touch = true) { 147 InputRouterImplTest(bool raf_aligned_touch = false) {
148 if (raf_aligned_touch) { 148 if (raf_aligned_touch) {
149 feature_list_.InitFromCommandLine( 149 feature_list_.InitFromCommandLine(
150 features::kRafAlignedTouchInputEvents.name, ""); 150 features::kRafAlignedTouchInputEvents.name, "");
151 } else { 151 } else {
152 feature_list_.InitFromCommandLine( 152 feature_list_.InitFromCommandLine(
153 "", features::kRafAlignedTouchInputEvents.name); 153 "", features::kRafAlignedTouchInputEvents.name);
154 } 154 }
155 } 155 }
156 156
157 ~InputRouterImplTest() override {} 157 ~InputRouterImplTest() override {}
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 std::unique_ptr<InputRouterImpl> input_router_; 363 std::unique_ptr<InputRouterImpl> input_router_;
364 364
365 private: 365 private:
366 base::MessageLoopForUI message_loop_; 366 base::MessageLoopForUI message_loop_;
367 SyntheticWebTouchEvent touch_event_; 367 SyntheticWebTouchEvent touch_event_;
368 368
369 base::test::ScopedFeatureList feature_list_; 369 base::test::ScopedFeatureList feature_list_;
370 std::unique_ptr<TestBrowserContext> browser_context_; 370 std::unique_ptr<TestBrowserContext> browser_context_;
371 }; 371 };
372 372
373 class InputRouterImplRafAlignedTouchDisabledTest : public InputRouterImplTest { 373 class InputRouterImplRafAlignedTouchEnabledTest : public InputRouterImplTest {
374 public: 374 public:
375 InputRouterImplRafAlignedTouchDisabledTest() : InputRouterImplTest(false) {} 375 InputRouterImplRafAlignedTouchEnabledTest() : InputRouterImplTest(true) {}
376 }; 376 };
377 377
378 TEST_F(InputRouterImplTest, CoalescesRangeSelection) { 378 TEST_F(InputRouterImplTest, CoalescesRangeSelection) {
379 input_router_->SendInput(std::unique_ptr<IPC::Message>( 379 input_router_->SendInput(std::unique_ptr<IPC::Message>(
380 new InputMsg_SelectRange(0, gfx::Point(1, 2), gfx::Point(3, 4)))); 380 new InputMsg_SelectRange(0, gfx::Point(1, 2), gfx::Point(3, 4))));
381 ExpectIPCMessageWithArg2<InputMsg_SelectRange>( 381 ExpectIPCMessageWithArg2<InputMsg_SelectRange>(
382 process_->sink().GetMessageAt(0), 382 process_->sink().GetMessageAt(0),
383 gfx::Point(1, 2), 383 gfx::Point(1, 2),
384 gfx::Point(3, 4)); 384 gfx::Point(3, 4));
385 EXPECT_EQ(1u, GetSentMessageCountAndResetSink()); 385 EXPECT_EQ(1u, GetSentMessageCountAndResetSink());
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after
793 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 793 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
794 794
795 // After the final ack, the queue should be empty. 795 // After the final ack, the queue should be empty.
796 SendInputEventACK(WebInputEvent::MouseWheel, INPUT_EVENT_ACK_STATE_CONSUMED); 796 SendInputEventACK(WebInputEvent::MouseWheel, INPUT_EVENT_ACK_STATE_CONSUMED);
797 base::RunLoop().RunUntilIdle(); 797 base::RunLoop().RunUntilIdle();
798 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount()); 798 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount());
799 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); 799 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
800 } 800 }
801 801
802 // Tests that touch-events are queued properly. 802 // Tests that touch-events are queued properly.
803 TEST_F(InputRouterImplRafAlignedTouchDisabledTest, TouchEventQueue) { 803 TEST_F(InputRouterImplTest, TouchEventQueue) {
804 OnHasTouchEventHandlers(true); 804 OnHasTouchEventHandlers(true);
805 805
806 PressTouchPoint(1, 1); 806 PressTouchPoint(1, 1);
807 uint32_t touch_press_event_id = SendTouchEvent(); 807 uint32_t touch_press_event_id = SendTouchEvent();
808 EXPECT_TRUE(client_->GetAndResetFilterEventCalled()); 808 EXPECT_TRUE(client_->GetAndResetFilterEventCalled());
809 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 809 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
810 EXPECT_FALSE(TouchEventQueueEmpty()); 810 EXPECT_FALSE(TouchEventQueueEmpty());
811 811
812 // The second touch should not be sent since one is already in queue. 812 // The second touch should not be sent since one is already in queue.
813 MoveTouchPoint(0, 5, 5); 813 MoveTouchPoint(0, 5, 5);
814 uint32_t touch_move_event_id = SendTouchEvent(); 814 uint32_t touch_move_event_id = SendTouchEvent();
815 EXPECT_FALSE(client_->GetAndResetFilterEventCalled()); 815 EXPECT_FALSE(client_->GetAndResetFilterEventCalled());
816 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); 816 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
817 EXPECT_FALSE(TouchEventQueueEmpty()); 817 EXPECT_FALSE(TouchEventQueueEmpty());
818 818
819 // Receive an ACK for the first touch-event. 819 // Receive an ACK for the first touch-event.
820 SendTouchEventACK(WebInputEvent::TouchStart, INPUT_EVENT_ACK_STATE_CONSUMED, 820 SendTouchEventACK(WebInputEvent::TouchStart, INPUT_EVENT_ACK_STATE_CONSUMED,
821 touch_press_event_id); 821 touch_press_event_id);
822 EXPECT_FALSE(TouchEventQueueEmpty()); 822 EXPECT_FALSE(TouchEventQueueEmpty());
823 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount()); 823 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount());
824 EXPECT_EQ(WebInputEvent::TouchStart, 824 EXPECT_EQ(WebInputEvent::TouchStart,
825 ack_handler_->acked_touch_event().event.type()); 825 ack_handler_->acked_touch_event().event.type());
826 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 826 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
827 827
828 SendTouchEventACK(WebInputEvent::TouchMove, INPUT_EVENT_ACK_STATE_CONSUMED, 828 SendTouchEventACK(WebInputEvent::TouchMove, INPUT_EVENT_ACK_STATE_CONSUMED,
829 touch_move_event_id); 829 touch_move_event_id);
830 EXPECT_TRUE(TouchEventQueueEmpty());
831 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount());
832 EXPECT_EQ(WebInputEvent::TouchMove,
833 ack_handler_->acked_touch_event().event.type());
834 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
835 }
836
837 // Tests that touch-events are sent properly.
838 TEST_F(InputRouterImplTest, TouchEventQueue) {
839 OnHasTouchEventHandlers(true);
840
841 PressTouchPoint(1, 1);
842 uint32_t touch_press_event_id = SendTouchEvent();
843 EXPECT_TRUE(client_->GetAndResetFilterEventCalled());
844 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
845 EXPECT_FALSE(TouchEventQueueEmpty());
846
847 // The second touch should be sent right away.
848 MoveTouchPoint(0, 5, 5);
849 uint32_t touch_move_event_id = SendTouchEvent();
850 EXPECT_TRUE(client_->GetAndResetFilterEventCalled());
851 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
852 EXPECT_FALSE(TouchEventQueueEmpty());
853
854 // Receive an ACK for the first touch-event.
855 SendTouchEventACK(WebInputEvent::TouchStart, INPUT_EVENT_ACK_STATE_CONSUMED,
856 touch_press_event_id);
857 EXPECT_FALSE(TouchEventQueueEmpty());
858 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount());
859 EXPECT_EQ(WebInputEvent::TouchStart,
860 ack_handler_->acked_touch_event().event.type());
861 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
862
863 SendTouchEventACK(WebInputEvent::TouchMove, INPUT_EVENT_ACK_STATE_CONSUMED,
864 touch_move_event_id);
865 EXPECT_TRUE(TouchEventQueueEmpty()); 830 EXPECT_TRUE(TouchEventQueueEmpty());
866 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount()); 831 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount());
867 EXPECT_EQ(WebInputEvent::TouchMove, 832 EXPECT_EQ(WebInputEvent::TouchMove,
868 ack_handler_->acked_touch_event().event.type()); 833 ack_handler_->acked_touch_event().event.type());
869 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); 834 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
870 } 835 }
871 836
872 // Tests that the touch-queue is emptied after a page stops listening for touch 837 // Tests that the touch-queue is emptied after a page stops listening for touch
873 // events and the outstanding ack is received. 838 // events and the outstanding ack is received.
874 TEST_F(InputRouterImplTest, TouchEventQueueFlush) { 839 TEST_F(InputRouterImplTest, TouchEventQueueFlush) {
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
1083 WebInputEvent::GestureScrollBegin, 1048 WebInputEvent::GestureScrollBegin,
1084 WebInputEvent::GestureScrollUpdate, 1049 WebInputEvent::GestureScrollUpdate,
1085 WebInputEvent::GesturePinchBegin, 1050 WebInputEvent::GesturePinchBegin,
1086 WebInputEvent::GesturePinchUpdate, 1051 WebInputEvent::GesturePinchUpdate,
1087 WebInputEvent::GesturePinchEnd, 1052 WebInputEvent::GesturePinchEnd,
1088 WebInputEvent::GestureScrollEnd}; 1053 WebInputEvent::GestureScrollEnd};
1089 for (size_t i = 0; i < arraysize(eventTypes); ++i) { 1054 for (size_t i = 0; i < arraysize(eventTypes); ++i) {
1090 WebInputEvent::Type type = eventTypes[i]; 1055 WebInputEvent::Type type = eventTypes[i];
1091 if (WebInputEventTraits::ShouldBlockEventStream(GetEventWithType(type))) { 1056 if (WebInputEventTraits::ShouldBlockEventStream(GetEventWithType(type))) {
1092 SimulateGestureEvent(type, blink::WebGestureDeviceTouchscreen); 1057 SimulateGestureEvent(type, blink::WebGestureDeviceTouchscreen);
1093 if (type == WebInputEvent::GestureScrollUpdate) 1058 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
1094 EXPECT_EQ(2U, GetSentMessageCountAndResetSink());
1095 else
1096 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
1097 EXPECT_EQ(0U, ack_handler_->GetAndResetAckCount()); 1059 EXPECT_EQ(0U, ack_handler_->GetAndResetAckCount());
1098 EXPECT_EQ(1, client_->in_flight_event_count()); 1060 EXPECT_EQ(1, client_->in_flight_event_count());
1099 EXPECT_TRUE(HasPendingEvents()); 1061 EXPECT_TRUE(HasPendingEvents());
1100 1062
1101 SendInputEventACK(type, INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 1063 SendInputEventACK(type, INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
1102 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); 1064 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
1103 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount()); 1065 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount());
1104 EXPECT_EQ(0, client_->in_flight_event_count()); 1066 EXPECT_EQ(0, client_->in_flight_event_count());
1105 EXPECT_FALSE(HasPendingEvents()); 1067 EXPECT_FALSE(HasPendingEvents());
1106 continue; 1068 continue;
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
1172 // their ack disposition have been dispatched. 1134 // their ack disposition have been dispatched.
1173 1135
1174 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, 1136 SimulateGestureEvent(WebInputEvent::GestureScrollBegin,
1175 blink::WebGestureDeviceTouchscreen); 1137 blink::WebGestureDeviceTouchscreen);
1176 ASSERT_EQ(1U, GetSentMessageCountAndResetSink()); 1138 ASSERT_EQ(1U, GetSentMessageCountAndResetSink());
1177 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount()); 1139 EXPECT_EQ(1U, ack_handler_->GetAndResetAckCount());
1178 EXPECT_EQ(0, client_->in_flight_event_count()); 1140 EXPECT_EQ(0, client_->in_flight_event_count());
1179 1141
1180 SimulateGestureEvent(WebInputEvent::GestureScrollUpdate, 1142 SimulateGestureEvent(WebInputEvent::GestureScrollUpdate,
1181 blink::WebGestureDeviceTouchscreen); 1143 blink::WebGestureDeviceTouchscreen);
1182 ASSERT_EQ(2U, GetSentMessageCountAndResetSink()); 1144 ASSERT_EQ(1U, GetSentMessageCountAndResetSink());
1183 EXPECT_EQ(0U, ack_handler_->GetAndResetAckCount()); 1145 EXPECT_EQ(0U, ack_handler_->GetAndResetAckCount());
1184 EXPECT_EQ(1, client_->in_flight_event_count()); 1146 EXPECT_EQ(1, client_->in_flight_event_count());
1185 1147
1186 SimulateGestureEvent(WebInputEvent::GestureTapDown, 1148 SimulateGestureEvent(WebInputEvent::GestureTapDown,
1187 blink::WebGestureDeviceTouchscreen); 1149 blink::WebGestureDeviceTouchscreen);
1188 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); 1150 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
1189 EXPECT_EQ(0U, ack_handler_->GetAndResetAckCount()); 1151 EXPECT_EQ(0U, ack_handler_->GetAndResetAckCount());
1190 EXPECT_EQ(1, client_->in_flight_event_count()); 1152 EXPECT_EQ(1, client_->in_flight_event_count());
1191 1153
1192 SimulateGestureEvent(WebInputEvent::GestureScrollUpdate, 1154 SimulateGestureEvent(WebInputEvent::GestureScrollUpdate,
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
1424 ReleaseTouchPoint(0); 1386 ReleaseTouchPoint(0);
1425 uint32_t touch_release_event_id2 = SendTouchEvent(); 1387 uint32_t touch_release_event_id2 = SendTouchEvent();
1426 1388
1427 SendTouchEventACK(WebInputEvent::TouchStart, INPUT_EVENT_ACK_STATE_CONSUMED, 1389 SendTouchEventACK(WebInputEvent::TouchStart, INPUT_EVENT_ACK_STATE_CONSUMED,
1428 touch_press_event_id1); 1390 touch_press_event_id1);
1429 SendTouchEventACK(WebInputEvent::TouchMove, INPUT_EVENT_ACK_STATE_CONSUMED, 1391 SendTouchEventACK(WebInputEvent::TouchMove, INPUT_EVENT_ACK_STATE_CONSUMED,
1430 touch_move_event_id1); 1392 touch_move_event_id1);
1431 1393
1432 // Ensure touch action is still none, as the next touch start hasn't been 1394 // Ensure touch action is still none, as the next touch start hasn't been
1433 // acked yet. ScrollBegin and ScrollEnd don't require acks. 1395 // acked yet. ScrollBegin and ScrollEnd don't require acks.
1434 EXPECT_EQ(6U, GetSentMessageCountAndResetSink()); 1396 EXPECT_EQ(3U, GetSentMessageCountAndResetSink());
1435 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, 1397 SimulateGestureEvent(WebInputEvent::GestureScrollBegin,
1436 blink::WebGestureDeviceTouchscreen); 1398 blink::WebGestureDeviceTouchscreen);
1437 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); 1399 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
1438 SimulateGestureEvent(WebInputEvent::GestureScrollEnd, 1400 SimulateGestureEvent(WebInputEvent::GestureScrollEnd,
1439 blink::WebGestureDeviceTouchscreen); 1401 blink::WebGestureDeviceTouchscreen);
1440 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); 1402 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
1441 1403
1442 // This allows the next touch sequence to start. 1404 // This allows the next touch sequence to start.
1443 SendTouchEventACK(WebInputEvent::TouchEnd, INPUT_EVENT_ACK_STATE_CONSUMED, 1405 SendTouchEventACK(WebInputEvent::TouchEnd, INPUT_EVENT_ACK_STATE_CONSUMED,
1444 touch_release_event_id1); 1406 touch_release_event_id1);
1445 1407
1446 // Ensure touch action has been set to auto, as a new touch sequence has 1408 // Ensure touch action has been set to auto, as a new touch sequence has
1447 // started. 1409 // started.
1448 SendTouchEventACK(WebInputEvent::TouchStart, INPUT_EVENT_ACK_STATE_CONSUMED, 1410 SendTouchEventACK(WebInputEvent::TouchStart, INPUT_EVENT_ACK_STATE_CONSUMED,
1449 touch_press_event_id2); 1411 touch_press_event_id2);
1450 SendTouchEventACK(WebInputEvent::TouchMove, INPUT_EVENT_ACK_STATE_CONSUMED, 1412 SendTouchEventACK(WebInputEvent::TouchMove, INPUT_EVENT_ACK_STATE_CONSUMED,
1451 touch_move_event_id2); 1413 touch_move_event_id2);
1452 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); 1414 EXPECT_EQ(3U, GetSentMessageCountAndResetSink());
1453 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, 1415 SimulateGestureEvent(WebInputEvent::GestureScrollBegin,
1454 blink::WebGestureDeviceTouchscreen); 1416 blink::WebGestureDeviceTouchscreen);
1455 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 1417 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
1456 SimulateGestureEvent(WebInputEvent::GestureScrollEnd, 1418 SimulateGestureEvent(WebInputEvent::GestureScrollEnd,
1457 blink::WebGestureDeviceTouchscreen); 1419 blink::WebGestureDeviceTouchscreen);
1458 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 1420 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
1459 SendTouchEventACK(WebInputEvent::TouchEnd, INPUT_EVENT_ACK_STATE_CONSUMED, 1421 SendTouchEventACK(WebInputEvent::TouchEnd, INPUT_EVENT_ACK_STATE_CONSUMED,
1460 touch_release_event_id2); 1422 touch_release_event_id2);
1461 } 1423 }
1462 1424
(...skipping 19 matching lines...) Expand all
1482 // Sequence 2 1444 // Sequence 2
1483 PressTouchPoint(1, 1); 1445 PressTouchPoint(1, 1);
1484 uint32_t touch_press_event_id2 = SendTouchEvent(); 1446 uint32_t touch_press_event_id2 = SendTouchEvent();
1485 MoveTouchPoint(0, 50, 50); 1447 MoveTouchPoint(0, 50, 50);
1486 SendTouchEvent(); 1448 SendTouchEvent();
1487 ReleaseTouchPoint(0); 1449 ReleaseTouchPoint(0);
1488 SendTouchEvent(); 1450 SendTouchEvent();
1489 1451
1490 // Ensure we have touch-action:none. ScrollBegin and ScrollEnd don't require 1452 // Ensure we have touch-action:none. ScrollBegin and ScrollEnd don't require
1491 // acks. 1453 // acks.
1492 EXPECT_EQ(6U, GetSentMessageCountAndResetSink()); 1454 EXPECT_EQ(3U, GetSentMessageCountAndResetSink());
1493 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, 1455 SimulateGestureEvent(WebInputEvent::GestureScrollBegin,
1494 blink::WebGestureDeviceTouchscreen); 1456 blink::WebGestureDeviceTouchscreen);
1495 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); 1457 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
1496 SimulateGestureEvent(WebInputEvent::GestureScrollEnd, 1458 SimulateGestureEvent(WebInputEvent::GestureScrollEnd,
1497 blink::WebGestureDeviceTouchscreen); 1459 blink::WebGestureDeviceTouchscreen);
1498 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); 1460 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
1499 1461
1500 SendTouchEventACK(WebInputEvent::TouchEnd, INPUT_EVENT_ACK_STATE_CONSUMED, 1462 SendTouchEventACK(WebInputEvent::TouchEnd, INPUT_EVENT_ACK_STATE_CONSUMED,
1501 touch_release_event_id1); 1463 touch_release_event_id1);
1502 SendTouchEventACK(WebInputEvent::TouchStart, 1464 SendTouchEventACK(WebInputEvent::TouchStart,
1503 INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS, 1465 INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS,
1504 touch_press_event_id2); 1466 touch_press_event_id2);
1505 1467
1506 // Ensure touch action has been set to auto, as the touch had no consumer. 1468 // Ensure touch action has been set to auto, as the touch had no consumer.
1507 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); 1469 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
1508 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, 1470 SimulateGestureEvent(WebInputEvent::GestureScrollBegin,
1509 blink::WebGestureDeviceTouchscreen); 1471 blink::WebGestureDeviceTouchscreen);
1510 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 1472 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
1511 SimulateGestureEvent(WebInputEvent::GestureScrollEnd, 1473 SimulateGestureEvent(WebInputEvent::GestureScrollEnd,
1512 blink::WebGestureDeviceTouchscreen); 1474 blink::WebGestureDeviceTouchscreen);
1513 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 1475 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
1514 } 1476 }
1515 1477
1516 // Test that TouchActionFilter::ResetTouchAction is called when the touch 1478 // Test that TouchActionFilter::ResetTouchAction is called when the touch
1517 // handler is removed. 1479 // handler is removed.
1518 TEST_F(InputRouterImplTest, TouchActionResetWhenTouchHandlerRemoved) { 1480 TEST_F(InputRouterImplTest, TouchActionResetWhenTouchHandlerRemoved) {
1519 // Touch sequence with touch handler. 1481 // Touch sequence with touch handler.
1520 OnHasTouchEventHandlers(true); 1482 OnHasTouchEventHandlers(true);
1521 PressTouchPoint(1, 1); 1483 PressTouchPoint(1, 1);
1522 uint32_t touch_press_event_id = SendTouchEvent(); 1484 uint32_t touch_press_event_id = SendTouchEvent();
1523 MoveTouchPoint(0, 50, 50); 1485 MoveTouchPoint(0, 50, 50);
1524 uint32_t touch_move_event_id = SendTouchEvent(); 1486 uint32_t touch_move_event_id = SendTouchEvent();
1525 OnSetTouchAction(TOUCH_ACTION_NONE); 1487 OnSetTouchAction(TOUCH_ACTION_NONE);
1526 ReleaseTouchPoint(0); 1488 ReleaseTouchPoint(0);
1527 uint32_t touch_release_event_id = SendTouchEvent(); 1489 uint32_t touch_release_event_id = SendTouchEvent();
1528 EXPECT_EQ(3U, GetSentMessageCountAndResetSink()); 1490 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
1529 1491
1530 // Ensure we have touch-action:none, suppressing scroll events. 1492 // Ensure we have touch-action:none, suppressing scroll events.
1531 SendTouchEventACK(WebInputEvent::TouchStart, INPUT_EVENT_ACK_STATE_CONSUMED, 1493 SendTouchEventACK(WebInputEvent::TouchStart, INPUT_EVENT_ACK_STATE_CONSUMED,
1532 touch_press_event_id); 1494 touch_press_event_id);
1533 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); 1495 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
1534 SendTouchEventACK(WebInputEvent::TouchMove, 1496 SendTouchEventACK(WebInputEvent::TouchMove,
1535 INPUT_EVENT_ACK_STATE_NOT_CONSUMED, touch_move_event_id); 1497 INPUT_EVENT_ACK_STATE_NOT_CONSUMED, touch_move_event_id);
1536 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); 1498 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
1537 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, 1499 SimulateGestureEvent(WebInputEvent::GestureScrollBegin,
1538 blink::WebGestureDeviceTouchscreen); 1500 blink::WebGestureDeviceTouchscreen);
1539 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); 1501 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
1540 1502
1541 SendTouchEventACK(WebInputEvent::TouchEnd, INPUT_EVENT_ACK_STATE_NOT_CONSUMED, 1503 SendTouchEventACK(WebInputEvent::TouchEnd, INPUT_EVENT_ACK_STATE_NOT_CONSUMED,
1542 touch_release_event_id); 1504 touch_release_event_id);
1543 SimulateGestureEvent(WebInputEvent::GestureScrollEnd, 1505 SimulateGestureEvent(WebInputEvent::GestureScrollEnd,
1544 blink::WebGestureDeviceTouchscreen); 1506 blink::WebGestureDeviceTouchscreen);
1545 EXPECT_EQ(0U, GetSentMessageCountAndResetSink()); 1507 EXPECT_EQ(0U, GetSentMessageCountAndResetSink());
1546 1508
1547 // Sequence without a touch handler. Note that in this case, the view may not 1509 // Sequence without a touch handler. Note that in this case, the view may not
1548 // necessarily forward touches to the router (as no touch handler exists). 1510 // necessarily forward touches to the router (as no touch handler exists).
1549 OnHasTouchEventHandlers(false); 1511 OnHasTouchEventHandlers(false);
1550 1512
1551 // Ensure touch action has been set to auto, as the touch handler has been 1513 // Ensure touch action has been set to auto, as the touch handler has been
1552 // removed. 1514 // removed.
1553 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, 1515 SimulateGestureEvent(WebInputEvent::GestureScrollBegin,
1554 blink::WebGestureDeviceTouchscreen); 1516 blink::WebGestureDeviceTouchscreen);
1555 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 1517 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
1556 SimulateGestureEvent(WebInputEvent::GestureScrollEnd, 1518 SimulateGestureEvent(WebInputEvent::GestureScrollEnd,
1557 blink::WebGestureDeviceTouchscreen); 1519 blink::WebGestureDeviceTouchscreen);
1558 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); 1520 EXPECT_EQ(1U, GetSentMessageCountAndResetSink());
1559 } 1521 }
1560 1522
1561 // Test that the double tap gesture depends on the touch action of the first 1523 // Test that the double tap gesture depends on the touch action of the first
1562 // tap. 1524 // tap.
1563 TEST_F(InputRouterImplTest, DoubleTapGestureDependsOnFirstTap) { 1525 TEST_F(InputRouterImplRafAlignedTouchEnabledTest,
1526 DoubleTapGestureDependsOnFirstTap) {
1564 OnHasTouchEventHandlers(true); 1527 OnHasTouchEventHandlers(true);
1565 1528
1566 // Sequence 1. 1529 // Sequence 1.
1567 PressTouchPoint(1, 1); 1530 PressTouchPoint(1, 1);
1568 uint32_t touch_press_event_id1 = SendTouchEvent(); 1531 uint32_t touch_press_event_id1 = SendTouchEvent();
1569 OnSetTouchAction(TOUCH_ACTION_NONE); 1532 OnSetTouchAction(TOUCH_ACTION_NONE);
1570 SendTouchEventACK(WebInputEvent::TouchStart, INPUT_EVENT_ACK_STATE_CONSUMED, 1533 SendTouchEventACK(WebInputEvent::TouchStart, INPUT_EVENT_ACK_STATE_CONSUMED,
1571 touch_press_event_id1); 1534 touch_press_event_id1);
1572 1535
1573 ReleaseTouchPoint(0); 1536 ReleaseTouchPoint(0);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1620 // This test will become invalid if GestureDoubleTap stops requiring an ack. 1583 // This test will become invalid if GestureDoubleTap stops requiring an ack.
1621 ASSERT_TRUE(WebInputEventTraits::ShouldBlockEventStream( 1584 ASSERT_TRUE(WebInputEventTraits::ShouldBlockEventStream(
1622 GetEventWithType(WebInputEvent::GestureDoubleTap))); 1585 GetEventWithType(WebInputEvent::GestureDoubleTap)));
1623 EXPECT_EQ(1, client_->in_flight_event_count()); 1586 EXPECT_EQ(1, client_->in_flight_event_count());
1624 SendInputEventACK(WebInputEvent::GestureTap, INPUT_EVENT_ACK_STATE_CONSUMED); 1587 SendInputEventACK(WebInputEvent::GestureTap, INPUT_EVENT_ACK_STATE_CONSUMED);
1625 EXPECT_EQ(0, client_->in_flight_event_count()); 1588 EXPECT_EQ(0, client_->in_flight_event_count());
1626 } 1589 }
1627 1590
1628 // Test that the double tap gesture depends on the touch action of the first 1591 // Test that the double tap gesture depends on the touch action of the first
1629 // tap. 1592 // tap.
1630 TEST_F(InputRouterImplRafAlignedTouchDisabledTest, 1593 TEST_F(InputRouterImplTest, DoubleTapGestureDependsOnFirstTap) {
1631 DoubleTapGestureDependsOnFirstTap) {
1632 OnHasTouchEventHandlers(true); 1594 OnHasTouchEventHandlers(true);
1633 1595
1634 // Sequence 1. 1596 // Sequence 1.
1635 PressTouchPoint(1, 1); 1597 PressTouchPoint(1, 1);
1636 uint32_t touch_press_event_id1 = SendTouchEvent(); 1598 uint32_t touch_press_event_id1 = SendTouchEvent();
1637 OnSetTouchAction(TOUCH_ACTION_NONE); 1599 OnSetTouchAction(TOUCH_ACTION_NONE);
1638 SendTouchEventACK(WebInputEvent::TouchStart, INPUT_EVENT_ACK_STATE_CONSUMED, 1600 SendTouchEventACK(WebInputEvent::TouchStart, INPUT_EVENT_ACK_STATE_CONSUMED,
1639 touch_press_event_id1); 1601 touch_press_event_id1);
1640 1602
1641 ReleaseTouchPoint(0); 1603 ReleaseTouchPoint(0);
(...skipping 762 matching lines...) Expand 10 before | Expand all | Expand 10 after
2404 EXPECT_EQ(80, sent_event->data.flingStart.velocityY); 2366 EXPECT_EQ(80, sent_event->data.flingStart.velocityY);
2405 2367
2406 const WebGestureEvent* filter_event = 2368 const WebGestureEvent* filter_event =
2407 GetFilterWebInputEvent<WebGestureEvent>(); 2369 GetFilterWebInputEvent<WebGestureEvent>();
2408 TestLocationInFilterEvent(filter_event, orig); 2370 TestLocationInFilterEvent(filter_event, orig);
2409 EXPECT_EQ(30, filter_event->data.flingStart.velocityX); 2371 EXPECT_EQ(30, filter_event->data.flingStart.velocityX);
2410 EXPECT_EQ(40, filter_event->data.flingStart.velocityY); 2372 EXPECT_EQ(40, filter_event->data.flingStart.velocityY);
2411 } 2373 }
2412 2374
2413 } // namespace content 2375 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/browser/renderer_host/render_widget_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698