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

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

Issue 2782733002: MouseWheelEventQueue sends scrollEnd right away when latching is disabled. (Closed)
Patch Set: review comments addressed. Created 3 years, 8 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/mouse_wheel_event_queue.h" 5 #include "content/browser/renderer_host/input/mouse_wheel_event_queue.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 EXPECT_TRUE(event_in_flight()); 290 EXPECT_TRUE(event_in_flight());
291 EXPECT_EQ(0U, GetAndResetSentEventCount()); 291 EXPECT_EQ(0U, GetAndResetSentEventCount());
292 292
293 // Receive an ACK for the mouse wheel event and release the next 293 // Receive an ACK for the mouse wheel event and release the next
294 // mouse wheel event. 294 // mouse wheel event.
295 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 295 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
296 EXPECT_EQ(0U, queued_event_count()); 296 EXPECT_EQ(0U, queued_event_count());
297 EXPECT_TRUE(event_in_flight()); 297 EXPECT_TRUE(event_in_flight());
298 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); 298 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type());
299 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 299 EXPECT_EQ(1U, GetAndResetAckedEventCount());
300 EXPECT_EQ(3U, all_sent_events().size()); 300 if (scroll_latching_enabled_) {
301 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); 301 EXPECT_EQ(3U, all_sent_events().size());
302 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); 302 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0));
303 EXPECT_MOUSE_WHEEL(sent_input_event(2)); 303 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1));
304 EXPECT_EQ(3U, GetAndResetSentEventCount()); 304 EXPECT_MOUSE_WHEEL(sent_input_event(2));
305 EXPECT_EQ(3U, GetAndResetSentEventCount());
305 306
306 RunTasksAndWait(DefaultScrollEndTimeoutDelay() * 2); 307 RunTasksAndWait(DefaultScrollEndTimeoutDelay() * 2);
307 EXPECT_EQ(1U, all_sent_events().size()); 308 EXPECT_EQ(1U, all_sent_events().size());
308 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0)); 309 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0));
310 } else {
311 EXPECT_EQ(4U, all_sent_events().size());
312 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0));
313 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1));
314 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(2));
315 EXPECT_MOUSE_WHEEL(sent_input_event(3));
316 EXPECT_EQ(4U, GetAndResetSentEventCount());
317 }
309 } 318 }
310 319
311 void PhaseGestureSendingTest(bool high_precision) { 320 void PhaseGestureSendingTest(bool high_precision) {
312 const WebGestureEvent::ScrollUnits scroll_units = 321 const WebGestureEvent::ScrollUnits scroll_units =
313 high_precision ? WebGestureEvent::PrecisePixels 322 high_precision ? WebGestureEvent::PrecisePixels
314 : WebGestureEvent::Pixels; 323 : WebGestureEvent::Pixels;
315 324
316 SendMouseWheelWithPhase(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, 325 SendMouseWheelWithPhase(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX,
317 kWheelScrollGlobalY, 1, 1, 0, high_precision, 326 kWheelScrollGlobalY, 1, 1, 0, high_precision,
318 WebMouseWheelEvent::PhaseBegan, 327 WebMouseWheelEvent::PhaseBegan,
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 EXPECT_EQ(0U, queued_event_count()); 511 EXPECT_EQ(0U, queued_event_count());
503 EXPECT_TRUE(event_in_flight()); 512 EXPECT_TRUE(event_in_flight());
504 EXPECT_EQ(1U, GetAndResetSentEventCount()); 513 EXPECT_EQ(1U, GetAndResetSentEventCount());
505 514
506 // Receive an ACK for the mouse wheel event. 515 // Receive an ACK for the mouse wheel event.
507 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 516 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
508 EXPECT_EQ(0U, queued_event_count()); 517 EXPECT_EQ(0U, queued_event_count());
509 EXPECT_FALSE(event_in_flight()); 518 EXPECT_FALSE(event_in_flight());
510 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); 519 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type());
511 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 520 EXPECT_EQ(1U, GetAndResetAckedEventCount());
512 EXPECT_EQ(2U, all_sent_events().size()); 521 if (scroll_latching_enabled_) {
513 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); 522 EXPECT_EQ(2U, all_sent_events().size());
514 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); 523 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0));
515 EXPECT_EQ(2U, GetAndResetSentEventCount()); 524 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1));
525 EXPECT_EQ(2U, GetAndResetSentEventCount());
526 } else {
527 EXPECT_EQ(3U, all_sent_events().size());
528 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0));
529 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1));
530 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(2));
531 EXPECT_EQ(3U, GetAndResetSentEventCount());
532 }
516 533
517 // Ensure that a gesture scroll begin terminates the current scroll event. 534 // Ensure that a gesture scroll begin terminates the current scroll event.
518 SendGestureEvent(WebInputEvent::GestureScrollBegin); 535 SendGestureEvent(WebInputEvent::GestureScrollBegin);
519 EXPECT_EQ(1U, all_sent_events().size()); 536 if (scroll_latching_enabled_) {
520 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0)); 537 EXPECT_EQ(1U, all_sent_events().size());
521 EXPECT_EQ(1U, GetAndResetSentEventCount()); 538 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0));
539 EXPECT_EQ(1U, GetAndResetSentEventCount());
540 } else {
541 // ScrollEnd has already been sent.
542 EXPECT_EQ(0U, all_sent_events().size());
543 }
522 544
523 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, 545 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX,
524 kWheelScrollGlobalY, 1, 1, 0, false); 546 kWheelScrollGlobalY, 1, 1, 0, false);
525 EXPECT_EQ(0U, queued_event_count()); 547 EXPECT_EQ(0U, queued_event_count());
526 EXPECT_TRUE(event_in_flight()); 548 EXPECT_TRUE(event_in_flight());
527 EXPECT_EQ(1U, GetAndResetSentEventCount()); 549 EXPECT_EQ(1U, GetAndResetSentEventCount());
528 550
529 // New mouse wheel events won't cause gestures because a scroll 551 // New mouse wheel events won't cause gestures because a scroll
530 // is already in progress by another device. 552 // is already in progress by another device.
531 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 553 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
(...skipping 11 matching lines...) Expand all
543 EXPECT_EQ(0U, queued_event_count()); 565 EXPECT_EQ(0U, queued_event_count());
544 EXPECT_TRUE(event_in_flight()); 566 EXPECT_TRUE(event_in_flight());
545 EXPECT_EQ(1U, GetAndResetSentEventCount()); 567 EXPECT_EQ(1U, GetAndResetSentEventCount());
546 568
547 // Receive an ACK for the mouse wheel event. 569 // Receive an ACK for the mouse wheel event.
548 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 570 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
549 EXPECT_EQ(0U, queued_event_count()); 571 EXPECT_EQ(0U, queued_event_count());
550 EXPECT_FALSE(event_in_flight()); 572 EXPECT_FALSE(event_in_flight());
551 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); 573 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type());
552 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 574 EXPECT_EQ(1U, GetAndResetAckedEventCount());
553 EXPECT_EQ(2U, all_sent_events().size()); 575 if (scroll_latching_enabled_) {
554 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); 576 EXPECT_EQ(2U, all_sent_events().size());
555 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); 577 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0));
556 EXPECT_EQ(2U, GetAndResetSentEventCount()); 578 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1));
579 EXPECT_EQ(2U, GetAndResetSentEventCount());
580 } else {
581 EXPECT_EQ(3U, all_sent_events().size());
582 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0));
583 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1));
584 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(2));
585 EXPECT_EQ(3U, GetAndResetSentEventCount());
586 }
557 } 587 }
558 588
559 TEST_P(MouseWheelEventQueueTest, GestureRailScrolling) { 589 TEST_P(MouseWheelEventQueueTest, GestureRailScrolling) {
560 const WebGestureEvent::ScrollUnits scroll_units = WebGestureEvent::Pixels; 590 const WebGestureEvent::ScrollUnits scroll_units = WebGestureEvent::Pixels;
561 591
562 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, 592 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX,
563 kWheelScrollGlobalY, 1, 1, 0, false, 593 kWheelScrollGlobalY, 1, 1, 0, false,
564 WebInputEvent::RailsModeHorizontal); 594 WebInputEvent::RailsModeHorizontal);
565 EXPECT_EQ(0U, queued_event_count()); 595 EXPECT_EQ(0U, queued_event_count());
566 EXPECT_TRUE(event_in_flight()); 596 EXPECT_TRUE(event_in_flight());
567 EXPECT_EQ(1U, GetAndResetSentEventCount()); 597 EXPECT_EQ(1U, GetAndResetSentEventCount());
568 598
569 // Receive an ACK for the mouse wheel event. 599 // Receive an ACK for the mouse wheel event.
570 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 600 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
571 EXPECT_EQ(0U, queued_event_count()); 601 EXPECT_EQ(0U, queued_event_count());
572 EXPECT_FALSE(event_in_flight()); 602 EXPECT_FALSE(event_in_flight());
573 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); 603 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type());
574 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 604 EXPECT_EQ(1U, GetAndResetAckedEventCount());
575 EXPECT_EQ(2U, all_sent_events().size()); 605 if (scroll_latching_enabled_) {
576 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); 606 EXPECT_EQ(2U, all_sent_events().size());
577 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); 607 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0));
578 EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaX); 608 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1));
579 EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaY); 609 EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaX);
580 EXPECT_EQ(2U, GetAndResetSentEventCount()); 610 EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaY);
581 611 EXPECT_EQ(2U, GetAndResetSentEventCount());
582 RunTasksAndWait(DefaultScrollEndTimeoutDelay() * 2); 612 RunTasksAndWait(DefaultScrollEndTimeoutDelay() * 2);
583 EXPECT_EQ(1U, all_sent_events().size()); 613 EXPECT_EQ(1U, all_sent_events().size());
584 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0)); 614 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0));
585 EXPECT_EQ(1U, GetAndResetSentEventCount()); 615 EXPECT_EQ(1U, GetAndResetSentEventCount());
616 } else {
617 EXPECT_EQ(3U, all_sent_events().size());
618 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0));
619 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1));
620 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(2));
621 EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaX);
622 EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaY);
623 EXPECT_EQ(3U, GetAndResetSentEventCount());
624 }
586 625
587 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, 626 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX,
588 kWheelScrollGlobalY, 1, 1, 0, false, 627 kWheelScrollGlobalY, 1, 1, 0, false,
589 WebInputEvent::RailsModeVertical); 628 WebInputEvent::RailsModeVertical);
590 EXPECT_EQ(0U, queued_event_count()); 629 EXPECT_EQ(0U, queued_event_count());
591 EXPECT_TRUE(event_in_flight()); 630 EXPECT_TRUE(event_in_flight());
592 EXPECT_EQ(1U, GetAndResetSentEventCount()); 631 EXPECT_EQ(1U, GetAndResetSentEventCount());
593 632
594 // Receive an ACK for the mouse wheel event. 633 // Receive an ACK for the mouse wheel event.
595 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 634 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
596 EXPECT_EQ(0U, queued_event_count()); 635 EXPECT_EQ(0U, queued_event_count());
597 EXPECT_FALSE(event_in_flight()); 636 EXPECT_FALSE(event_in_flight());
598 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); 637 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type());
599 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 638 EXPECT_EQ(1U, GetAndResetAckedEventCount());
600 EXPECT_EQ(2U, all_sent_events().size()); 639 if (scroll_latching_enabled_) {
601 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); 640 EXPECT_EQ(2U, all_sent_events().size());
602 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); 641 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0));
642 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1));
643 } else {
644 EXPECT_EQ(3U, all_sent_events().size());
645 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0));
646 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1));
647 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(2));
648 }
603 EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaX); 649 EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaX);
604 EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaY); 650 EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaY);
605 EXPECT_EQ(2U, GetAndResetSentEventCount()); 651 if (scroll_latching_enabled_)
652 EXPECT_EQ(2U, GetAndResetSentEventCount());
653 else
654 EXPECT_EQ(3U, GetAndResetSentEventCount());
606 } 655 }
607 656
608 TEST_P(MouseWheelEventQueueTest, WheelScrollLatching) { 657 TEST_P(MouseWheelEventQueueTest, WheelScrollLatching) {
658 if (!scroll_latching_enabled_)
659 return;
660
609 const WebGestureEvent::ScrollUnits scroll_units = WebGestureEvent::Pixels; 661 const WebGestureEvent::ScrollUnits scroll_units = WebGestureEvent::Pixels;
610 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, 662 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX,
611 kWheelScrollGlobalY, 1, 1, 0, false, 663 kWheelScrollGlobalY, 1, 1, 0, false,
612 WebInputEvent::RailsModeVertical); 664 WebInputEvent::RailsModeVertical);
613 EXPECT_EQ(0U, queued_event_count()); 665 EXPECT_EQ(0U, queued_event_count());
614 EXPECT_TRUE(event_in_flight()); 666 EXPECT_TRUE(event_in_flight());
615 EXPECT_EQ(1U, GetAndResetSentEventCount()); 667 EXPECT_EQ(1U, GetAndResetSentEventCount());
616 668
617 // Receive an ACK for the mouse wheel event. 669 // Receive an ACK for the mouse wheel event.
618 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 670 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
619 EXPECT_EQ(0U, queued_event_count()); 671 EXPECT_EQ(0U, queued_event_count());
620 EXPECT_FALSE(event_in_flight()); 672 EXPECT_FALSE(event_in_flight());
621 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); 673 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type());
622 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 674 EXPECT_EQ(1U, GetAndResetAckedEventCount());
623 EXPECT_EQ(2U, all_sent_events().size()); 675 EXPECT_EQ(2U, all_sent_events().size());
624 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); 676 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0));
625 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1)); 677 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(1));
626 EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaX); 678 EXPECT_EQ(0U, sent_gesture_event(1)->data.scrollUpdate.deltaX);
627 EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaY); 679 EXPECT_EQ(1U, sent_gesture_event(1)->data.scrollUpdate.deltaY);
628 EXPECT_EQ(2U, GetAndResetSentEventCount()); 680 EXPECT_EQ(2U, GetAndResetSentEventCount());
629 681
630 RunTasksAndWait(base::TimeDelta::FromMilliseconds(1)); 682 RunTasksAndWait(DefaultScrollEndTimeoutDelay() / 2);
631 if (!scroll_latching_enabled_) { 683 EXPECT_EQ(0U, GetAndResetSentEventCount());
632 EXPECT_GESTURE_SCROLL_END(sent_gesture_event(0));
633 EXPECT_EQ(1U, GetAndResetSentEventCount());
634 } else {
635 EXPECT_EQ(0U, GetAndResetSentEventCount());
636 }
637 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX, 684 SendMouseWheel(kWheelScrollX, kWheelScrollY, kWheelScrollGlobalX,
638 kWheelScrollGlobalY, 1, 1, 0, false, 685 kWheelScrollGlobalY, 1, 1, 0, false,
639 WebInputEvent::RailsModeVertical); 686 WebInputEvent::RailsModeVertical);
640 EXPECT_EQ(0U, queued_event_count()); 687 EXPECT_EQ(0U, queued_event_count());
641 EXPECT_TRUE(event_in_flight()); 688 EXPECT_TRUE(event_in_flight());
642 EXPECT_EQ(1U, GetAndResetSentEventCount()); 689 EXPECT_EQ(1U, GetAndResetSentEventCount());
643 690
644 // Receive an ACK for the mouse wheel event. 691 // Receive an ACK for the mouse wheel event.
645 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); 692 SendMouseWheelEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED);
646 EXPECT_EQ(0U, queued_event_count()); 693 EXPECT_EQ(0U, queued_event_count());
647 EXPECT_FALSE(event_in_flight()); 694 EXPECT_FALSE(event_in_flight());
648 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type()); 695 EXPECT_EQ(WebInputEvent::MouseWheel, acked_event().type());
649 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 696 EXPECT_EQ(1U, GetAndResetAckedEventCount());
650 697
651 int updateEventIndex = -1; 698 // Scroll latching: no new scroll begin expected.
652 if (!scroll_latching_enabled_) { 699 EXPECT_EQ(1U, all_sent_events().size());
653 EXPECT_EQ(2U, all_sent_events().size()); 700 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(0));
654 EXPECT_GESTURE_SCROLL_BEGIN(sent_gesture_event(0)); 701 EXPECT_EQ(0U, sent_gesture_event(0)->data.scrollUpdate.deltaX);
655 updateEventIndex = 1; 702 EXPECT_EQ(1U, sent_gesture_event(0)->data.scrollUpdate.deltaY);
656 } else { 703 EXPECT_EQ(1U, GetAndResetSentEventCount());
657 // Scroll latching: no new scroll begin expected.
658 EXPECT_EQ(1U, all_sent_events().size());
659 updateEventIndex = 0;
660 }
661 EXPECT_GE(updateEventIndex, 0);
662 EXPECT_GESTURE_SCROLL_UPDATE(sent_gesture_event(updateEventIndex));
663 EXPECT_EQ(0U, sent_gesture_event(updateEventIndex)->data.scrollUpdate.deltaX);
664 EXPECT_EQ(1U, sent_gesture_event(updateEventIndex)->data.scrollUpdate.deltaY);
665 EXPECT_EQ(static_cast<size_t>(updateEventIndex + 1),
666 GetAndResetSentEventCount());
667 } 704 }
668 705
669 INSTANTIATE_TEST_CASE_P(MouseWheelEventQueueTests, 706 INSTANTIATE_TEST_CASE_P(MouseWheelEventQueueTests,
670 MouseWheelEventQueueTest, 707 MouseWheelEventQueueTest,
671 testing::Bool()); 708 testing::Bool());
672 709
673 } // namespace content 710 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698