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

Side by Side Diff: ui/aura/gestures/gesture_recognizer_unittest.cc

Issue 10928066: Add GestureTapCancel gesture type (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove the gesture_event_filter portions of this change since we don't have the WebKit side yet Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "base/memory/scoped_vector.h" 5 #include "base/memory/scoped_vector.h"
6 #include "base/string_number_conversions.h" 6 #include "base/string_number_conversions.h"
7 #include "base/timer.h" 7 #include "base/timer.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "ui/aura/root_window.h" 9 #include "ui/aura/root_window.h"
10 #include "ui/aura/test/aura_test_base.h" 10 #include "ui/aura/test/aura_test_base.h"
(...skipping 18 matching lines...) Expand all
29 return consumer && !consumer->ignores_events() ? 29 return consumer && !consumer->ignores_events() ?
30 base::IntToString(static_cast<Window*>(consumer)->id()) : "?"; 30 base::IntToString(static_cast<Window*>(consumer)->id()) : "?";
31 } 31 }
32 32
33 // A delegate that keeps track of gesture events. 33 // A delegate that keeps track of gesture events.
34 class GestureEventConsumeDelegate : public TestWindowDelegate { 34 class GestureEventConsumeDelegate : public TestWindowDelegate {
35 public: 35 public:
36 GestureEventConsumeDelegate() 36 GestureEventConsumeDelegate()
37 : tap_(false), 37 : tap_(false),
38 tap_down_(false), 38 tap_down_(false),
39 tap_cancel_(false),
39 begin_(false), 40 begin_(false),
40 end_(false), 41 end_(false),
41 double_tap_(false), 42 double_tap_(false),
42 scroll_begin_(false), 43 scroll_begin_(false),
43 scroll_update_(false), 44 scroll_update_(false),
44 scroll_end_(false), 45 scroll_end_(false),
45 pinch_begin_(false), 46 pinch_begin_(false),
46 pinch_update_(false), 47 pinch_update_(false),
47 pinch_end_(false), 48 pinch_end_(false),
48 long_press_(false), 49 long_press_(false),
(...skipping 10 matching lines...) Expand all
59 velocity_x_(0), 60 velocity_x_(0),
60 velocity_y_(0), 61 velocity_y_(0),
61 tap_count_(0) { 62 tap_count_(0) {
62 } 63 }
63 64
64 virtual ~GestureEventConsumeDelegate() {} 65 virtual ~GestureEventConsumeDelegate() {}
65 66
66 void Reset() { 67 void Reset() {
67 tap_ = false; 68 tap_ = false;
68 tap_down_ = false; 69 tap_down_ = false;
70 tap_cancel_ = false;
69 begin_ = false; 71 begin_ = false;
70 end_ = false; 72 end_ = false;
71 double_tap_ = false; 73 double_tap_ = false;
72 scroll_begin_ = false; 74 scroll_begin_ = false;
73 scroll_update_ = false; 75 scroll_update_ = false;
74 scroll_end_ = false; 76 scroll_end_ = false;
75 pinch_begin_ = false; 77 pinch_begin_ = false;
76 pinch_update_ = false; 78 pinch_update_ = false;
77 pinch_end_ = false; 79 pinch_end_ = false;
78 long_press_ = false; 80 long_press_ = false;
(...skipping 11 matching lines...) Expand all
90 scroll_y_ = 0; 92 scroll_y_ = 0;
91 scroll_velocity_x_ = 0; 93 scroll_velocity_x_ = 0;
92 scroll_velocity_y_ = 0; 94 scroll_velocity_y_ = 0;
93 velocity_x_ = 0; 95 velocity_x_ = 0;
94 velocity_y_ = 0; 96 velocity_y_ = 0;
95 tap_count_ = 0; 97 tap_count_ = 0;
96 } 98 }
97 99
98 bool tap() const { return tap_; } 100 bool tap() const { return tap_; }
99 bool tap_down() const { return tap_down_; } 101 bool tap_down() const { return tap_down_; }
102 bool tap_cancel() const { return tap_cancel_; }
100 bool begin() const { return begin_; } 103 bool begin() const { return begin_; }
101 bool end() const { return end_; } 104 bool end() const { return end_; }
102 bool double_tap() const { return double_tap_; } 105 bool double_tap() const { return double_tap_; }
103 bool scroll_begin() const { return scroll_begin_; } 106 bool scroll_begin() const { return scroll_begin_; }
104 bool scroll_update() const { return scroll_update_; } 107 bool scroll_update() const { return scroll_update_; }
105 bool scroll_end() const { return scroll_end_; } 108 bool scroll_end() const { return scroll_end_; }
106 bool pinch_begin() const { return pinch_begin_; } 109 bool pinch_begin() const { return pinch_begin_; }
107 bool pinch_update() const { return pinch_update_; } 110 bool pinch_update() const { return pinch_update_; }
108 bool pinch_end() const { return pinch_end_; } 111 bool pinch_end() const { return pinch_end_; }
109 bool long_press() const { return long_press_; } 112 bool long_press() const { return long_press_; }
(...skipping 27 matching lines...) Expand all
137 bounding_box_ = gesture->details().bounding_box(); 140 bounding_box_ = gesture->details().bounding_box();
138 switch (gesture->type()) { 141 switch (gesture->type()) {
139 case ui::ET_GESTURE_TAP: 142 case ui::ET_GESTURE_TAP:
140 tap_location_ = gesture->location(); 143 tap_location_ = gesture->location();
141 tap_count_ = gesture->details().tap_count(); 144 tap_count_ = gesture->details().tap_count();
142 tap_ = true; 145 tap_ = true;
143 break; 146 break;
144 case ui::ET_GESTURE_TAP_DOWN: 147 case ui::ET_GESTURE_TAP_DOWN:
145 tap_down_ = true; 148 tap_down_ = true;
146 break; 149 break;
150 case ui::ET_GESTURE_TAP_CANCEL:
151 tap_cancel_ = true;
152 break;
147 case ui::ET_GESTURE_BEGIN: 153 case ui::ET_GESTURE_BEGIN:
148 begin_ = true; 154 begin_ = true;
149 break; 155 break;
150 case ui::ET_GESTURE_END: 156 case ui::ET_GESTURE_END:
151 end_ = true; 157 end_ = true;
152 break; 158 break;
153 case ui::ET_GESTURE_DOUBLE_TAP: 159 case ui::ET_GESTURE_DOUBLE_TAP:
154 double_tap_ = true; 160 double_tap_ = true;
155 break; 161 break;
156 case ui::ET_GESTURE_SCROLL_BEGIN: 162 case ui::ET_GESTURE_SCROLL_BEGIN:
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 break; 206 break;
201 default: 207 default:
202 NOTREACHED(); 208 NOTREACHED();
203 } 209 }
204 return ui::ER_CONSUMED; 210 return ui::ER_CONSUMED;
205 } 211 }
206 212
207 private: 213 private:
208 bool tap_; 214 bool tap_;
209 bool tap_down_; 215 bool tap_down_;
216 bool tap_cancel_;
210 bool begin_; 217 bool begin_;
211 bool end_; 218 bool end_;
212 bool double_tap_; 219 bool double_tap_;
213 bool scroll_begin_; 220 bool scroll_begin_;
214 bool scroll_update_; 221 bool scroll_update_;
215 bool scroll_end_; 222 bool scroll_end_;
216 bool pinch_begin_; 223 bool pinch_begin_;
217 bool pinch_update_; 224 bool pinch_update_;
218 bool pinch_end_; 225 bool pinch_end_;
219 bool long_press_; 226 bool long_press_;
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight); 453 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight);
447 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate( 454 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
448 delegate.get(), -1234, bounds, NULL)); 455 delegate.get(), -1234, bounds, NULL));
449 456
450 delegate->Reset(); 457 delegate->Reset();
451 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201), 458 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
452 kTouchId, GetTime()); 459 kTouchId, GetTime());
453 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press); 460 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press);
454 EXPECT_FALSE(delegate->tap()); 461 EXPECT_FALSE(delegate->tap());
455 EXPECT_TRUE(delegate->tap_down()); 462 EXPECT_TRUE(delegate->tap_down());
463 EXPECT_FALSE(delegate->tap_cancel());
456 EXPECT_TRUE(delegate->begin()); 464 EXPECT_TRUE(delegate->begin());
457 EXPECT_FALSE(delegate->double_tap()); 465 EXPECT_FALSE(delegate->double_tap());
458 EXPECT_FALSE(delegate->scroll_begin()); 466 EXPECT_FALSE(delegate->scroll_begin());
459 EXPECT_FALSE(delegate->scroll_update()); 467 EXPECT_FALSE(delegate->scroll_update());
460 EXPECT_FALSE(delegate->scroll_end()); 468 EXPECT_FALSE(delegate->scroll_end());
461 EXPECT_FALSE(delegate->long_press()); 469 EXPECT_FALSE(delegate->long_press());
462 470
463 // Make sure there is enough delay before the touch is released so that it is 471 // Make sure there is enough delay before the touch is released so that it is
464 // recognized as a tap. 472 // recognized as a tap.
465 delegate->Reset(); 473 delegate->Reset();
466 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 474 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
467 kTouchId, press.time_stamp() + 475 kTouchId, press.time_stamp() +
468 base::TimeDelta::FromMilliseconds(50)); 476 base::TimeDelta::FromMilliseconds(50));
469 477
470 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release); 478 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release);
471 EXPECT_TRUE(delegate->tap()); 479 EXPECT_TRUE(delegate->tap());
472 EXPECT_FALSE(delegate->tap_down()); 480 EXPECT_FALSE(delegate->tap_down());
481 EXPECT_FALSE(delegate->tap_cancel());
473 EXPECT_FALSE(delegate->begin()); 482 EXPECT_FALSE(delegate->begin());
474 EXPECT_TRUE(delegate->end()); 483 EXPECT_TRUE(delegate->end());
475 EXPECT_FALSE(delegate->double_tap()); 484 EXPECT_FALSE(delegate->double_tap());
476 EXPECT_FALSE(delegate->scroll_begin()); 485 EXPECT_FALSE(delegate->scroll_begin());
477 EXPECT_FALSE(delegate->scroll_update()); 486 EXPECT_FALSE(delegate->scroll_update());
478 EXPECT_FALSE(delegate->scroll_end()); 487 EXPECT_FALSE(delegate->scroll_end());
479 488
480 EXPECT_EQ(1, delegate->tap_count()); 489 EXPECT_EQ(1, delegate->tap_count());
481 } 490 }
482 491
(...skipping 12 matching lines...) Expand all
495 // Test with no ET_TOUCH_MOVED events. 504 // Test with no ET_TOUCH_MOVED events.
496 { 505 {
497 delegate->Reset(); 506 delegate->Reset();
498 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201), 507 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
499 kTouchId, GetTime()); 508 kTouchId, GetTime());
500 press.set_radius_x(5); 509 press.set_radius_x(5);
501 press.set_radius_y(12); 510 press.set_radius_y(12);
502 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press); 511 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press);
503 EXPECT_FALSE(delegate->tap()); 512 EXPECT_FALSE(delegate->tap());
504 EXPECT_TRUE(delegate->tap_down()); 513 EXPECT_TRUE(delegate->tap_down());
514 EXPECT_FALSE(delegate->tap_cancel());
505 EXPECT_TRUE(delegate->begin()); 515 EXPECT_TRUE(delegate->begin());
506 EXPECT_FALSE(delegate->double_tap()); 516 EXPECT_FALSE(delegate->double_tap());
507 EXPECT_FALSE(delegate->scroll_begin()); 517 EXPECT_FALSE(delegate->scroll_begin());
508 EXPECT_FALSE(delegate->scroll_update()); 518 EXPECT_FALSE(delegate->scroll_update());
509 EXPECT_FALSE(delegate->scroll_end()); 519 EXPECT_FALSE(delegate->scroll_end());
510 EXPECT_FALSE(delegate->long_press()); 520 EXPECT_FALSE(delegate->long_press());
511 521
512 // Make sure there is enough delay before the touch is released so that it 522 // Make sure there is enough delay before the touch is released so that it
513 // is recognized as a tap. 523 // is recognized as a tap.
514 delegate->Reset(); 524 delegate->Reset();
515 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 525 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
516 kTouchId, press.time_stamp() + 526 kTouchId, press.time_stamp() +
517 base::TimeDelta::FromMilliseconds(50)); 527 base::TimeDelta::FromMilliseconds(50));
518 release.set_radius_x(5); 528 release.set_radius_x(5);
519 release.set_radius_y(12); 529 release.set_radius_y(12);
520 530
521 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release); 531 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release);
522 EXPECT_TRUE(delegate->tap()); 532 EXPECT_TRUE(delegate->tap());
523 EXPECT_FALSE(delegate->tap_down()); 533 EXPECT_FALSE(delegate->tap_down());
534 EXPECT_FALSE(delegate->tap_cancel());
524 EXPECT_FALSE(delegate->begin()); 535 EXPECT_FALSE(delegate->begin());
525 EXPECT_TRUE(delegate->end()); 536 EXPECT_TRUE(delegate->end());
526 EXPECT_FALSE(delegate->double_tap()); 537 EXPECT_FALSE(delegate->double_tap());
527 EXPECT_FALSE(delegate->scroll_begin()); 538 EXPECT_FALSE(delegate->scroll_begin());
528 EXPECT_FALSE(delegate->scroll_update()); 539 EXPECT_FALSE(delegate->scroll_update());
529 EXPECT_FALSE(delegate->scroll_end()); 540 EXPECT_FALSE(delegate->scroll_end());
530 541
531 EXPECT_EQ(1, delegate->tap_count()); 542 EXPECT_EQ(1, delegate->tap_count());
532 gfx::Point actual_point(delegate->tap_location()); 543 gfx::Point actual_point(delegate->tap_location());
533 EXPECT_EQ(24, delegate->bounding_box().width()); 544 EXPECT_EQ(24, delegate->bounding_box().width());
534 EXPECT_EQ(24, delegate->bounding_box().height()); 545 EXPECT_EQ(24, delegate->bounding_box().height());
535 EXPECT_EQ(100, actual_point.x()); 546 EXPECT_EQ(100, actual_point.x());
536 EXPECT_EQ(200, actual_point.y()); 547 EXPECT_EQ(200, actual_point.y());
537 } 548 }
538 549
539 // Test with no ET_TOUCH_MOVED events but different touch points and radii. 550 // Test with no ET_TOUCH_MOVED events but different touch points and radii.
540 { 551 {
541 delegate->Reset(); 552 delegate->Reset();
542 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(365, 290), 553 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(365, 290),
543 kTouchId, GetTime()); 554 kTouchId, GetTime());
544 press.set_radius_x(8); 555 press.set_radius_x(8);
545 press.set_radius_y(14); 556 press.set_radius_y(14);
546 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press); 557 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press);
547 EXPECT_FALSE(delegate->tap()); 558 EXPECT_FALSE(delegate->tap());
548 EXPECT_TRUE(delegate->tap_down()); 559 EXPECT_TRUE(delegate->tap_down());
560 EXPECT_FALSE(delegate->tap_cancel());
549 EXPECT_TRUE(delegate->begin()); 561 EXPECT_TRUE(delegate->begin());
550 EXPECT_FALSE(delegate->double_tap()); 562 EXPECT_FALSE(delegate->double_tap());
551 EXPECT_FALSE(delegate->scroll_begin()); 563 EXPECT_FALSE(delegate->scroll_begin());
552 EXPECT_FALSE(delegate->scroll_update()); 564 EXPECT_FALSE(delegate->scroll_update());
553 EXPECT_FALSE(delegate->scroll_end()); 565 EXPECT_FALSE(delegate->scroll_end());
554 EXPECT_FALSE(delegate->long_press()); 566 EXPECT_FALSE(delegate->long_press());
555 567
556 delegate->Reset(); 568 delegate->Reset();
557 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(367, 291), 569 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(367, 291),
558 kTouchId, press.time_stamp() + 570 kTouchId, press.time_stamp() +
559 base::TimeDelta::FromMilliseconds(50)); 571 base::TimeDelta::FromMilliseconds(50));
560 release.set_radius_x(20); 572 release.set_radius_x(20);
561 release.set_radius_y(13); 573 release.set_radius_y(13);
562 574
563 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release); 575 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release);
564 EXPECT_TRUE(delegate->tap()); 576 EXPECT_TRUE(delegate->tap());
565 EXPECT_FALSE(delegate->tap_down()); 577 EXPECT_FALSE(delegate->tap_down());
578 EXPECT_FALSE(delegate->tap_cancel());
566 EXPECT_FALSE(delegate->begin()); 579 EXPECT_FALSE(delegate->begin());
567 EXPECT_TRUE(delegate->end()); 580 EXPECT_TRUE(delegate->end());
568 EXPECT_FALSE(delegate->double_tap()); 581 EXPECT_FALSE(delegate->double_tap());
569 EXPECT_FALSE(delegate->scroll_begin()); 582 EXPECT_FALSE(delegate->scroll_begin());
570 EXPECT_FALSE(delegate->scroll_update()); 583 EXPECT_FALSE(delegate->scroll_update());
571 EXPECT_FALSE(delegate->scroll_end()); 584 EXPECT_FALSE(delegate->scroll_end());
572 585
573 EXPECT_EQ(1, delegate->tap_count()); 586 EXPECT_EQ(1, delegate->tap_count());
574 gfx::Point actual_point(delegate->tap_location()); 587 gfx::Point actual_point(delegate->tap_location());
575 EXPECT_EQ(40, delegate->bounding_box().width()); 588 EXPECT_EQ(40, delegate->bounding_box().width());
576 EXPECT_EQ(40, delegate->bounding_box().height()); 589 EXPECT_EQ(40, delegate->bounding_box().height());
577 EXPECT_EQ(366, actual_point.x()); 590 EXPECT_EQ(366, actual_point.x());
578 EXPECT_EQ(290, actual_point.y()); 591 EXPECT_EQ(290, actual_point.y());
579 } 592 }
580 593
581 // Test with a single ET_TOUCH_MOVED event. 594 // Test with a single ET_TOUCH_MOVED event.
582 { 595 {
583 delegate->Reset(); 596 delegate->Reset();
584 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(46, 205), 597 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(46, 205),
585 kTouchId, GetTime()); 598 kTouchId, GetTime());
586 press.set_radius_x(6); 599 press.set_radius_x(6);
587 press.set_radius_y(10); 600 press.set_radius_y(10);
588 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press); 601 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press);
589 EXPECT_FALSE(delegate->tap()); 602 EXPECT_FALSE(delegate->tap());
590 EXPECT_TRUE(delegate->tap_down()); 603 EXPECT_TRUE(delegate->tap_down());
604 EXPECT_FALSE(delegate->tap_cancel());
591 EXPECT_TRUE(delegate->begin()); 605 EXPECT_TRUE(delegate->begin());
606 EXPECT_FALSE(delegate->tap_cancel());
592 EXPECT_FALSE(delegate->double_tap()); 607 EXPECT_FALSE(delegate->double_tap());
593 EXPECT_FALSE(delegate->scroll_begin()); 608 EXPECT_FALSE(delegate->scroll_begin());
594 EXPECT_FALSE(delegate->scroll_update()); 609 EXPECT_FALSE(delegate->scroll_update());
595 EXPECT_FALSE(delegate->scroll_end()); 610 EXPECT_FALSE(delegate->scroll_end());
596 EXPECT_FALSE(delegate->long_press()); 611 EXPECT_FALSE(delegate->long_press());
597 612
598 delegate->Reset(); 613 delegate->Reset();
599 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(49, 204), 614 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(49, 204),
600 kTouchId, press.time_stamp() + 615 kTouchId, press.time_stamp() +
601 base::TimeDelta::FromMilliseconds(50)); 616 base::TimeDelta::FromMilliseconds(50));
602 move.set_radius_x(8); 617 move.set_radius_x(8);
603 move.set_radius_y(12); 618 move.set_radius_y(12);
604 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move); 619 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move);
605 EXPECT_FALSE(delegate->tap()); 620 EXPECT_FALSE(delegate->tap());
606 EXPECT_FALSE(delegate->tap_down()); 621 EXPECT_FALSE(delegate->tap_down());
622 EXPECT_FALSE(delegate->tap_cancel());
607 EXPECT_FALSE(delegate->begin()); 623 EXPECT_FALSE(delegate->begin());
608 EXPECT_FALSE(delegate->double_tap()); 624 EXPECT_FALSE(delegate->double_tap());
609 EXPECT_FALSE(delegate->scroll_begin()); 625 EXPECT_FALSE(delegate->scroll_begin());
610 EXPECT_FALSE(delegate->scroll_update()); 626 EXPECT_FALSE(delegate->scroll_update());
611 EXPECT_FALSE(delegate->scroll_end()); 627 EXPECT_FALSE(delegate->scroll_end());
612 EXPECT_FALSE(delegate->long_press()); 628 EXPECT_FALSE(delegate->long_press());
613 629
614 delegate->Reset(); 630 delegate->Reset();
615 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(49, 204), 631 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(49, 204),
616 kTouchId, press.time_stamp() + 632 kTouchId, press.time_stamp() +
617 base::TimeDelta::FromMilliseconds(50)); 633 base::TimeDelta::FromMilliseconds(50));
618 release.set_radius_x(4); 634 release.set_radius_x(4);
619 release.set_radius_y(8); 635 release.set_radius_y(8);
620 636
621 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release); 637 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release);
622 EXPECT_TRUE(delegate->tap()); 638 EXPECT_TRUE(delegate->tap());
623 EXPECT_FALSE(delegate->tap_down()); 639 EXPECT_FALSE(delegate->tap_down());
640 EXPECT_FALSE(delegate->tap_cancel());
624 EXPECT_FALSE(delegate->begin()); 641 EXPECT_FALSE(delegate->begin());
625 EXPECT_TRUE(delegate->end()); 642 EXPECT_TRUE(delegate->end());
626 EXPECT_FALSE(delegate->double_tap()); 643 EXPECT_FALSE(delegate->double_tap());
627 EXPECT_FALSE(delegate->scroll_begin()); 644 EXPECT_FALSE(delegate->scroll_begin());
628 EXPECT_FALSE(delegate->scroll_update()); 645 EXPECT_FALSE(delegate->scroll_update());
629 EXPECT_FALSE(delegate->scroll_end()); 646 EXPECT_FALSE(delegate->scroll_end());
630 647
631 EXPECT_EQ(1, delegate->tap_count()); 648 EXPECT_EQ(1, delegate->tap_count());
632 gfx::Point actual_point(delegate->tap_location()); 649 gfx::Point actual_point(delegate->tap_location());
633 EXPECT_EQ(25, delegate->bounding_box().width()); 650 EXPECT_EQ(25, delegate->bounding_box().width());
634 EXPECT_EQ(24, delegate->bounding_box().height()); 651 EXPECT_EQ(24, delegate->bounding_box().height());
635 EXPECT_EQ(48, actual_point.x()); 652 EXPECT_EQ(48, actual_point.x());
636 EXPECT_EQ(203, actual_point.y()); 653 EXPECT_EQ(203, actual_point.y());
637 } 654 }
638 655
639 // Test with a few ET_TOUCH_MOVED events. 656 // Test with a few ET_TOUCH_MOVED events.
640 { 657 {
641 delegate->Reset(); 658 delegate->Reset();
642 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(400, 150), 659 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(400, 150),
643 kTouchId, GetTime()); 660 kTouchId, GetTime());
644 press.set_radius_x(7); 661 press.set_radius_x(7);
645 press.set_radius_y(10); 662 press.set_radius_y(10);
646 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press); 663 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press);
647 EXPECT_FALSE(delegate->tap()); 664 EXPECT_FALSE(delegate->tap());
648 EXPECT_TRUE(delegate->tap_down()); 665 EXPECT_TRUE(delegate->tap_down());
666 EXPECT_FALSE(delegate->tap_cancel());
649 EXPECT_TRUE(delegate->begin()); 667 EXPECT_TRUE(delegate->begin());
650 EXPECT_FALSE(delegate->double_tap()); 668 EXPECT_FALSE(delegate->double_tap());
651 EXPECT_FALSE(delegate->scroll_begin()); 669 EXPECT_FALSE(delegate->scroll_begin());
652 EXPECT_FALSE(delegate->scroll_update()); 670 EXPECT_FALSE(delegate->scroll_update());
653 EXPECT_FALSE(delegate->scroll_end()); 671 EXPECT_FALSE(delegate->scroll_end());
654 EXPECT_FALSE(delegate->long_press()); 672 EXPECT_FALSE(delegate->long_press());
655 673
656 delegate->Reset(); 674 delegate->Reset();
657 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(397, 151), 675 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(397, 151),
658 kTouchId, press.time_stamp() + 676 kTouchId, press.time_stamp() +
659 base::TimeDelta::FromMilliseconds(50)); 677 base::TimeDelta::FromMilliseconds(50));
660 move.set_radius_x(13); 678 move.set_radius_x(13);
661 move.set_radius_y(12); 679 move.set_radius_y(12);
662 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move); 680 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move);
663 EXPECT_FALSE(delegate->tap()); 681 EXPECT_FALSE(delegate->tap());
664 EXPECT_FALSE(delegate->tap_down()); 682 EXPECT_FALSE(delegate->tap_down());
683 EXPECT_FALSE(delegate->tap_cancel());
665 EXPECT_FALSE(delegate->begin()); 684 EXPECT_FALSE(delegate->begin());
666 EXPECT_FALSE(delegate->double_tap()); 685 EXPECT_FALSE(delegate->double_tap());
667 EXPECT_FALSE(delegate->scroll_begin()); 686 EXPECT_FALSE(delegate->scroll_begin());
668 EXPECT_FALSE(delegate->scroll_update()); 687 EXPECT_FALSE(delegate->scroll_update());
669 EXPECT_FALSE(delegate->scroll_end()); 688 EXPECT_FALSE(delegate->scroll_end());
670 EXPECT_FALSE(delegate->long_press()); 689 EXPECT_FALSE(delegate->long_press());
671 690
672 delegate->Reset(); 691 delegate->Reset();
673 ui::TouchEvent move1(ui::ET_TOUCH_MOVED, gfx::Point(397, 149), 692 ui::TouchEvent move1(ui::ET_TOUCH_MOVED, gfx::Point(397, 149),
674 kTouchId, move.time_stamp() + 693 kTouchId, move.time_stamp() +
675 base::TimeDelta::FromMilliseconds(50)); 694 base::TimeDelta::FromMilliseconds(50));
676 move1.set_radius_x(16); 695 move1.set_radius_x(16);
677 move1.set_radius_y(16); 696 move1.set_radius_y(16);
678 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move1); 697 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move1);
679 EXPECT_FALSE(delegate->tap()); 698 EXPECT_FALSE(delegate->tap());
680 EXPECT_FALSE(delegate->tap_down()); 699 EXPECT_FALSE(delegate->tap_down());
700 EXPECT_FALSE(delegate->tap_cancel());
681 EXPECT_FALSE(delegate->begin()); 701 EXPECT_FALSE(delegate->begin());
682 EXPECT_FALSE(delegate->double_tap()); 702 EXPECT_FALSE(delegate->double_tap());
683 EXPECT_FALSE(delegate->scroll_begin()); 703 EXPECT_FALSE(delegate->scroll_begin());
684 EXPECT_FALSE(delegate->scroll_update()); 704 EXPECT_FALSE(delegate->scroll_update());
685 EXPECT_FALSE(delegate->scroll_end()); 705 EXPECT_FALSE(delegate->scroll_end());
686 EXPECT_FALSE(delegate->long_press()); 706 EXPECT_FALSE(delegate->long_press());
687 707
688 delegate->Reset(); 708 delegate->Reset();
689 ui::TouchEvent move2(ui::ET_TOUCH_MOVED, gfx::Point(400, 150), 709 ui::TouchEvent move2(ui::ET_TOUCH_MOVED, gfx::Point(400, 150),
690 kTouchId, move1.time_stamp() + 710 kTouchId, move1.time_stamp() +
691 base::TimeDelta::FromMilliseconds(50)); 711 base::TimeDelta::FromMilliseconds(50));
692 move2.set_radius_x(14); 712 move2.set_radius_x(14);
693 move2.set_radius_y(10); 713 move2.set_radius_y(10);
694 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move2); 714 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move2);
695 EXPECT_FALSE(delegate->tap()); 715 EXPECT_FALSE(delegate->tap());
696 EXPECT_FALSE(delegate->tap_down()); 716 EXPECT_FALSE(delegate->tap_down());
717 EXPECT_FALSE(delegate->tap_cancel());
697 EXPECT_FALSE(delegate->begin()); 718 EXPECT_FALSE(delegate->begin());
698 EXPECT_FALSE(delegate->double_tap()); 719 EXPECT_FALSE(delegate->double_tap());
699 EXPECT_FALSE(delegate->scroll_begin()); 720 EXPECT_FALSE(delegate->scroll_begin());
700 EXPECT_FALSE(delegate->scroll_update()); 721 EXPECT_FALSE(delegate->scroll_update());
701 EXPECT_FALSE(delegate->scroll_end()); 722 EXPECT_FALSE(delegate->scroll_end());
702 EXPECT_FALSE(delegate->long_press()); 723 EXPECT_FALSE(delegate->long_press());
703 724
704 delegate->Reset(); 725 delegate->Reset();
705 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(401, 149), 726 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(401, 149),
706 kTouchId, press.time_stamp() + 727 kTouchId, press.time_stamp() +
707 base::TimeDelta::FromMilliseconds(50)); 728 base::TimeDelta::FromMilliseconds(50));
708 release.set_radius_x(8); 729 release.set_radius_x(8);
709 release.set_radius_y(9); 730 release.set_radius_y(9);
710 731
711 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release); 732 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release);
712 EXPECT_TRUE(delegate->tap()); 733 EXPECT_TRUE(delegate->tap());
713 EXPECT_FALSE(delegate->tap_down()); 734 EXPECT_FALSE(delegate->tap_down());
735 EXPECT_FALSE(delegate->tap_cancel());
714 EXPECT_FALSE(delegate->begin()); 736 EXPECT_FALSE(delegate->begin());
715 EXPECT_TRUE(delegate->end()); 737 EXPECT_TRUE(delegate->end());
716 EXPECT_FALSE(delegate->double_tap()); 738 EXPECT_FALSE(delegate->double_tap());
717 EXPECT_FALSE(delegate->scroll_begin()); 739 EXPECT_FALSE(delegate->scroll_begin());
718 EXPECT_FALSE(delegate->scroll_update()); 740 EXPECT_FALSE(delegate->scroll_update());
719 EXPECT_FALSE(delegate->scroll_end()); 741 EXPECT_FALSE(delegate->scroll_end());
720 742
721 EXPECT_EQ(1, delegate->tap_count()); 743 EXPECT_EQ(1, delegate->tap_count());
722 gfx::Point actual_point(delegate->tap_location()); 744 gfx::Point actual_point(delegate->tap_location());
723 EXPECT_EQ(33, delegate->bounding_box().width()); 745 EXPECT_EQ(33, delegate->bounding_box().width());
(...skipping 13 matching lines...) Expand all
737 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight); 759 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight);
738 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate( 760 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
739 delegate.get(), -1234, bounds, NULL)); 761 delegate.get(), -1234, bounds, NULL));
740 762
741 delegate->Reset(); 763 delegate->Reset();
742 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201), 764 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
743 kTouchId, GetTime()); 765 kTouchId, GetTime());
744 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press); 766 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press);
745 EXPECT_FALSE(delegate->tap()); 767 EXPECT_FALSE(delegate->tap());
746 EXPECT_TRUE(delegate->tap_down()); 768 EXPECT_TRUE(delegate->tap_down());
769 EXPECT_FALSE(delegate->tap_cancel());
747 EXPECT_TRUE(delegate->begin()); 770 EXPECT_TRUE(delegate->begin());
748 EXPECT_FALSE(delegate->double_tap()); 771 EXPECT_FALSE(delegate->double_tap());
749 EXPECT_FALSE(delegate->scroll_begin()); 772 EXPECT_FALSE(delegate->scroll_begin());
750 EXPECT_FALSE(delegate->scroll_update()); 773 EXPECT_FALSE(delegate->scroll_update());
751 EXPECT_FALSE(delegate->scroll_end()); 774 EXPECT_FALSE(delegate->scroll_end());
752 775
753 // Move the touch-point enough so that it is considered as a scroll. This 776 // Move the touch-point enough so that it is considered as a scroll. This
754 // should generate both SCROLL_BEGIN and SCROLL_UPDATE gestures. 777 // should generate both SCROLL_BEGIN and SCROLL_UPDATE gestures.
755 // The first movement is diagonal, to ensure that we have a free scroll, 778 // The first movement is diagonal, to ensure that we have a free scroll,
756 // and not a rail scroll. 779 // and not a rail scroll.
757 SendScrollEvent(root_window(), 130, 230, kTouchId, delegate.get()); 780 SendScrollEvent(root_window(), 130, 230, kTouchId, delegate.get());
758 EXPECT_FALSE(delegate->tap()); 781 EXPECT_FALSE(delegate->tap());
759 EXPECT_FALSE(delegate->tap_down()); 782 EXPECT_FALSE(delegate->tap_down());
783 EXPECT_TRUE(delegate->tap_cancel());
760 EXPECT_FALSE(delegate->begin()); 784 EXPECT_FALSE(delegate->begin());
761 EXPECT_FALSE(delegate->double_tap()); 785 EXPECT_FALSE(delegate->double_tap());
762 EXPECT_TRUE(delegate->scroll_begin()); 786 EXPECT_TRUE(delegate->scroll_begin());
763 EXPECT_TRUE(delegate->scroll_update()); 787 EXPECT_TRUE(delegate->scroll_update());
764 EXPECT_FALSE(delegate->scroll_end()); 788 EXPECT_FALSE(delegate->scroll_end());
765 EXPECT_EQ(29, delegate->scroll_x()); 789 EXPECT_EQ(29, delegate->scroll_x());
766 EXPECT_EQ(29, delegate->scroll_y()); 790 EXPECT_EQ(29, delegate->scroll_y());
767 EXPECT_EQ(0, delegate->scroll_velocity_x()); 791 EXPECT_EQ(0, delegate->scroll_velocity_x());
768 EXPECT_EQ(0, delegate->scroll_velocity_y()); 792 EXPECT_EQ(0, delegate->scroll_velocity_y());
769 EXPECT_EQ(gfx::Point(1, 1).ToString(), 793 EXPECT_EQ(gfx::Point(1, 1).ToString(),
770 delegate->scroll_begin_position().ToString()); 794 delegate->scroll_begin_position().ToString());
771 795
772 // When scrolling with a single finger, the bounding box of the gesture should 796 // When scrolling with a single finger, the bounding box of the gesture should
773 // be empty, since it's a single point and the radius for testing is zero. 797 // be empty, since it's a single point and the radius for testing is zero.
774 EXPECT_TRUE(delegate->bounding_box().IsEmpty()); 798 EXPECT_TRUE(delegate->bounding_box().IsEmpty());
775 799
776 // Move some more to generate a few more scroll updates. 800 // Move some more to generate a few more scroll updates.
777 SendScrollEvent(root_window(), 110, 211, kTouchId, delegate.get()); 801 SendScrollEvent(root_window(), 110, 211, kTouchId, delegate.get());
778 EXPECT_FALSE(delegate->tap()); 802 EXPECT_FALSE(delegate->tap());
779 EXPECT_FALSE(delegate->tap_down()); 803 EXPECT_FALSE(delegate->tap_down());
804 EXPECT_FALSE(delegate->tap_cancel());
780 EXPECT_FALSE(delegate->begin()); 805 EXPECT_FALSE(delegate->begin());
781 EXPECT_FALSE(delegate->double_tap()); 806 EXPECT_FALSE(delegate->double_tap());
782 EXPECT_FALSE(delegate->scroll_begin()); 807 EXPECT_FALSE(delegate->scroll_begin());
783 EXPECT_TRUE(delegate->scroll_update()); 808 EXPECT_TRUE(delegate->scroll_update());
784 EXPECT_FALSE(delegate->scroll_end()); 809 EXPECT_FALSE(delegate->scroll_end());
785 EXPECT_EQ(-20, delegate->scroll_x()); 810 EXPECT_EQ(-20, delegate->scroll_x());
786 EXPECT_EQ(-19, delegate->scroll_y()); 811 EXPECT_EQ(-19, delegate->scroll_y());
787 EXPECT_TRUE(delegate->bounding_box().IsEmpty()); 812 EXPECT_TRUE(delegate->bounding_box().IsEmpty());
788 813
789 SendScrollEvent(root_window(), 140, 215, kTouchId, delegate.get()); 814 SendScrollEvent(root_window(), 140, 215, kTouchId, delegate.get());
790 EXPECT_FALSE(delegate->tap()); 815 EXPECT_FALSE(delegate->tap());
791 EXPECT_FALSE(delegate->tap_down()); 816 EXPECT_FALSE(delegate->tap_down());
817 EXPECT_FALSE(delegate->tap_cancel());
792 EXPECT_FALSE(delegate->begin()); 818 EXPECT_FALSE(delegate->begin());
793 EXPECT_FALSE(delegate->double_tap()); 819 EXPECT_FALSE(delegate->double_tap());
794 EXPECT_FALSE(delegate->scroll_begin()); 820 EXPECT_FALSE(delegate->scroll_begin());
795 EXPECT_TRUE(delegate->scroll_update()); 821 EXPECT_TRUE(delegate->scroll_update());
796 EXPECT_FALSE(delegate->scroll_end()); 822 EXPECT_FALSE(delegate->scroll_end());
797 EXPECT_EQ(30, delegate->scroll_x()); 823 EXPECT_EQ(30, delegate->scroll_x());
798 EXPECT_EQ(4, delegate->scroll_y()); 824 EXPECT_EQ(4, delegate->scroll_y());
799 EXPECT_TRUE(delegate->bounding_box().IsEmpty()); 825 EXPECT_TRUE(delegate->bounding_box().IsEmpty());
800 826
801 // Release the touch. This should end the scroll. 827 // Release the touch. This should end the scroll.
802 delegate->Reset(); 828 delegate->Reset();
803 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 829 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
804 kTouchId, press.time_stamp() + 830 kTouchId, press.time_stamp() +
805 base::TimeDelta::FromMilliseconds(50)); 831 base::TimeDelta::FromMilliseconds(50));
806 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release); 832 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release);
807 EXPECT_FALSE(delegate->tap()); 833 EXPECT_FALSE(delegate->tap());
808 EXPECT_FALSE(delegate->tap_down()); 834 EXPECT_FALSE(delegate->tap_down());
835 EXPECT_FALSE(delegate->tap_cancel());
809 EXPECT_FALSE(delegate->begin()); 836 EXPECT_FALSE(delegate->begin());
810 EXPECT_TRUE(delegate->end()); 837 EXPECT_TRUE(delegate->end());
811 EXPECT_FALSE(delegate->double_tap()); 838 EXPECT_FALSE(delegate->double_tap());
812 EXPECT_FALSE(delegate->scroll_begin()); 839 EXPECT_FALSE(delegate->scroll_begin());
813 EXPECT_FALSE(delegate->scroll_update()); 840 EXPECT_FALSE(delegate->scroll_update());
814 EXPECT_TRUE(delegate->scroll_end()); 841 EXPECT_TRUE(delegate->scroll_end());
815 EXPECT_TRUE(delegate->bounding_box().IsEmpty()); 842 EXPECT_TRUE(delegate->bounding_box().IsEmpty());
816 } 843 }
817 844
818 // Check that the bounding box during a scroll event is correct. 845 // Check that the bounding box during a scroll event is correct.
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
1005 static_cast<TimerTestGestureSequence*>( 1032 static_cast<TimerTestGestureSequence*>(
1006 gesture_recognizer->GetGestureSequenceForTesting(window.get())); 1033 gesture_recognizer->GetGestureSequenceForTesting(window.get()));
1007 1034
1008 root_window()->SetGestureRecognizerForTesting(gesture_recognizer); 1035 root_window()->SetGestureRecognizerForTesting(gesture_recognizer);
1009 1036
1010 ui::TouchEvent press1(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201), 1037 ui::TouchEvent press1(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
1011 kTouchId, GetTime()); 1038 kTouchId, GetTime());
1012 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press1); 1039 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press1);
1013 EXPECT_TRUE(delegate->tap_down()); 1040 EXPECT_TRUE(delegate->tap_down());
1014 EXPECT_TRUE(delegate->begin()); 1041 EXPECT_TRUE(delegate->begin());
1042 EXPECT_FALSE(delegate->tap_cancel());
1015 1043
1016 // We haven't pressed long enough for a long press to occur 1044 // We haven't pressed long enough for a long press to occur
1017 EXPECT_FALSE(delegate->long_press()); 1045 EXPECT_FALSE(delegate->long_press());
1018 1046
1019 // Wait until the timer runs out 1047 // Wait until the timer runs out
1020 gesture_sequence->ForceTimeout(); 1048 gesture_sequence->ForceTimeout();
1021 EXPECT_TRUE(delegate->long_press()); 1049 EXPECT_TRUE(delegate->long_press());
1022 EXPECT_EQ(0, delegate->touch_id()); 1050 EXPECT_EQ(0, delegate->touch_id());
1051 EXPECT_FALSE(delegate->tap_cancel());
1023 1052
1024 delegate->Reset(); 1053 delegate->Reset();
1025 ui::TouchEvent release1(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 1054 ui::TouchEvent release1(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
1026 kTouchId, GetTime()); 1055 kTouchId, GetTime());
1027 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release1); 1056 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release1);
1028 EXPECT_FALSE(delegate->long_press()); 1057 EXPECT_FALSE(delegate->long_press());
1058
1059 // Note the tap down isn't cancelled until the release
1060 EXPECT_TRUE(delegate->tap_cancel());
1029 } 1061 }
1030 1062
1031 // Check that scrolling cancels a long press 1063 // Check that scrolling cancels a long press
1032 TEST_F(GestureRecognizerTest, GestureEventLongPressCancelledByScroll) { 1064 TEST_F(GestureRecognizerTest, GestureEventLongPressCancelledByScroll) {
1033 scoped_ptr<GestureEventConsumeDelegate> delegate( 1065 scoped_ptr<GestureEventConsumeDelegate> delegate(
1034 new GestureEventConsumeDelegate()); 1066 new GestureEventConsumeDelegate());
1035 const int kWindowWidth = 123; 1067 const int kWindowWidth = 123;
1036 const int kWindowHeight = 45; 1068 const int kWindowHeight = 45;
1037 const int kTouchId = 6; 1069 const int kTouchId = 6;
1038 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight); 1070 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight);
(...skipping 10 matching lines...) Expand all
1049 1081
1050 root_window()->SetGestureRecognizerForTesting(gesture_recognizer); 1082 root_window()->SetGestureRecognizerForTesting(gesture_recognizer);
1051 1083
1052 ui::TouchEvent press1(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201), 1084 ui::TouchEvent press1(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
1053 kTouchId, GetTime()); 1085 kTouchId, GetTime());
1054 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press1); 1086 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press1);
1055 EXPECT_TRUE(delegate->tap_down()); 1087 EXPECT_TRUE(delegate->tap_down());
1056 1088
1057 // We haven't pressed long enough for a long press to occur 1089 // We haven't pressed long enough for a long press to occur
1058 EXPECT_FALSE(delegate->long_press()); 1090 EXPECT_FALSE(delegate->long_press());
1091 EXPECT_FALSE(delegate->tap_cancel());
1059 1092
1060 // Scroll around, to cancel the long press 1093 // Scroll around, to cancel the long press
1061 SendScrollEvent(root_window(), 130, 230, kTouchId, delegate.get()); 1094 SendScrollEvent(root_window(), 130, 230, kTouchId, delegate.get());
1062 // Wait until the timer runs out 1095 // Wait until the timer runs out
1063 gesture_sequence->ForceTimeout(); 1096 gesture_sequence->ForceTimeout();
1064 EXPECT_FALSE(delegate->long_press()); 1097 EXPECT_FALSE(delegate->long_press());
1098 EXPECT_TRUE(delegate->tap_cancel());
1065 1099
1066 delegate->Reset(); 1100 delegate->Reset();
1067 ui::TouchEvent release1(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 1101 ui::TouchEvent release1(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
1068 kTouchId, GetTime()); 1102 kTouchId, GetTime());
1069 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release1); 1103 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release1);
1070 EXPECT_FALSE(delegate->long_press()); 1104 EXPECT_FALSE(delegate->long_press());
1105 EXPECT_FALSE(delegate->tap_cancel());
1071 } 1106 }
1072 1107
1073 // Check that second tap cancels a long press 1108 // Check that second tap cancels a long press
1074 TEST_F(GestureRecognizerTest, GestureEventLongPressCancelledBySecondTap) { 1109 TEST_F(GestureRecognizerTest, GestureEventLongPressCancelledBySecondTap) {
1075 scoped_ptr<GestureEventConsumeDelegate> delegate( 1110 scoped_ptr<GestureEventConsumeDelegate> delegate(
1076 new GestureEventConsumeDelegate()); 1111 new GestureEventConsumeDelegate());
1077 const int kWindowWidth = 300; 1112 const int kWindowWidth = 300;
1078 const int kWindowHeight = 400; 1113 const int kWindowHeight = 400;
1079 const int kTouchId1 = 8; 1114 const int kTouchId1 = 8;
1080 const int kTouchId2 = 2; 1115 const int kTouchId2 = 2;
(...skipping 18 matching lines...) Expand all
1099 1134
1100 // We haven't pressed long enough for a long press to occur 1135 // We haven't pressed long enough for a long press to occur
1101 EXPECT_FALSE(delegate->long_press()); 1136 EXPECT_FALSE(delegate->long_press());
1102 1137
1103 // Second tap, to cancel the long press 1138 // Second tap, to cancel the long press
1104 delegate->Reset(); 1139 delegate->Reset();
1105 ui::TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(10, 10), 1140 ui::TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(10, 10),
1106 kTouchId2, GetTime()); 1141 kTouchId2, GetTime());
1107 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2); 1142 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2);
1108 EXPECT_FALSE(delegate->tap_down()); // no touch down for second tap. 1143 EXPECT_FALSE(delegate->tap_down()); // no touch down for second tap.
1144 EXPECT_TRUE(delegate->tap_cancel());
1109 EXPECT_TRUE(delegate->begin()); 1145 EXPECT_TRUE(delegate->begin());
1110 1146
1111 // Wait until the timer runs out 1147 // Wait until the timer runs out
1112 gesture_sequence->ForceTimeout(); 1148 gesture_sequence->ForceTimeout();
1113 1149
1114 // No long press occurred 1150 // No long press occurred
1115 EXPECT_FALSE(delegate->long_press()); 1151 EXPECT_FALSE(delegate->long_press());
1116 1152
1117 delegate->Reset(); 1153 delegate->Reset();
1118 ui::TouchEvent release1(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 1154 ui::TouchEvent release1(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
1119 kTouchId1, GetTime()); 1155 kTouchId1, GetTime());
1120 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release1); 1156 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release1);
1121 EXPECT_FALSE(delegate->long_press()); 1157 EXPECT_FALSE(delegate->long_press());
1122 EXPECT_TRUE(delegate->two_finger_tap()); 1158 EXPECT_TRUE(delegate->two_finger_tap());
1159 EXPECT_FALSE(delegate->tap_cancel());
1123 } 1160 }
1124 1161
1125 // Check that horizontal scroll gestures cause scrolls on horizontal rails. 1162 // Check that horizontal scroll gestures cause scrolls on horizontal rails.
1126 // Also tests that horizontal rails can be broken. 1163 // Also tests that horizontal rails can be broken.
1127 TEST_F(GestureRecognizerTest, GestureEventHorizontalRailScroll) { 1164 TEST_F(GestureRecognizerTest, GestureEventHorizontalRailScroll) {
1128 scoped_ptr<GestureEventConsumeDelegate> delegate( 1165 scoped_ptr<GestureEventConsumeDelegate> delegate(
1129 new GestureEventConsumeDelegate()); 1166 new GestureEventConsumeDelegate());
1130 const int kTouchId = 7; 1167 const int kTouchId = 7;
1131 gfx::Rect bounds(0, 0, 1000, 1000); 1168 gfx::Rect bounds(0, 0, 1000, 1000);
1132 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate( 1169 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
1226 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight); 1263 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight);
1227 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate( 1264 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
1228 delegate.get(), -1234, bounds, NULL)); 1265 delegate.get(), -1234, bounds, NULL));
1229 1266
1230 delegate->Reset(); 1267 delegate->Reset();
1231 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201), 1268 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
1232 kTouchId, GetTime()); 1269 kTouchId, GetTime());
1233 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press); 1270 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press);
1234 EXPECT_FALSE(delegate->tap()); 1271 EXPECT_FALSE(delegate->tap());
1235 EXPECT_TRUE(delegate->tap_down()); 1272 EXPECT_TRUE(delegate->tap_down());
1273 EXPECT_FALSE(delegate->tap_cancel());
1236 EXPECT_FALSE(delegate->double_tap()); 1274 EXPECT_FALSE(delegate->double_tap());
1237 EXPECT_FALSE(delegate->scroll_begin()); 1275 EXPECT_FALSE(delegate->scroll_begin());
1238 EXPECT_FALSE(delegate->scroll_update()); 1276 EXPECT_FALSE(delegate->scroll_update());
1239 EXPECT_FALSE(delegate->scroll_end()); 1277 EXPECT_FALSE(delegate->scroll_end());
1240 1278
1241 // Make sure there is enough delay before the touch is released so that it is 1279 // Make sure there is enough delay before the touch is released so that it is
1242 // recognized as a tap. 1280 // recognized as a tap.
1243 delegate->Reset(); 1281 delegate->Reset();
1244 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 1282 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
1245 kTouchId, press.time_stamp() + 1283 kTouchId, press.time_stamp() +
1246 base::TimeDelta::FromMilliseconds(50)); 1284 base::TimeDelta::FromMilliseconds(50));
1247 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release); 1285 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release);
1248 EXPECT_TRUE(delegate->tap()); 1286 EXPECT_TRUE(delegate->tap());
1249 EXPECT_FALSE(delegate->tap_down()); 1287 EXPECT_FALSE(delegate->tap_down());
1288 EXPECT_FALSE(delegate->tap_cancel());
1250 EXPECT_FALSE(delegate->double_tap()); 1289 EXPECT_FALSE(delegate->double_tap());
1251 EXPECT_FALSE(delegate->scroll_begin()); 1290 EXPECT_FALSE(delegate->scroll_begin());
1252 EXPECT_FALSE(delegate->scroll_update()); 1291 EXPECT_FALSE(delegate->scroll_update());
1253 EXPECT_FALSE(delegate->scroll_end()); 1292 EXPECT_FALSE(delegate->scroll_end());
1254 1293
1255 // Now, do a scroll gesture. Delay it sufficiently so that it doesn't trigger 1294 // Now, do a scroll gesture. Delay it sufficiently so that it doesn't trigger
1256 // a double-tap. 1295 // a double-tap.
1257 delegate->Reset(); 1296 delegate->Reset();
1258 ui::TouchEvent press1(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201), 1297 ui::TouchEvent press1(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
1259 kTouchId, release.time_stamp() + 1298 kTouchId, release.time_stamp() +
1260 base::TimeDelta::FromMilliseconds(1000)); 1299 base::TimeDelta::FromMilliseconds(1000));
1261 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press1); 1300 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press1);
1262 EXPECT_FALSE(delegate->tap()); 1301 EXPECT_FALSE(delegate->tap());
1263 EXPECT_TRUE(delegate->tap_down()); 1302 EXPECT_TRUE(delegate->tap_down());
1303 EXPECT_FALSE(delegate->tap_cancel());
1264 EXPECT_FALSE(delegate->double_tap()); 1304 EXPECT_FALSE(delegate->double_tap());
1265 EXPECT_FALSE(delegate->scroll_begin()); 1305 EXPECT_FALSE(delegate->scroll_begin());
1266 EXPECT_FALSE(delegate->scroll_update()); 1306 EXPECT_FALSE(delegate->scroll_update());
1267 EXPECT_FALSE(delegate->scroll_end()); 1307 EXPECT_FALSE(delegate->scroll_end());
1268 1308
1269 // Move the touch-point enough so that it is considered as a scroll. This 1309 // Move the touch-point enough so that it is considered as a scroll. This
1270 // should generate both SCROLL_BEGIN and SCROLL_UPDATE gestures. 1310 // should generate both SCROLL_BEGIN and SCROLL_UPDATE gestures.
1271 // The first movement is diagonal, to ensure that we have a free scroll, 1311 // The first movement is diagonal, to ensure that we have a free scroll,
1272 // and not a rail scroll. 1312 // and not a rail scroll.
1273 delegate->Reset(); 1313 delegate->Reset();
1274 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(130, 230), 1314 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(130, 230),
1275 kTouchId, GetTime()); 1315 kTouchId, GetTime());
1276 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move); 1316 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move);
1277 EXPECT_FALSE(delegate->tap()); 1317 EXPECT_FALSE(delegate->tap());
1278 EXPECT_FALSE(delegate->tap_down()); 1318 EXPECT_FALSE(delegate->tap_down());
1319 EXPECT_TRUE(delegate->tap_cancel());
1279 EXPECT_FALSE(delegate->double_tap()); 1320 EXPECT_FALSE(delegate->double_tap());
1280 EXPECT_TRUE(delegate->scroll_begin()); 1321 EXPECT_TRUE(delegate->scroll_begin());
1281 EXPECT_TRUE(delegate->scroll_update()); 1322 EXPECT_TRUE(delegate->scroll_update());
1282 EXPECT_FALSE(delegate->scroll_end()); 1323 EXPECT_FALSE(delegate->scroll_end());
1283 EXPECT_EQ(29, delegate->scroll_x()); 1324 EXPECT_EQ(29, delegate->scroll_x());
1284 EXPECT_EQ(29, delegate->scroll_y()); 1325 EXPECT_EQ(29, delegate->scroll_y());
1285 1326
1286 // Move some more to generate a few more scroll updates. 1327 // Move some more to generate a few more scroll updates.
1287 delegate->Reset(); 1328 delegate->Reset();
1288 ui::TouchEvent move1(ui::ET_TOUCH_MOVED, gfx::Point(110, 211), 1329 ui::TouchEvent move1(ui::ET_TOUCH_MOVED, gfx::Point(110, 211),
1289 kTouchId, GetTime()); 1330 kTouchId, GetTime());
1290 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move1); 1331 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move1);
1291 EXPECT_FALSE(delegate->tap()); 1332 EXPECT_FALSE(delegate->tap());
1292 EXPECT_FALSE(delegate->tap_down()); 1333 EXPECT_FALSE(delegate->tap_down());
1334 EXPECT_FALSE(delegate->tap_cancel());
1293 EXPECT_FALSE(delegate->double_tap()); 1335 EXPECT_FALSE(delegate->double_tap());
1294 EXPECT_FALSE(delegate->scroll_begin()); 1336 EXPECT_FALSE(delegate->scroll_begin());
1295 EXPECT_TRUE(delegate->scroll_update()); 1337 EXPECT_TRUE(delegate->scroll_update());
1296 EXPECT_FALSE(delegate->scroll_end()); 1338 EXPECT_FALSE(delegate->scroll_end());
1297 EXPECT_EQ(-20, delegate->scroll_x()); 1339 EXPECT_EQ(-20, delegate->scroll_x());
1298 EXPECT_EQ(-19, delegate->scroll_y()); 1340 EXPECT_EQ(-19, delegate->scroll_y());
1299 1341
1300 delegate->Reset(); 1342 delegate->Reset();
1301 ui::TouchEvent move2(ui::ET_TOUCH_MOVED, gfx::Point(140, 215), 1343 ui::TouchEvent move2(ui::ET_TOUCH_MOVED, gfx::Point(140, 215),
1302 kTouchId, GetTime()); 1344 kTouchId, GetTime());
1303 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move2); 1345 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move2);
1304 EXPECT_FALSE(delegate->tap()); 1346 EXPECT_FALSE(delegate->tap());
1305 EXPECT_FALSE(delegate->tap_down()); 1347 EXPECT_FALSE(delegate->tap_down());
1348 EXPECT_FALSE(delegate->tap_cancel());
1306 EXPECT_FALSE(delegate->double_tap()); 1349 EXPECT_FALSE(delegate->double_tap());
1307 EXPECT_FALSE(delegate->scroll_begin()); 1350 EXPECT_FALSE(delegate->scroll_begin());
1308 EXPECT_TRUE(delegate->scroll_update()); 1351 EXPECT_TRUE(delegate->scroll_update());
1309 EXPECT_FALSE(delegate->scroll_end()); 1352 EXPECT_FALSE(delegate->scroll_end());
1310 EXPECT_EQ(30, delegate->scroll_x()); 1353 EXPECT_EQ(30, delegate->scroll_x());
1311 EXPECT_EQ(4, delegate->scroll_y()); 1354 EXPECT_EQ(4, delegate->scroll_y());
1312 1355
1313 // Release the touch. This should end the scroll. 1356 // Release the touch. This should end the scroll.
1314 delegate->Reset(); 1357 delegate->Reset();
1315 ui::TouchEvent release1(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 1358 ui::TouchEvent release1(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
1316 kTouchId, GetTime()); 1359 kTouchId, GetTime());
1317 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release1); 1360 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release1);
1318 EXPECT_FALSE(delegate->tap()); 1361 EXPECT_FALSE(delegate->tap());
1319 EXPECT_FALSE(delegate->tap_down()); 1362 EXPECT_FALSE(delegate->tap_down());
1363 EXPECT_FALSE(delegate->tap_cancel());
1320 EXPECT_FALSE(delegate->double_tap()); 1364 EXPECT_FALSE(delegate->double_tap());
1321 EXPECT_FALSE(delegate->scroll_begin()); 1365 EXPECT_FALSE(delegate->scroll_begin());
1322 EXPECT_FALSE(delegate->scroll_update()); 1366 EXPECT_FALSE(delegate->scroll_update());
1323 EXPECT_TRUE(delegate->scroll_end()); 1367 EXPECT_TRUE(delegate->scroll_end());
1324 } 1368 }
1325 1369
1326 TEST_F(GestureRecognizerTest, AsynchronousGestureRecognition) { 1370 TEST_F(GestureRecognizerTest, AsynchronousGestureRecognition) {
1327 scoped_ptr<QueueTouchEventDelegate> queued_delegate( 1371 scoped_ptr<QueueTouchEventDelegate> queued_delegate(
1328 new QueueTouchEventDelegate(root_window())); 1372 new QueueTouchEventDelegate(root_window()));
1329 const int kWindowWidth = 123; 1373 const int kWindowWidth = 123;
1330 const int kWindowHeight = 45; 1374 const int kWindowHeight = 45;
1331 const int kTouchId1 = 6; 1375 const int kTouchId1 = 6;
1332 const int kTouchId2 = 4; 1376 const int kTouchId2 = 4;
1333 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight); 1377 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight);
1334 scoped_ptr<aura::Window> queue(CreateTestWindowWithDelegate( 1378 scoped_ptr<aura::Window> queue(CreateTestWindowWithDelegate(
1335 queued_delegate.get(), -1234, bounds, NULL)); 1379 queued_delegate.get(), -1234, bounds, NULL));
1336 1380
1337 queued_delegate->set_window(queue.get()); 1381 queued_delegate->set_window(queue.get());
1338 1382
1339 // Touch down on the window. This should not generate any gesture event. 1383 // Touch down on the window. This should not generate any gesture event.
1340 queued_delegate->Reset(); 1384 queued_delegate->Reset();
1341 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201), 1385 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
1342 kTouchId1, GetTime()); 1386 kTouchId1, GetTime());
1343 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press); 1387 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press);
1344 EXPECT_FALSE(queued_delegate->tap()); 1388 EXPECT_FALSE(queued_delegate->tap());
1345 EXPECT_FALSE(queued_delegate->tap_down()); 1389 EXPECT_FALSE(queued_delegate->tap_down());
1390 EXPECT_FALSE(queued_delegate->tap_cancel());
1346 EXPECT_FALSE(queued_delegate->begin()); 1391 EXPECT_FALSE(queued_delegate->begin());
1347 EXPECT_FALSE(queued_delegate->double_tap()); 1392 EXPECT_FALSE(queued_delegate->double_tap());
1348 EXPECT_FALSE(queued_delegate->scroll_begin()); 1393 EXPECT_FALSE(queued_delegate->scroll_begin());
1349 EXPECT_FALSE(queued_delegate->scroll_update()); 1394 EXPECT_FALSE(queued_delegate->scroll_update());
1350 EXPECT_FALSE(queued_delegate->scroll_end()); 1395 EXPECT_FALSE(queued_delegate->scroll_end());
1351 1396
1352 // Introduce some delay before the touch is released so that it is recognized 1397 // Introduce some delay before the touch is released so that it is recognized
1353 // as a tap. However, this still should not create any gesture events. 1398 // as a tap. However, this still should not create any gesture events.
1354 queued_delegate->Reset(); 1399 queued_delegate->Reset();
1355 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 1400 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
1356 kTouchId1, press.time_stamp() + 1401 kTouchId1, press.time_stamp() +
1357 base::TimeDelta::FromMilliseconds(50)); 1402 base::TimeDelta::FromMilliseconds(50));
1358 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release); 1403 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release);
1359 EXPECT_FALSE(queued_delegate->tap()); 1404 EXPECT_FALSE(queued_delegate->tap());
1360 EXPECT_FALSE(queued_delegate->tap_down()); 1405 EXPECT_FALSE(queued_delegate->tap_down());
1406 EXPECT_FALSE(queued_delegate->tap_cancel());
1361 EXPECT_FALSE(queued_delegate->begin()); 1407 EXPECT_FALSE(queued_delegate->begin());
1362 EXPECT_FALSE(queued_delegate->end()); 1408 EXPECT_FALSE(queued_delegate->end());
1363 EXPECT_FALSE(queued_delegate->double_tap()); 1409 EXPECT_FALSE(queued_delegate->double_tap());
1364 EXPECT_FALSE(queued_delegate->scroll_begin()); 1410 EXPECT_FALSE(queued_delegate->scroll_begin());
1365 EXPECT_FALSE(queued_delegate->scroll_update()); 1411 EXPECT_FALSE(queued_delegate->scroll_update());
1366 EXPECT_FALSE(queued_delegate->scroll_end()); 1412 EXPECT_FALSE(queued_delegate->scroll_end());
1367 1413
1368 // Create another window, and place a touch-down on it. This should create a 1414 // Create another window, and place a touch-down on it. This should create a
1369 // tap-down gesture. 1415 // tap-down gesture.
1370 scoped_ptr<GestureEventConsumeDelegate> delegate( 1416 scoped_ptr<GestureEventConsumeDelegate> delegate(
1371 new GestureEventConsumeDelegate()); 1417 new GestureEventConsumeDelegate());
1372 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate( 1418 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
1373 delegate.get(), -2345, gfx::Rect(0, 0, 50, 50), NULL)); 1419 delegate.get(), -2345, gfx::Rect(0, 0, 50, 50), NULL));
1374 delegate->Reset(); 1420 delegate->Reset();
1375 ui::TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(10, 20), 1421 ui::TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(10, 20),
1376 kTouchId2, GetTime()); 1422 kTouchId2, GetTime());
1377 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2); 1423 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2);
1378 EXPECT_FALSE(delegate->tap()); 1424 EXPECT_FALSE(delegate->tap());
1379 EXPECT_TRUE(delegate->tap_down()); 1425 EXPECT_TRUE(delegate->tap_down());
1426 EXPECT_FALSE(delegate->tap_cancel());
1380 EXPECT_FALSE(queued_delegate->begin()); 1427 EXPECT_FALSE(queued_delegate->begin());
1381 EXPECT_FALSE(queued_delegate->end()); 1428 EXPECT_FALSE(queued_delegate->end());
1382 EXPECT_FALSE(delegate->double_tap()); 1429 EXPECT_FALSE(delegate->double_tap());
1383 EXPECT_FALSE(delegate->scroll_begin()); 1430 EXPECT_FALSE(delegate->scroll_begin());
1384 EXPECT_FALSE(delegate->scroll_update()); 1431 EXPECT_FALSE(delegate->scroll_update());
1385 EXPECT_FALSE(delegate->scroll_end()); 1432 EXPECT_FALSE(delegate->scroll_end());
1386 1433
1387 ui::TouchEvent release2(ui::ET_TOUCH_RELEASED, gfx::Point(10, 20), 1434 ui::TouchEvent release2(ui::ET_TOUCH_RELEASED, gfx::Point(10, 20),
1388 kTouchId2, GetTime()); 1435 kTouchId2, GetTime());
1389 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release2); 1436 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release2);
1390 1437
1391 // Process the first queued event. 1438 // Process the first queued event.
1392 queued_delegate->Reset(); 1439 queued_delegate->Reset();
1393 queued_delegate->ReceivedAck(); 1440 queued_delegate->ReceivedAck();
1394 EXPECT_FALSE(queued_delegate->tap()); 1441 EXPECT_FALSE(queued_delegate->tap());
1395 EXPECT_TRUE(queued_delegate->tap_down()); 1442 EXPECT_TRUE(queued_delegate->tap_down());
1396 EXPECT_TRUE(queued_delegate->begin()); 1443 EXPECT_TRUE(queued_delegate->begin());
1444 EXPECT_FALSE(queued_delegate->tap_cancel());
1397 EXPECT_FALSE(queued_delegate->end()); 1445 EXPECT_FALSE(queued_delegate->end());
1398 EXPECT_FALSE(queued_delegate->double_tap()); 1446 EXPECT_FALSE(queued_delegate->double_tap());
1399 EXPECT_FALSE(queued_delegate->scroll_begin()); 1447 EXPECT_FALSE(queued_delegate->scroll_begin());
1400 EXPECT_FALSE(queued_delegate->scroll_update()); 1448 EXPECT_FALSE(queued_delegate->scroll_update());
1401 EXPECT_FALSE(queued_delegate->scroll_end()); 1449 EXPECT_FALSE(queued_delegate->scroll_end());
1402 1450
1403 // Now, process the second queued event. 1451 // Now, process the second queued event.
1404 queued_delegate->Reset(); 1452 queued_delegate->Reset();
1405 queued_delegate->ReceivedAck(); 1453 queued_delegate->ReceivedAck();
1406 EXPECT_TRUE(queued_delegate->tap()); 1454 EXPECT_TRUE(queued_delegate->tap());
1407 EXPECT_FALSE(queued_delegate->tap_down()); 1455 EXPECT_FALSE(queued_delegate->tap_down());
1456 EXPECT_FALSE(queued_delegate->tap_cancel());
1408 EXPECT_FALSE(queued_delegate->begin()); 1457 EXPECT_FALSE(queued_delegate->begin());
1409 EXPECT_TRUE(queued_delegate->end()); 1458 EXPECT_TRUE(queued_delegate->end());
1410 EXPECT_FALSE(queued_delegate->double_tap()); 1459 EXPECT_FALSE(queued_delegate->double_tap());
1411 EXPECT_FALSE(queued_delegate->scroll_begin()); 1460 EXPECT_FALSE(queued_delegate->scroll_begin());
1412 EXPECT_FALSE(queued_delegate->scroll_update()); 1461 EXPECT_FALSE(queued_delegate->scroll_update());
1413 EXPECT_FALSE(queued_delegate->scroll_end()); 1462 EXPECT_FALSE(queued_delegate->scroll_end());
1414 1463
1415 // Start all over. Press on the first window, then press again on the second 1464 // Start all over. Press on the first window, then press again on the second
1416 // window. The second press should still go to the first window. 1465 // window. The second press should still go to the first window.
1417 queued_delegate->Reset(); 1466 queued_delegate->Reset();
1418 ui::TouchEvent press3(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201), 1467 ui::TouchEvent press3(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
1419 kTouchId1, GetTime()); 1468 kTouchId1, GetTime());
1420 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press3); 1469 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press3);
1421 EXPECT_FALSE(queued_delegate->tap()); 1470 EXPECT_FALSE(queued_delegate->tap());
1422 EXPECT_FALSE(queued_delegate->tap_down()); 1471 EXPECT_FALSE(queued_delegate->tap_down());
1472 EXPECT_FALSE(queued_delegate->tap_cancel());
1423 EXPECT_FALSE(queued_delegate->begin()); 1473 EXPECT_FALSE(queued_delegate->begin());
1424 EXPECT_FALSE(queued_delegate->end()); 1474 EXPECT_FALSE(queued_delegate->end());
1425 EXPECT_FALSE(queued_delegate->begin()); 1475 EXPECT_FALSE(queued_delegate->begin());
1426 EXPECT_FALSE(queued_delegate->end()); 1476 EXPECT_FALSE(queued_delegate->end());
1427 EXPECT_FALSE(queued_delegate->double_tap()); 1477 EXPECT_FALSE(queued_delegate->double_tap());
1428 EXPECT_FALSE(queued_delegate->scroll_begin()); 1478 EXPECT_FALSE(queued_delegate->scroll_begin());
1429 EXPECT_FALSE(queued_delegate->scroll_update()); 1479 EXPECT_FALSE(queued_delegate->scroll_update());
1430 EXPECT_FALSE(queued_delegate->scroll_end()); 1480 EXPECT_FALSE(queued_delegate->scroll_end());
1431 1481
1432 queued_delegate->Reset(); 1482 queued_delegate->Reset();
1433 delegate->Reset(); 1483 delegate->Reset();
1434 ui::TouchEvent press4(ui::ET_TOUCH_PRESSED, gfx::Point(103, 203), 1484 ui::TouchEvent press4(ui::ET_TOUCH_PRESSED, gfx::Point(103, 203),
1435 kTouchId2, GetTime()); 1485 kTouchId2, GetTime());
1436 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press4); 1486 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press4);
1437 EXPECT_FALSE(delegate->tap()); 1487 EXPECT_FALSE(delegate->tap());
1438 EXPECT_FALSE(delegate->tap_down()); 1488 EXPECT_FALSE(delegate->tap_down());
1489 EXPECT_FALSE(delegate->tap_cancel());
1439 EXPECT_FALSE(delegate->begin()); 1490 EXPECT_FALSE(delegate->begin());
1440 EXPECT_FALSE(delegate->end()); 1491 EXPECT_FALSE(delegate->end());
1441 EXPECT_FALSE(delegate->double_tap()); 1492 EXPECT_FALSE(delegate->double_tap());
1442 EXPECT_FALSE(delegate->scroll_begin()); 1493 EXPECT_FALSE(delegate->scroll_begin());
1443 EXPECT_FALSE(delegate->scroll_update()); 1494 EXPECT_FALSE(delegate->scroll_update());
1444 EXPECT_FALSE(delegate->scroll_end()); 1495 EXPECT_FALSE(delegate->scroll_end());
1445 EXPECT_FALSE(queued_delegate->tap()); 1496 EXPECT_FALSE(queued_delegate->tap());
1446 EXPECT_FALSE(queued_delegate->tap_down()); 1497 EXPECT_FALSE(queued_delegate->tap_down());
1498 EXPECT_FALSE(queued_delegate->tap_cancel());
1447 EXPECT_FALSE(queued_delegate->begin()); 1499 EXPECT_FALSE(queued_delegate->begin());
1448 EXPECT_FALSE(queued_delegate->end()); 1500 EXPECT_FALSE(queued_delegate->end());
1449 EXPECT_FALSE(queued_delegate->double_tap()); 1501 EXPECT_FALSE(queued_delegate->double_tap());
1450 EXPECT_FALSE(queued_delegate->scroll_begin()); 1502 EXPECT_FALSE(queued_delegate->scroll_begin());
1451 EXPECT_FALSE(queued_delegate->scroll_update()); 1503 EXPECT_FALSE(queued_delegate->scroll_update());
1452 EXPECT_FALSE(queued_delegate->scroll_end()); 1504 EXPECT_FALSE(queued_delegate->scroll_end());
1453 1505
1454 // Move the second touch-point enough so that it is considered a pinch. This 1506 // Move the second touch-point enough so that it is considered a pinch. This
1455 // should generate both SCROLL_BEGIN and PINCH_BEGIN gestures. 1507 // should generate both SCROLL_BEGIN and PINCH_BEGIN gestures.
1456 queued_delegate->Reset(); 1508 queued_delegate->Reset();
1457 delegate->Reset(); 1509 delegate->Reset();
1458 int x_move = ui::GestureConfiguration::max_touch_move_in_pixels_for_click(); 1510 int x_move = ui::GestureConfiguration::max_touch_move_in_pixels_for_click();
1459 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(103 + x_move, 203), 1511 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(103 + x_move, 203),
1460 kTouchId2, GetTime()); 1512 kTouchId2, GetTime());
1461 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move); 1513 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move);
1462 EXPECT_FALSE(delegate->tap()); 1514 EXPECT_FALSE(delegate->tap());
1463 EXPECT_FALSE(delegate->tap_down()); 1515 EXPECT_FALSE(delegate->tap_down());
1516 EXPECT_FALSE(delegate->tap_cancel());
1464 EXPECT_FALSE(delegate->begin()); 1517 EXPECT_FALSE(delegate->begin());
1465 EXPECT_FALSE(delegate->double_tap()); 1518 EXPECT_FALSE(delegate->double_tap());
1466 EXPECT_FALSE(delegate->scroll_begin()); 1519 EXPECT_FALSE(delegate->scroll_begin());
1467 EXPECT_FALSE(delegate->scroll_update()); 1520 EXPECT_FALSE(delegate->scroll_update());
1468 EXPECT_FALSE(delegate->scroll_end()); 1521 EXPECT_FALSE(delegate->scroll_end());
1469 EXPECT_FALSE(queued_delegate->tap()); 1522 EXPECT_FALSE(queued_delegate->tap());
1470 EXPECT_FALSE(queued_delegate->tap_down()); 1523 EXPECT_FALSE(queued_delegate->tap_down());
1524 EXPECT_FALSE(queued_delegate->tap_cancel());
1471 EXPECT_FALSE(queued_delegate->begin()); 1525 EXPECT_FALSE(queued_delegate->begin());
1472 EXPECT_FALSE(queued_delegate->double_tap()); 1526 EXPECT_FALSE(queued_delegate->double_tap());
1473 EXPECT_FALSE(queued_delegate->scroll_begin()); 1527 EXPECT_FALSE(queued_delegate->scroll_begin());
1474 EXPECT_FALSE(queued_delegate->scroll_update()); 1528 EXPECT_FALSE(queued_delegate->scroll_update());
1475 EXPECT_FALSE(queued_delegate->scroll_end()); 1529 EXPECT_FALSE(queued_delegate->scroll_end());
1476 1530
1477 queued_delegate->Reset(); 1531 queued_delegate->Reset();
1478 queued_delegate->ReceivedAck(); 1532 queued_delegate->ReceivedAck();
1479 EXPECT_FALSE(queued_delegate->tap()); 1533 EXPECT_FALSE(queued_delegate->tap());
1480 EXPECT_TRUE(queued_delegate->tap_down()); 1534 EXPECT_TRUE(queued_delegate->tap_down());
1481 EXPECT_TRUE(queued_delegate->begin()); 1535 EXPECT_TRUE(queued_delegate->begin());
1536 EXPECT_FALSE(queued_delegate->tap_cancel());
1482 EXPECT_FALSE(queued_delegate->end()); 1537 EXPECT_FALSE(queued_delegate->end());
1483 EXPECT_FALSE(queued_delegate->double_tap()); 1538 EXPECT_FALSE(queued_delegate->double_tap());
1484 EXPECT_FALSE(queued_delegate->scroll_begin()); 1539 EXPECT_FALSE(queued_delegate->scroll_begin());
1485 EXPECT_FALSE(queued_delegate->scroll_update()); 1540 EXPECT_FALSE(queued_delegate->scroll_update());
1486 EXPECT_FALSE(queued_delegate->scroll_end()); 1541 EXPECT_FALSE(queued_delegate->scroll_end());
1487 1542
1488 queued_delegate->Reset(); 1543 queued_delegate->Reset();
1489 queued_delegate->ReceivedAck(); 1544 queued_delegate->ReceivedAck();
1490 EXPECT_FALSE(queued_delegate->tap()); 1545 EXPECT_FALSE(queued_delegate->tap());
1491 EXPECT_FALSE(queued_delegate->tap_down()); // no touch down for second tap. 1546 EXPECT_FALSE(queued_delegate->tap_down()); // no touch down for second tap.
1547 EXPECT_TRUE(queued_delegate->tap_cancel());
1492 EXPECT_TRUE(queued_delegate->begin()); 1548 EXPECT_TRUE(queued_delegate->begin());
1493 EXPECT_FALSE(queued_delegate->end()); 1549 EXPECT_FALSE(queued_delegate->end());
1494 EXPECT_FALSE(queued_delegate->double_tap()); 1550 EXPECT_FALSE(queued_delegate->double_tap());
1495 EXPECT_FALSE(queued_delegate->scroll_begin()); 1551 EXPECT_FALSE(queued_delegate->scroll_begin());
1496 EXPECT_FALSE(queued_delegate->scroll_update()); 1552 EXPECT_FALSE(queued_delegate->scroll_update());
1497 EXPECT_FALSE(queued_delegate->scroll_end()); 1553 EXPECT_FALSE(queued_delegate->scroll_end());
1498 EXPECT_FALSE(queued_delegate->pinch_begin()); 1554 EXPECT_FALSE(queued_delegate->pinch_begin());
1499 EXPECT_FALSE(queued_delegate->pinch_update()); 1555 EXPECT_FALSE(queued_delegate->pinch_update());
1500 EXPECT_FALSE(queued_delegate->pinch_end()); 1556 EXPECT_FALSE(queued_delegate->pinch_end());
1501 1557
1502 queued_delegate->Reset(); 1558 queued_delegate->Reset();
1503 queued_delegate->ReceivedAck(); 1559 queued_delegate->ReceivedAck();
1504 EXPECT_FALSE(queued_delegate->tap()); 1560 EXPECT_FALSE(queued_delegate->tap());
1505 EXPECT_FALSE(queued_delegate->tap_down()); 1561 EXPECT_FALSE(queued_delegate->tap_down());
1562 EXPECT_FALSE(queued_delegate->tap_cancel());
1506 EXPECT_FALSE(queued_delegate->begin()); 1563 EXPECT_FALSE(queued_delegate->begin());
1507 EXPECT_FALSE(queued_delegate->end()); 1564 EXPECT_FALSE(queued_delegate->end());
1508 EXPECT_FALSE(queued_delegate->double_tap()); 1565 EXPECT_FALSE(queued_delegate->double_tap());
1509 EXPECT_TRUE(queued_delegate->scroll_begin()); 1566 EXPECT_TRUE(queued_delegate->scroll_begin());
1510 EXPECT_FALSE(queued_delegate->scroll_update()); 1567 EXPECT_FALSE(queued_delegate->scroll_update());
1511 EXPECT_FALSE(queued_delegate->scroll_end()); 1568 EXPECT_FALSE(queued_delegate->scroll_end());
1512 EXPECT_TRUE(queued_delegate->pinch_begin()); 1569 EXPECT_TRUE(queued_delegate->pinch_begin());
1513 EXPECT_FALSE(queued_delegate->pinch_update()); 1570 EXPECT_FALSE(queued_delegate->pinch_update());
1514 EXPECT_FALSE(queued_delegate->pinch_end()); 1571 EXPECT_FALSE(queued_delegate->pinch_end());
1515 } 1572 }
(...skipping 11 matching lines...) Expand all
1527 delegate.get(), -1234, bounds, NULL)); 1584 delegate.get(), -1234, bounds, NULL));
1528 1585
1529 aura::RootWindow* root = root_window(); 1586 aura::RootWindow* root = root_window();
1530 1587
1531 delegate->Reset(); 1588 delegate->Reset();
1532 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201), 1589 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
1533 kTouchId1, GetTime()); 1590 kTouchId1, GetTime());
1534 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&press); 1591 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&press);
1535 EXPECT_FALSE(delegate->tap()); 1592 EXPECT_FALSE(delegate->tap());
1536 EXPECT_TRUE(delegate->tap_down()); 1593 EXPECT_TRUE(delegate->tap_down());
1594 EXPECT_FALSE(delegate->tap_cancel());
1537 EXPECT_FALSE(delegate->double_tap()); 1595 EXPECT_FALSE(delegate->double_tap());
1538 EXPECT_FALSE(delegate->scroll_begin()); 1596 EXPECT_FALSE(delegate->scroll_begin());
1539 EXPECT_FALSE(delegate->scroll_update()); 1597 EXPECT_FALSE(delegate->scroll_update());
1540 EXPECT_FALSE(delegate->scroll_end()); 1598 EXPECT_FALSE(delegate->scroll_end());
1541 1599
1542 // Move the touch-point enough so that it is considered as a scroll. This 1600 // Move the touch-point enough so that it is considered as a scroll. This
1543 // should generate both SCROLL_BEGIN and SCROLL_UPDATE gestures. 1601 // should generate both SCROLL_BEGIN and SCROLL_UPDATE gestures.
1544 delegate->Reset(); 1602 delegate->Reset();
1545 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(130, 301), 1603 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(130, 301),
1546 kTouchId1, GetTime()); 1604 kTouchId1, GetTime());
1547 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&move); 1605 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&move);
1548 EXPECT_FALSE(delegate->tap()); 1606 EXPECT_FALSE(delegate->tap());
1549 EXPECT_FALSE(delegate->tap_down()); 1607 EXPECT_FALSE(delegate->tap_down());
1608 EXPECT_TRUE(delegate->tap_cancel());
1550 EXPECT_FALSE(delegate->double_tap()); 1609 EXPECT_FALSE(delegate->double_tap());
1551 EXPECT_TRUE(delegate->scroll_begin()); 1610 EXPECT_TRUE(delegate->scroll_begin());
1552 EXPECT_TRUE(delegate->scroll_update()); 1611 EXPECT_TRUE(delegate->scroll_update());
1553 EXPECT_FALSE(delegate->scroll_end()); 1612 EXPECT_FALSE(delegate->scroll_end());
1554 1613
1555 // Press the second finger. It should cause pinch-begin. Note that we will not 1614 // Press the second finger. It should cause pinch-begin. Note that we will not
1556 // transition to two finger tap here because the touch points are far enough. 1615 // transition to two finger tap here because the touch points are far enough.
1557 delegate->Reset(); 1616 delegate->Reset();
1558 ui::TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(10, 10), 1617 ui::TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(10, 10),
1559 kTouchId2, GetTime()); 1618 kTouchId2, GetTime());
1560 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2); 1619 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2);
1561 EXPECT_FALSE(delegate->tap()); 1620 EXPECT_FALSE(delegate->tap());
1562 EXPECT_FALSE(delegate->tap_down()); // no touch down for second tap. 1621 EXPECT_FALSE(delegate->tap_down()); // no touch down for second tap.
1622 EXPECT_FALSE(delegate->tap_cancel());
1563 EXPECT_FALSE(delegate->double_tap()); 1623 EXPECT_FALSE(delegate->double_tap());
1564 EXPECT_FALSE(delegate->scroll_begin()); 1624 EXPECT_FALSE(delegate->scroll_begin());
1565 EXPECT_FALSE(delegate->scroll_update()); 1625 EXPECT_FALSE(delegate->scroll_update());
1566 EXPECT_FALSE(delegate->scroll_end()); 1626 EXPECT_FALSE(delegate->scroll_end());
1567 EXPECT_TRUE(delegate->pinch_begin()); 1627 EXPECT_TRUE(delegate->pinch_begin());
1568 EXPECT_EQ(gfx::Rect(10, 10, 120, 291).ToString(), 1628 EXPECT_EQ(gfx::Rect(10, 10, 120, 291).ToString(),
1569 delegate->bounding_box().ToString()); 1629 delegate->bounding_box().ToString());
1570 1630
1571 // Move the first finger. 1631 // Move the first finger.
1572 delegate->Reset(); 1632 delegate->Reset();
1573 ui::TouchEvent move3(ui::ET_TOUCH_MOVED, gfx::Point(95, 201), 1633 ui::TouchEvent move3(ui::ET_TOUCH_MOVED, gfx::Point(95, 201),
1574 kTouchId1, GetTime()); 1634 kTouchId1, GetTime());
1575 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&move3); 1635 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&move3);
1576 EXPECT_FALSE(delegate->tap()); 1636 EXPECT_FALSE(delegate->tap());
1577 EXPECT_FALSE(delegate->tap_down()); 1637 EXPECT_FALSE(delegate->tap_down());
1638 EXPECT_FALSE(delegate->tap_cancel());
1578 EXPECT_FALSE(delegate->double_tap()); 1639 EXPECT_FALSE(delegate->double_tap());
1579 EXPECT_FALSE(delegate->scroll_begin()); 1640 EXPECT_FALSE(delegate->scroll_begin());
1580 EXPECT_FALSE(delegate->scroll_update()); 1641 EXPECT_FALSE(delegate->scroll_update());
1581 EXPECT_FALSE(delegate->scroll_end()); 1642 EXPECT_FALSE(delegate->scroll_end());
1582 EXPECT_FALSE(delegate->pinch_begin()); 1643 EXPECT_FALSE(delegate->pinch_begin());
1583 EXPECT_TRUE(delegate->pinch_update()); 1644 EXPECT_TRUE(delegate->pinch_update());
1584 EXPECT_EQ(gfx::Rect(10, 10, 85, 191).ToString(), 1645 EXPECT_EQ(gfx::Rect(10, 10, 85, 191).ToString(),
1585 delegate->bounding_box().ToString()); 1646 delegate->bounding_box().ToString());
1586 1647
1587 // Now move the second finger. 1648 // Now move the second finger.
1588 delegate->Reset(); 1649 delegate->Reset();
1589 ui::TouchEvent move4(ui::ET_TOUCH_MOVED, gfx::Point(55, 15), 1650 ui::TouchEvent move4(ui::ET_TOUCH_MOVED, gfx::Point(55, 15),
1590 kTouchId2, GetTime()); 1651 kTouchId2, GetTime());
1591 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&move4); 1652 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&move4);
1592 EXPECT_FALSE(delegate->tap()); 1653 EXPECT_FALSE(delegate->tap());
1593 EXPECT_FALSE(delegate->tap_down()); 1654 EXPECT_FALSE(delegate->tap_down());
1655 EXPECT_FALSE(delegate->tap_cancel());
1594 EXPECT_FALSE(delegate->double_tap()); 1656 EXPECT_FALSE(delegate->double_tap());
1595 EXPECT_FALSE(delegate->scroll_begin()); 1657 EXPECT_FALSE(delegate->scroll_begin());
1596 EXPECT_FALSE(delegate->scroll_update()); 1658 EXPECT_FALSE(delegate->scroll_update());
1597 EXPECT_FALSE(delegate->scroll_end()); 1659 EXPECT_FALSE(delegate->scroll_end());
1598 EXPECT_FALSE(delegate->pinch_begin()); 1660 EXPECT_FALSE(delegate->pinch_begin());
1599 EXPECT_TRUE(delegate->pinch_update()); 1661 EXPECT_TRUE(delegate->pinch_update());
1600 EXPECT_EQ(gfx::Rect(55, 15, 40, 186).ToString(), 1662 EXPECT_EQ(gfx::Rect(55, 15, 40, 186).ToString(),
1601 delegate->bounding_box().ToString()); 1663 delegate->bounding_box().ToString());
1602 1664
1603 // Release the first finger. This should end pinch. 1665 // Release the first finger. This should end pinch.
1604 delegate->Reset(); 1666 delegate->Reset();
1605 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 1667 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
1606 kTouchId1, press.time_stamp() + 1668 kTouchId1, press.time_stamp() +
1607 base::TimeDelta::FromMilliseconds(50)); 1669 base::TimeDelta::FromMilliseconds(50));
1608 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&release); 1670 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&release);
1609 EXPECT_FALSE(delegate->tap()); 1671 EXPECT_FALSE(delegate->tap());
1610 EXPECT_FALSE(delegate->tap_down()); 1672 EXPECT_FALSE(delegate->tap_down());
1673 EXPECT_FALSE(delegate->tap_cancel());
1611 EXPECT_FALSE(delegate->double_tap()); 1674 EXPECT_FALSE(delegate->double_tap());
1612 EXPECT_FALSE(delegate->scroll_begin()); 1675 EXPECT_FALSE(delegate->scroll_begin());
1613 EXPECT_FALSE(delegate->scroll_update()); 1676 EXPECT_FALSE(delegate->scroll_update());
1614 EXPECT_FALSE(delegate->scroll_end()); 1677 EXPECT_FALSE(delegate->scroll_end());
1615 EXPECT_TRUE(delegate->pinch_end()); 1678 EXPECT_TRUE(delegate->pinch_end());
1616 EXPECT_EQ(gfx::Rect(55, 15, 46, 186).ToString(), 1679 EXPECT_EQ(gfx::Rect(55, 15, 46, 186).ToString(),
1617 delegate->bounding_box().ToString()); 1680 delegate->bounding_box().ToString());
1618 1681
1619 // Move the second finger. This should still generate a scroll. 1682 // Move the second finger. This should still generate a scroll.
1620 delegate->Reset(); 1683 delegate->Reset();
1621 ui::TouchEvent move5(ui::ET_TOUCH_MOVED, gfx::Point(25, 10), 1684 ui::TouchEvent move5(ui::ET_TOUCH_MOVED, gfx::Point(25, 10),
1622 kTouchId2, GetTime()); 1685 kTouchId2, GetTime());
1623 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&move5); 1686 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&move5);
1624 EXPECT_FALSE(delegate->tap()); 1687 EXPECT_FALSE(delegate->tap());
1625 EXPECT_FALSE(delegate->tap_down()); 1688 EXPECT_FALSE(delegate->tap_down());
1689 EXPECT_FALSE(delegate->tap_cancel());
1626 EXPECT_FALSE(delegate->double_tap()); 1690 EXPECT_FALSE(delegate->double_tap());
1627 EXPECT_FALSE(delegate->scroll_begin()); 1691 EXPECT_FALSE(delegate->scroll_begin());
1628 EXPECT_TRUE(delegate->scroll_update()); 1692 EXPECT_TRUE(delegate->scroll_update());
1629 EXPECT_FALSE(delegate->scroll_end()); 1693 EXPECT_FALSE(delegate->scroll_end());
1630 EXPECT_FALSE(delegate->pinch_begin()); 1694 EXPECT_FALSE(delegate->pinch_begin());
1631 EXPECT_FALSE(delegate->pinch_update()); 1695 EXPECT_FALSE(delegate->pinch_update());
1632 EXPECT_TRUE(delegate->bounding_box().IsEmpty()); 1696 EXPECT_TRUE(delegate->bounding_box().IsEmpty());
1633 } 1697 }
1634 1698
1635 TEST_F(GestureRecognizerTest, GestureEventPinchFromScrollFromPinch) { 1699 TEST_F(GestureRecognizerTest, GestureEventPinchFromScrollFromPinch) {
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1695 delegate.get(), -1234, bounds, NULL)); 1759 delegate.get(), -1234, bounds, NULL));
1696 1760
1697 aura::RootWindow* root = root_window(); 1761 aura::RootWindow* root = root_window();
1698 1762
1699 delegate->Reset(); 1763 delegate->Reset();
1700 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 301), 1764 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 301),
1701 kTouchId1, GetTime()); 1765 kTouchId1, GetTime());
1702 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&press); 1766 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&press);
1703 EXPECT_FALSE(delegate->tap()); 1767 EXPECT_FALSE(delegate->tap());
1704 EXPECT_TRUE(delegate->tap_down()); 1768 EXPECT_TRUE(delegate->tap_down());
1769 EXPECT_FALSE(delegate->tap_cancel());
1705 EXPECT_FALSE(delegate->double_tap()); 1770 EXPECT_FALSE(delegate->double_tap());
1706 EXPECT_FALSE(delegate->scroll_begin()); 1771 EXPECT_FALSE(delegate->scroll_begin());
1707 EXPECT_FALSE(delegate->scroll_update()); 1772 EXPECT_FALSE(delegate->scroll_update());
1708 EXPECT_FALSE(delegate->scroll_end()); 1773 EXPECT_FALSE(delegate->scroll_end());
1709 EXPECT_TRUE(delegate->bounding_box().IsEmpty()); 1774 EXPECT_TRUE(delegate->bounding_box().IsEmpty());
1710 1775
1711 // Press the second finger far enough to break two finger tap. It should 1776 // Press the second finger far enough to break two finger tap. It should
1712 // instead cause a scroll-begin and pinch-begin. 1777 // instead cause a scroll-begin and pinch-begin.
1713 delegate->Reset(); 1778 delegate->Reset();
1714 ui::TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(10, 10), 1779 ui::TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(10, 10),
1715 kTouchId2, GetTime()); 1780 kTouchId2, GetTime());
1716 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2); 1781 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2);
1717 EXPECT_FALSE(delegate->tap()); 1782 EXPECT_FALSE(delegate->tap());
1718 EXPECT_FALSE(delegate->tap_down()); // no touch down for second tap. 1783 EXPECT_FALSE(delegate->tap_down()); // no touch down for second tap.
1784 EXPECT_TRUE(delegate->tap_cancel());
1719 EXPECT_FALSE(delegate->double_tap()); 1785 EXPECT_FALSE(delegate->double_tap());
1720 EXPECT_TRUE(delegate->scroll_begin()); 1786 EXPECT_TRUE(delegate->scroll_begin());
1721 EXPECT_FALSE(delegate->scroll_update()); 1787 EXPECT_FALSE(delegate->scroll_update());
1722 EXPECT_FALSE(delegate->scroll_end()); 1788 EXPECT_FALSE(delegate->scroll_end());
1723 EXPECT_TRUE(delegate->pinch_begin()); 1789 EXPECT_TRUE(delegate->pinch_begin());
1724 EXPECT_EQ(gfx::Rect(10, 10, 91, 291).ToString(), 1790 EXPECT_EQ(gfx::Rect(10, 10, 91, 291).ToString(),
1725 delegate->bounding_box().ToString()); 1791 delegate->bounding_box().ToString());
1726 1792
1727 // Move the first finger. 1793 // Move the first finger.
1728 delegate->Reset(); 1794 delegate->Reset();
1729 ui::TouchEvent move3(ui::ET_TOUCH_MOVED, gfx::Point(65, 201), 1795 ui::TouchEvent move3(ui::ET_TOUCH_MOVED, gfx::Point(65, 201),
1730 kTouchId1, GetTime()); 1796 kTouchId1, GetTime());
1731 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&move3); 1797 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&move3);
1732 EXPECT_FALSE(delegate->tap()); 1798 EXPECT_FALSE(delegate->tap());
1733 EXPECT_FALSE(delegate->tap_down()); 1799 EXPECT_FALSE(delegate->tap_down());
1800 EXPECT_FALSE(delegate->tap_cancel());
1734 EXPECT_FALSE(delegate->double_tap()); 1801 EXPECT_FALSE(delegate->double_tap());
1735 EXPECT_FALSE(delegate->scroll_begin()); 1802 EXPECT_FALSE(delegate->scroll_begin());
1736 EXPECT_FALSE(delegate->scroll_update()); 1803 EXPECT_FALSE(delegate->scroll_update());
1737 EXPECT_FALSE(delegate->scroll_end()); 1804 EXPECT_FALSE(delegate->scroll_end());
1738 EXPECT_FALSE(delegate->pinch_begin()); 1805 EXPECT_FALSE(delegate->pinch_begin());
1739 EXPECT_TRUE(delegate->pinch_update()); 1806 EXPECT_TRUE(delegate->pinch_update());
1740 EXPECT_EQ(gfx::Rect(10, 10, 55, 191).ToString(), 1807 EXPECT_EQ(gfx::Rect(10, 10, 55, 191).ToString(),
1741 delegate->bounding_box().ToString()); 1808 delegate->bounding_box().ToString());
1742 1809
1743 // Now move the second finger. 1810 // Now move the second finger.
1744 delegate->Reset(); 1811 delegate->Reset();
1745 ui::TouchEvent move4(ui::ET_TOUCH_MOVED, gfx::Point(55, 15), 1812 ui::TouchEvent move4(ui::ET_TOUCH_MOVED, gfx::Point(55, 15),
1746 kTouchId2, GetTime()); 1813 kTouchId2, GetTime());
1747 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&move4); 1814 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&move4);
1748 EXPECT_FALSE(delegate->tap()); 1815 EXPECT_FALSE(delegate->tap());
1749 EXPECT_FALSE(delegate->tap_down()); 1816 EXPECT_FALSE(delegate->tap_down());
1817 EXPECT_FALSE(delegate->tap_cancel());
1750 EXPECT_FALSE(delegate->double_tap()); 1818 EXPECT_FALSE(delegate->double_tap());
1751 EXPECT_FALSE(delegate->scroll_begin()); 1819 EXPECT_FALSE(delegate->scroll_begin());
1752 EXPECT_FALSE(delegate->scroll_update()); 1820 EXPECT_FALSE(delegate->scroll_update());
1753 EXPECT_FALSE(delegate->scroll_end()); 1821 EXPECT_FALSE(delegate->scroll_end());
1754 EXPECT_FALSE(delegate->pinch_begin()); 1822 EXPECT_FALSE(delegate->pinch_begin());
1755 EXPECT_TRUE(delegate->pinch_update()); 1823 EXPECT_TRUE(delegate->pinch_update());
1756 EXPECT_EQ(gfx::Rect(55, 15, 10, 186).ToString(), 1824 EXPECT_EQ(gfx::Rect(55, 15, 10, 186).ToString(),
1757 delegate->bounding_box().ToString()); 1825 delegate->bounding_box().ToString());
1758 1826
1759 // Release the first finger. This should end pinch. 1827 // Release the first finger. This should end pinch.
1760 delegate->Reset(); 1828 delegate->Reset();
1761 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 1829 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
1762 kTouchId1, press.time_stamp() + 1830 kTouchId1, press.time_stamp() +
1763 base::TimeDelta::FromMilliseconds(50)); 1831 base::TimeDelta::FromMilliseconds(50));
1764 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&release); 1832 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&release);
1765 EXPECT_FALSE(delegate->tap()); 1833 EXPECT_FALSE(delegate->tap());
1766 EXPECT_FALSE(delegate->tap_down()); 1834 EXPECT_FALSE(delegate->tap_down());
1835 EXPECT_FALSE(delegate->tap_cancel());
1767 EXPECT_FALSE(delegate->double_tap()); 1836 EXPECT_FALSE(delegate->double_tap());
1768 EXPECT_FALSE(delegate->scroll_begin()); 1837 EXPECT_FALSE(delegate->scroll_begin());
1769 EXPECT_FALSE(delegate->scroll_update()); 1838 EXPECT_FALSE(delegate->scroll_update());
1770 EXPECT_FALSE(delegate->scroll_end()); 1839 EXPECT_FALSE(delegate->scroll_end());
1771 EXPECT_TRUE(delegate->pinch_end()); 1840 EXPECT_TRUE(delegate->pinch_end());
1772 EXPECT_EQ(gfx::Rect(55, 15, 46, 186).ToString(), 1841 EXPECT_EQ(gfx::Rect(55, 15, 46, 186).ToString(),
1773 delegate->bounding_box().ToString()); 1842 delegate->bounding_box().ToString());
1774 1843
1775 // Move the second finger. This should still generate a scroll. 1844 // Move the second finger. This should still generate a scroll.
1776 delegate->Reset(); 1845 delegate->Reset();
1777 ui::TouchEvent move5(ui::ET_TOUCH_MOVED, gfx::Point(25, 10), 1846 ui::TouchEvent move5(ui::ET_TOUCH_MOVED, gfx::Point(25, 10),
1778 kTouchId2, GetTime()); 1847 kTouchId2, GetTime());
1779 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&move5); 1848 root->AsRootWindowHostDelegate()->OnHostTouchEvent(&move5);
1780 EXPECT_FALSE(delegate->tap()); 1849 EXPECT_FALSE(delegate->tap());
1781 EXPECT_FALSE(delegate->tap_down()); 1850 EXPECT_FALSE(delegate->tap_down());
1851 EXPECT_FALSE(delegate->tap_cancel());
1782 EXPECT_FALSE(delegate->double_tap()); 1852 EXPECT_FALSE(delegate->double_tap());
1783 EXPECT_FALSE(delegate->scroll_begin()); 1853 EXPECT_FALSE(delegate->scroll_begin());
1784 EXPECT_TRUE(delegate->scroll_update()); 1854 EXPECT_TRUE(delegate->scroll_update());
1785 EXPECT_FALSE(delegate->scroll_end()); 1855 EXPECT_FALSE(delegate->scroll_end());
1786 EXPECT_FALSE(delegate->pinch_begin()); 1856 EXPECT_FALSE(delegate->pinch_begin());
1787 EXPECT_FALSE(delegate->pinch_update()); 1857 EXPECT_FALSE(delegate->pinch_update());
1788 EXPECT_TRUE(delegate->bounding_box().IsEmpty()); 1858 EXPECT_TRUE(delegate->bounding_box().IsEmpty());
1789 } 1859 }
1790 1860
1791 TEST_F(GestureRecognizerTest, GestureEventIgnoresDisconnectedEvents) { 1861 TEST_F(GestureRecognizerTest, GestureEventIgnoresDisconnectedEvents) {
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
1932 kTouchId, press.time_stamp() + 2002 kTouchId, press.time_stamp() +
1933 base::TimeDelta::FromMilliseconds(50)); 2003 base::TimeDelta::FromMilliseconds(50));
1934 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release); 2004 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release);
1935 2005
1936 delegate->Reset(); 2006 delegate->Reset();
1937 delegate->ReceivedAck(); 2007 delegate->ReceivedAck();
1938 EXPECT_TRUE(delegate->tap_down()); 2008 EXPECT_TRUE(delegate->tap_down());
1939 delegate->Reset(); 2009 delegate->Reset();
1940 delegate->ReceivedAckPreventDefaulted(); 2010 delegate->ReceivedAckPreventDefaulted();
1941 EXPECT_FALSE(delegate->tap()); 2011 EXPECT_FALSE(delegate->tap());
2012 EXPECT_TRUE(delegate->tap_cancel());
1942 } 2013 }
1943 2014
1944 TEST_F(GestureRecognizerTest, PinchScrollWithPreventDefaultedRelease) { 2015 TEST_F(GestureRecognizerTest, PinchScrollWithPreventDefaultedRelease) {
1945 scoped_ptr<QueueTouchEventDelegate> delegate( 2016 scoped_ptr<QueueTouchEventDelegate> delegate(
1946 new QueueTouchEventDelegate(root_window())); 2017 new QueueTouchEventDelegate(root_window()));
1947 const int kTouchId1 = 7; 2018 const int kTouchId1 = 7;
1948 const int kTouchId2 = 5; 2019 const int kTouchId2 = 5;
1949 gfx::Rect bounds(10, 20, 100, 100); 2020 gfx::Rect bounds(10, 20, 100, 100);
1950 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate( 2021 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
1951 delegate.get(), -1234, bounds, NULL)); 2022 delegate.get(), -1234, bounds, NULL));
(...skipping 11 matching lines...) Expand all
1963 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release); 2034 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release);
1964 delegate->Reset(); 2035 delegate->Reset();
1965 2036
1966 // Ack the press event. 2037 // Ack the press event.
1967 delegate->ReceivedAck(); 2038 delegate->ReceivedAck();
1968 EXPECT_TRUE(delegate->tap_down()); 2039 EXPECT_TRUE(delegate->tap_down());
1969 delegate->Reset(); 2040 delegate->Reset();
1970 2041
1971 // Ack the move event. 2042 // Ack the move event.
1972 delegate->ReceivedAck(); 2043 delegate->ReceivedAck();
2044 EXPECT_TRUE(delegate->tap_cancel());
1973 EXPECT_TRUE(delegate->scroll_begin()); 2045 EXPECT_TRUE(delegate->scroll_begin());
1974 delegate->Reset(); 2046 delegate->Reset();
1975 2047
1976 // Ack the release event. Although the release event has been processed, it 2048 // Ack the release event. Although the release event has been processed, it
1977 // should still generate a scroll-end event. 2049 // should still generate a scroll-end event.
1978 delegate->ReceivedAckPreventDefaulted(); 2050 delegate->ReceivedAckPreventDefaulted();
1979 EXPECT_TRUE(delegate->scroll_end()); 2051 EXPECT_TRUE(delegate->scroll_end());
1980 2052
1981 ui::TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(55, 25), kTouchId2, 2053 ui::TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(55, 25), kTouchId2,
1982 GetTime()); 2054 GetTime());
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
2041 RunAllPendingInMessageLoop(); 2113 RunAllPendingInMessageLoop();
2042 2114
2043 EXPECT_TRUE(delegate->tap_down()); 2115 EXPECT_TRUE(delegate->tap_down());
2044 2116
2045 scoped_ptr<aura::Window> capture(CreateTestWindowWithBounds( 2117 scoped_ptr<aura::Window> capture(CreateTestWindowWithBounds(
2046 gfx::Rect(10, 10, 200, 200), NULL)); 2118 gfx::Rect(10, 10, 200, 200), NULL));
2047 capture->SetCapture(); 2119 capture->SetCapture();
2048 RunAllPendingInMessageLoop(); 2120 RunAllPendingInMessageLoop();
2049 2121
2050 EXPECT_TRUE(delegate->end()); 2122 EXPECT_TRUE(delegate->end());
2123 EXPECT_TRUE(delegate->tap_cancel());
2051 } 2124 }
2052 2125
2053 TEST_F(GestureRecognizerTest, PressDoesNotCrash) { 2126 TEST_F(GestureRecognizerTest, PressDoesNotCrash) {
2054 scoped_ptr<GestureEventConsumeDelegate> delegate( 2127 scoped_ptr<GestureEventConsumeDelegate> delegate(
2055 new GestureEventConsumeDelegate()); 2128 new GestureEventConsumeDelegate());
2056 TestGestureRecognizer* gesture_recognizer = 2129 TestGestureRecognizer* gesture_recognizer =
2057 new TestGestureRecognizer(root_window()); 2130 new TestGestureRecognizer(root_window());
2058 root_window()->SetGestureRecognizerForTesting(gesture_recognizer); 2131 root_window()->SetGestureRecognizerForTesting(gesture_recognizer);
2059 2132
2060 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate( 2133 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
2061 delegate.get(), -1234, gfx::Rect(10, 10, 300, 300), NULL)); 2134 delegate.get(), -1234, gfx::Rect(10, 10, 300, 300), NULL));
2062 2135
2063 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(45, 45), 7, GetTime()); 2136 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(45, 45), 7, GetTime());
2064 press.set_radius_x(40); 2137 press.set_radius_x(40);
2065 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press); 2138 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press);
2066 EXPECT_TRUE(delegate->tap_down()); 2139 EXPECT_TRUE(delegate->tap_down());
2067 EXPECT_EQ(gfx::Rect(5, 5, 80, 80).ToString(), 2140 EXPECT_EQ(gfx::Rect(5, 5, 80, 80).ToString(),
2068 delegate->bounding_box().ToString()); 2141 delegate->bounding_box().ToString());
2069 delegate->Reset(); 2142 delegate->Reset();
2070 2143
2071 ui::TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(55, 45), 7, GetTime()); 2144 ui::TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(55, 45), 7, GetTime());
2072 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2); 2145 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2);
2073 2146
2074 // This new press should not generate a tap-down. 2147 // This new press should not generate a tap-down.
2075 EXPECT_FALSE(delegate->begin()); 2148 EXPECT_FALSE(delegate->begin());
2076 EXPECT_FALSE(delegate->tap_down()); 2149 EXPECT_FALSE(delegate->tap_down());
2150 EXPECT_FALSE(delegate->tap_cancel());
2077 EXPECT_FALSE(delegate->scroll_begin()); 2151 EXPECT_FALSE(delegate->scroll_begin());
2078 } 2152 }
2079 2153
2080 // Tests that if a consumer has touch-events queued, then no touch-event gets 2154 // Tests that if a consumer has touch-events queued, then no touch-event gets
2081 // processed synchronously until all the queued evets are processed. 2155 // processed synchronously until all the queued evets are processed.
2082 TEST_F(GestureRecognizerTest, SyncTouchEventWithQueuedTouchEvents) { 2156 TEST_F(GestureRecognizerTest, SyncTouchEventWithQueuedTouchEvents) {
2083 scoped_ptr<QueueTouchEventDelegate> queued_delegate( 2157 scoped_ptr<QueueTouchEventDelegate> queued_delegate(
2084 new QueueTouchEventDelegate(root_window())); 2158 new QueueTouchEventDelegate(root_window()));
2085 const int kWindowWidth = 123; 2159 const int kWindowWidth = 123;
2086 const int kWindowHeight = 45; 2160 const int kWindowHeight = 45;
(...skipping 24 matching lines...) Expand all
2111 2185
2112 // Process the two queued events. 2186 // Process the two queued events.
2113 queued_delegate->ReceivedAck(); 2187 queued_delegate->ReceivedAck();
2114 RunAllPendingInMessageLoop(); 2188 RunAllPendingInMessageLoop();
2115 EXPECT_TRUE(queued_delegate->begin()); 2189 EXPECT_TRUE(queued_delegate->begin());
2116 EXPECT_TRUE(queued_delegate->tap_down()); 2190 EXPECT_TRUE(queued_delegate->tap_down());
2117 queued_delegate->Reset(); 2191 queued_delegate->Reset();
2118 2192
2119 queued_delegate->ReceivedAck(); 2193 queued_delegate->ReceivedAck();
2120 RunAllPendingInMessageLoop(); 2194 RunAllPendingInMessageLoop();
2195 EXPECT_TRUE(queued_delegate->tap_cancel());
2121 EXPECT_TRUE(queued_delegate->scroll_begin()); 2196 EXPECT_TRUE(queued_delegate->scroll_begin());
2122 EXPECT_TRUE(queued_delegate->scroll_update()); 2197 EXPECT_TRUE(queued_delegate->scroll_update());
2123 EXPECT_TRUE(queued_delegate->scroll_end()); 2198 EXPECT_TRUE(queued_delegate->scroll_end());
2124 EXPECT_TRUE(queued_delegate->end()); 2199 EXPECT_TRUE(queued_delegate->end());
2125 } 2200 }
2126 2201
2127 TEST_F(GestureRecognizerTest, TwoFingerTap) { 2202 TEST_F(GestureRecognizerTest, TwoFingerTap) {
2128 scoped_ptr<GestureEventConsumeDelegate> delegate( 2203 scoped_ptr<GestureEventConsumeDelegate> delegate(
2129 new GestureEventConsumeDelegate()); 2204 new GestureEventConsumeDelegate());
2130 const int kWindowWidth = 123; 2205 const int kWindowWidth = 123;
2131 const int kWindowHeight = 45; 2206 const int kWindowHeight = 45;
2132 const int kTouchId1 = 2; 2207 const int kTouchId1 = 2;
2133 const int kTouchId2 = 3; 2208 const int kTouchId2 = 3;
2134 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight); 2209 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight);
2135 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate( 2210 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
2136 delegate.get(), -1234, bounds, NULL)); 2211 delegate.get(), -1234, bounds, NULL));
2137 2212
2138 delegate->Reset(); 2213 delegate->Reset();
2139 ui::TouchEvent press1(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201), 2214 ui::TouchEvent press1(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
2140 kTouchId1, GetTime()); 2215 kTouchId1, GetTime());
2141 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press1); 2216 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press1);
2142 EXPECT_FALSE(delegate->tap()); 2217 EXPECT_FALSE(delegate->tap());
2143 EXPECT_TRUE(delegate->tap_down()); 2218 EXPECT_TRUE(delegate->tap_down());
2219 EXPECT_FALSE(delegate->tap_cancel());
2144 EXPECT_FALSE(delegate->double_tap()); 2220 EXPECT_FALSE(delegate->double_tap());
2145 EXPECT_FALSE(delegate->scroll_begin()); 2221 EXPECT_FALSE(delegate->scroll_begin());
2146 EXPECT_FALSE(delegate->scroll_update()); 2222 EXPECT_FALSE(delegate->scroll_update());
2147 EXPECT_FALSE(delegate->scroll_end()); 2223 EXPECT_FALSE(delegate->scroll_end());
2148 EXPECT_FALSE(delegate->long_press()); 2224 EXPECT_FALSE(delegate->long_press());
2149 EXPECT_FALSE(delegate->two_finger_tap()); 2225 EXPECT_FALSE(delegate->two_finger_tap());
2150 2226
2151 delegate->Reset(); 2227 delegate->Reset();
2152 ui::TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(130, 201), 2228 ui::TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(130, 201),
2153 kTouchId2, GetTime()); 2229 kTouchId2, GetTime());
2154 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2); 2230 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2);
2155 EXPECT_FALSE(delegate->tap()); 2231 EXPECT_FALSE(delegate->tap());
2156 EXPECT_FALSE(delegate->tap_down()); // no touch down for second tap. 2232 EXPECT_FALSE(delegate->tap_down()); // no touch down for second tap.
2233 EXPECT_TRUE(delegate->tap_cancel());
2157 EXPECT_FALSE(delegate->double_tap()); 2234 EXPECT_FALSE(delegate->double_tap());
2158 EXPECT_FALSE(delegate->scroll_begin()); 2235 EXPECT_FALSE(delegate->scroll_begin());
2159 EXPECT_FALSE(delegate->scroll_update()); 2236 EXPECT_FALSE(delegate->scroll_update());
2160 EXPECT_FALSE(delegate->scroll_end()); 2237 EXPECT_FALSE(delegate->scroll_end());
2161 EXPECT_FALSE(delegate->long_press()); 2238 EXPECT_FALSE(delegate->long_press());
2162 EXPECT_FALSE(delegate->two_finger_tap()); 2239 EXPECT_FALSE(delegate->two_finger_tap());
2163 2240
2164 // Little bit of touch move should not affect our state. 2241 // Little bit of touch move should not affect our state.
2165 delegate->Reset(); 2242 delegate->Reset();
2166 ui::TouchEvent move1(ui::ET_TOUCH_MOVED, gfx::Point(102, 202), 2243 ui::TouchEvent move1(ui::ET_TOUCH_MOVED, gfx::Point(102, 202),
2167 kTouchId1, GetTime()); 2244 kTouchId1, GetTime());
2168 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move1); 2245 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move1);
2169 ui::TouchEvent move2(ui::ET_TOUCH_MOVED, gfx::Point(131, 202), 2246 ui::TouchEvent move2(ui::ET_TOUCH_MOVED, gfx::Point(131, 202),
2170 kTouchId2, GetTime()); 2247 kTouchId2, GetTime());
2171 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move2); 2248 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move2);
2172 EXPECT_FALSE(delegate->tap()); 2249 EXPECT_FALSE(delegate->tap());
2173 EXPECT_FALSE(delegate->tap_down()); 2250 EXPECT_FALSE(delegate->tap_down());
2251 EXPECT_FALSE(delegate->tap_cancel());
2174 EXPECT_FALSE(delegate->double_tap()); 2252 EXPECT_FALSE(delegate->double_tap());
2175 EXPECT_FALSE(delegate->scroll_begin()); 2253 EXPECT_FALSE(delegate->scroll_begin());
2176 EXPECT_FALSE(delegate->scroll_update()); 2254 EXPECT_FALSE(delegate->scroll_update());
2177 EXPECT_FALSE(delegate->scroll_end()); 2255 EXPECT_FALSE(delegate->scroll_end());
2178 EXPECT_FALSE(delegate->long_press()); 2256 EXPECT_FALSE(delegate->long_press());
2179 EXPECT_FALSE(delegate->two_finger_tap()); 2257 EXPECT_FALSE(delegate->two_finger_tap());
2180 2258
2181 // Make sure there is enough delay before the touch is released so that it is 2259 // Make sure there is enough delay before the touch is released so that it is
2182 // recognized as a tap. 2260 // recognized as a tap.
2183 delegate->Reset(); 2261 delegate->Reset();
2184 ui::TouchEvent release1(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 2262 ui::TouchEvent release1(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
2185 kTouchId1, press1.time_stamp() + 2263 kTouchId1, press1.time_stamp() +
2186 base::TimeDelta::FromMilliseconds(50)); 2264 base::TimeDelta::FromMilliseconds(50));
2187 2265
2188 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release1); 2266 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release1);
2189 EXPECT_FALSE(delegate->tap()); 2267 EXPECT_FALSE(delegate->tap());
2190 EXPECT_FALSE(delegate->tap_down()); 2268 EXPECT_FALSE(delegate->tap_down());
2269 EXPECT_FALSE(delegate->tap_cancel());
2191 EXPECT_FALSE(delegate->double_tap()); 2270 EXPECT_FALSE(delegate->double_tap());
2192 EXPECT_FALSE(delegate->scroll_begin()); 2271 EXPECT_FALSE(delegate->scroll_begin());
2193 EXPECT_FALSE(delegate->scroll_update()); 2272 EXPECT_FALSE(delegate->scroll_update());
2194 EXPECT_FALSE(delegate->scroll_end()); 2273 EXPECT_FALSE(delegate->scroll_end());
2195 EXPECT_TRUE(delegate->two_finger_tap()); 2274 EXPECT_TRUE(delegate->two_finger_tap());
2196 2275
2197 // Lift second finger. 2276 // Lift second finger.
2198 // Make sure there is enough delay before the touch is released so that it is 2277 // Make sure there is enough delay before the touch is released so that it is
2199 // recognized as a tap. 2278 // recognized as a tap.
2200 delegate->Reset(); 2279 delegate->Reset();
2201 ui::TouchEvent release2(ui::ET_TOUCH_RELEASED, gfx::Point(130, 201), 2280 ui::TouchEvent release2(ui::ET_TOUCH_RELEASED, gfx::Point(130, 201),
2202 kTouchId2, press2.time_stamp() + 2281 kTouchId2, press2.time_stamp() +
2203 base::TimeDelta::FromMilliseconds(50)); 2282 base::TimeDelta::FromMilliseconds(50));
2204 2283
2205 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release2); 2284 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release2);
2206 EXPECT_FALSE(delegate->tap()); 2285 EXPECT_FALSE(delegate->tap());
2207 EXPECT_FALSE(delegate->tap_down()); 2286 EXPECT_FALSE(delegate->tap_down());
2287 EXPECT_FALSE(delegate->tap_cancel());
2208 EXPECT_FALSE(delegate->double_tap()); 2288 EXPECT_FALSE(delegate->double_tap());
2209 EXPECT_FALSE(delegate->scroll_begin()); 2289 EXPECT_FALSE(delegate->scroll_begin());
2210 EXPECT_FALSE(delegate->scroll_update()); 2290 EXPECT_FALSE(delegate->scroll_update());
2211 EXPECT_TRUE(delegate->scroll_end()); 2291 EXPECT_TRUE(delegate->scroll_end());
2212 EXPECT_FALSE(delegate->two_finger_tap()); 2292 EXPECT_FALSE(delegate->two_finger_tap());
2213 } 2293 }
2214 2294
2215 TEST_F(GestureRecognizerTest, TwoFingerTapExpired) { 2295 TEST_F(GestureRecognizerTest, TwoFingerTapExpired) {
2216 scoped_ptr<GestureEventConsumeDelegate> delegate( 2296 scoped_ptr<GestureEventConsumeDelegate> delegate(
2217 new GestureEventConsumeDelegate()); 2297 new GestureEventConsumeDelegate());
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
2452 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight); 2532 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight);
2453 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate( 2533 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
2454 delegate.get(), -1234, bounds, NULL)); 2534 delegate.get(), -1234, bounds, NULL));
2455 2535
2456 delegate->Reset(); 2536 delegate->Reset();
2457 ui::TouchEvent press1(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201), 2537 ui::TouchEvent press1(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
2458 kTouchId1, GetTime()); 2538 kTouchId1, GetTime());
2459 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press1); 2539 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press1);
2460 EXPECT_FALSE(delegate->tap()); 2540 EXPECT_FALSE(delegate->tap());
2461 EXPECT_TRUE(delegate->tap_down()); 2541 EXPECT_TRUE(delegate->tap_down());
2542 EXPECT_FALSE(delegate->tap_cancel());
2462 EXPECT_FALSE(delegate->double_tap()); 2543 EXPECT_FALSE(delegate->double_tap());
2463 EXPECT_FALSE(delegate->scroll_begin()); 2544 EXPECT_FALSE(delegate->scroll_begin());
2464 EXPECT_FALSE(delegate->scroll_update()); 2545 EXPECT_FALSE(delegate->scroll_update());
2465 EXPECT_FALSE(delegate->scroll_end()); 2546 EXPECT_FALSE(delegate->scroll_end());
2466 EXPECT_FALSE(delegate->long_press()); 2547 EXPECT_FALSE(delegate->long_press());
2467 EXPECT_FALSE(delegate->two_finger_tap()); 2548 EXPECT_FALSE(delegate->two_finger_tap());
2468 2549
2469 delegate->Reset(); 2550 delegate->Reset();
2470 ui::TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(430, 201), 2551 ui::TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(430, 201),
2471 kTouchId2, GetTime()); 2552 kTouchId2, GetTime());
2472 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2); 2553 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2);
2473 EXPECT_FALSE(delegate->tap()); 2554 EXPECT_FALSE(delegate->tap());
2474 EXPECT_FALSE(delegate->tap_down()); // no touch down for second tap. 2555 EXPECT_FALSE(delegate->tap_down()); // no touch down for second tap.
2556 EXPECT_TRUE(delegate->tap_cancel());
2475 EXPECT_FALSE(delegate->double_tap()); 2557 EXPECT_FALSE(delegate->double_tap());
2476 EXPECT_TRUE(delegate->scroll_begin()); 2558 EXPECT_TRUE(delegate->scroll_begin());
2477 EXPECT_FALSE(delegate->scroll_update()); 2559 EXPECT_FALSE(delegate->scroll_update());
2478 EXPECT_FALSE(delegate->scroll_end()); 2560 EXPECT_FALSE(delegate->scroll_end());
2479 EXPECT_FALSE(delegate->long_press()); 2561 EXPECT_FALSE(delegate->long_press());
2480 EXPECT_FALSE(delegate->two_finger_tap()); 2562 EXPECT_FALSE(delegate->two_finger_tap());
2481 EXPECT_TRUE(delegate->pinch_begin()); 2563 EXPECT_TRUE(delegate->pinch_begin());
2482 } 2564 }
2483 2565
2484 // Verifies if a window is the target of multiple touch-ids and we hide the 2566 // Verifies if a window is the target of multiple touch-ids and we hide the
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
2571 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight); 2653 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight);
2572 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate( 2654 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
2573 delegate.get(), -1234, bounds, NULL)); 2655 delegate.get(), -1234, bounds, NULL));
2574 2656
2575 delegate->Reset(); 2657 delegate->Reset();
2576 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201), 2658 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
2577 kTouchId, GetTime()); 2659 kTouchId, GetTime());
2578 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press); 2660 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press);
2579 EXPECT_FALSE(delegate->tap()); 2661 EXPECT_FALSE(delegate->tap());
2580 EXPECT_TRUE(delegate->tap_down()); 2662 EXPECT_TRUE(delegate->tap_down());
2663 EXPECT_FALSE(delegate->tap_cancel());
2581 EXPECT_TRUE(delegate->begin()); 2664 EXPECT_TRUE(delegate->begin());
2582 EXPECT_FALSE(delegate->double_tap()); 2665 EXPECT_FALSE(delegate->double_tap());
2583 EXPECT_FALSE(delegate->scroll_begin()); 2666 EXPECT_FALSE(delegate->scroll_begin());
2584 EXPECT_FALSE(delegate->scroll_update()); 2667 EXPECT_FALSE(delegate->scroll_update());
2585 EXPECT_FALSE(delegate->scroll_end()); 2668 EXPECT_FALSE(delegate->scroll_end());
2586 2669
2587 // Move the touch-point enough so that it would normally be considered a 2670 // Move the touch-point enough so that it would normally be considered a
2588 // scroll. But since the touch-moves will be consumed, the scroll should not 2671 // scroll. But since the touch-moves will be consumed, the scroll should not
2589 // start. 2672 // start. We should, however, get the TAP_CANCEL event now (since it's now
2673 // impossible for the gesture to become a tap).
2590 SendScrollEvent(root_window(), 130, 230, kTouchId, delegate.get()); 2674 SendScrollEvent(root_window(), 130, 230, kTouchId, delegate.get());
2591 EXPECT_FALSE(delegate->tap()); 2675 EXPECT_FALSE(delegate->tap());
2592 EXPECT_FALSE(delegate->tap_down()); 2676 EXPECT_FALSE(delegate->tap_down());
2677 // TODO(rbyers): Really we should get the TapCancel here instead of below,
2678 // but this is a symptom of a larger issue: crbug.com/146397.
2679 EXPECT_FALSE(delegate->tap_cancel());
2593 EXPECT_FALSE(delegate->begin()); 2680 EXPECT_FALSE(delegate->begin());
2594 EXPECT_FALSE(delegate->double_tap()); 2681 EXPECT_FALSE(delegate->double_tap());
2595 EXPECT_FALSE(delegate->scroll_begin()); 2682 EXPECT_FALSE(delegate->scroll_begin());
2596 EXPECT_FALSE(delegate->scroll_update()); 2683 EXPECT_FALSE(delegate->scroll_update());
2597 EXPECT_FALSE(delegate->scroll_end()); 2684 EXPECT_FALSE(delegate->scroll_end());
2598 2685
2599 // Now, stop consuming touch-move events, and move the touch-point again. 2686 // Now, stop consuming touch-move events, and move the touch-point again.
2600 delegate->set_consume_touch_move(false); 2687 delegate->set_consume_touch_move(false);
2601 SendScrollEvent(root_window(), 159, 259, kTouchId, delegate.get()); 2688 SendScrollEvent(root_window(), 159, 259, kTouchId, delegate.get());
2602 EXPECT_FALSE(delegate->tap()); 2689 EXPECT_FALSE(delegate->tap());
2603 EXPECT_FALSE(delegate->tap_down()); 2690 EXPECT_FALSE(delegate->tap_down());
2691 EXPECT_TRUE(delegate->tap_cancel());
2604 EXPECT_FALSE(delegate->begin()); 2692 EXPECT_FALSE(delegate->begin());
2605 EXPECT_FALSE(delegate->double_tap()); 2693 EXPECT_FALSE(delegate->double_tap());
2606 EXPECT_TRUE(delegate->scroll_begin()); 2694 EXPECT_TRUE(delegate->scroll_begin());
2607 EXPECT_TRUE(delegate->scroll_update()); 2695 EXPECT_TRUE(delegate->scroll_update());
2608 EXPECT_FALSE(delegate->scroll_end()); 2696 EXPECT_FALSE(delegate->scroll_end());
2609 EXPECT_EQ(29, delegate->scroll_x()); 2697 EXPECT_EQ(29, delegate->scroll_x());
2610 EXPECT_EQ(29, delegate->scroll_y()); 2698 EXPECT_EQ(29, delegate->scroll_y());
2611 EXPECT_EQ(gfx::Point(1, 1).ToString(), 2699 EXPECT_EQ(gfx::Point(1, 1).ToString(),
2612 delegate->scroll_begin_position().ToString()); 2700 delegate->scroll_begin_position().ToString());
2613 2701
2614 // Start consuming touch-move events again. However, since gesture-scroll has 2702 // Start consuming touch-move events again. However, since gesture-scroll has
2615 // already started, the touch-move events should still result in scroll-update 2703 // already started, the touch-move events should still result in scroll-update
2616 // gesturs. 2704 // gesturs.
2617 delegate->set_consume_touch_move(true); 2705 delegate->set_consume_touch_move(true);
2618 2706
2619 // Move some more to generate a few more scroll updates. 2707 // Move some more to generate a few more scroll updates.
2620 SendScrollEvent(root_window(), 110, 211, kTouchId, delegate.get()); 2708 SendScrollEvent(root_window(), 110, 211, kTouchId, delegate.get());
2621 EXPECT_FALSE(delegate->tap()); 2709 EXPECT_FALSE(delegate->tap());
2622 EXPECT_FALSE(delegate->tap_down()); 2710 EXPECT_FALSE(delegate->tap_down());
2711 EXPECT_FALSE(delegate->tap_cancel());
2623 EXPECT_FALSE(delegate->begin()); 2712 EXPECT_FALSE(delegate->begin());
2624 EXPECT_FALSE(delegate->double_tap()); 2713 EXPECT_FALSE(delegate->double_tap());
2625 EXPECT_FALSE(delegate->scroll_begin()); 2714 EXPECT_FALSE(delegate->scroll_begin());
2626 EXPECT_TRUE(delegate->scroll_update()); 2715 EXPECT_TRUE(delegate->scroll_update());
2627 EXPECT_FALSE(delegate->scroll_end()); 2716 EXPECT_FALSE(delegate->scroll_end());
2628 EXPECT_EQ(-49, delegate->scroll_x()); 2717 EXPECT_EQ(-49, delegate->scroll_x());
2629 EXPECT_EQ(-48, delegate->scroll_y()); 2718 EXPECT_EQ(-48, delegate->scroll_y());
2630 2719
2631 SendScrollEvent(root_window(), 140, 215, kTouchId, delegate.get()); 2720 SendScrollEvent(root_window(), 140, 215, kTouchId, delegate.get());
2632 EXPECT_FALSE(delegate->tap()); 2721 EXPECT_FALSE(delegate->tap());
2633 EXPECT_FALSE(delegate->tap_down()); 2722 EXPECT_FALSE(delegate->tap_down());
2723 EXPECT_FALSE(delegate->tap_cancel());
2634 EXPECT_FALSE(delegate->begin()); 2724 EXPECT_FALSE(delegate->begin());
2635 EXPECT_FALSE(delegate->double_tap()); 2725 EXPECT_FALSE(delegate->double_tap());
2636 EXPECT_FALSE(delegate->scroll_begin()); 2726 EXPECT_FALSE(delegate->scroll_begin());
2637 EXPECT_TRUE(delegate->scroll_update()); 2727 EXPECT_TRUE(delegate->scroll_update());
2638 EXPECT_FALSE(delegate->scroll_end()); 2728 EXPECT_FALSE(delegate->scroll_end());
2639 EXPECT_EQ(30, delegate->scroll_x()); 2729 EXPECT_EQ(30, delegate->scroll_x());
2640 EXPECT_EQ(4, delegate->scroll_y()); 2730 EXPECT_EQ(4, delegate->scroll_y());
2641 2731
2642 // Release the touch. This should end the scroll. 2732 // Release the touch. This should end the scroll.
2643 delegate->Reset(); 2733 delegate->Reset();
2644 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 2734 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
2645 kTouchId, press.time_stamp() + 2735 kTouchId, press.time_stamp() +
2646 base::TimeDelta::FromMilliseconds(50)); 2736 base::TimeDelta::FromMilliseconds(50));
2647 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release); 2737 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release);
2648 EXPECT_FALSE(delegate->tap()); 2738 EXPECT_FALSE(delegate->tap());
2649 EXPECT_FALSE(delegate->tap_down()); 2739 EXPECT_FALSE(delegate->tap_down());
2740 EXPECT_FALSE(delegate->tap_cancel());
2650 EXPECT_FALSE(delegate->begin()); 2741 EXPECT_FALSE(delegate->begin());
2651 EXPECT_TRUE(delegate->end()); 2742 EXPECT_TRUE(delegate->end());
2652 EXPECT_FALSE(delegate->double_tap()); 2743 EXPECT_FALSE(delegate->double_tap());
2653 EXPECT_FALSE(delegate->scroll_begin()); 2744 EXPECT_FALSE(delegate->scroll_begin());
2654 EXPECT_FALSE(delegate->scroll_update()); 2745 EXPECT_FALSE(delegate->scroll_update());
2655 EXPECT_TRUE(delegate->scroll_end()); 2746 EXPECT_TRUE(delegate->scroll_end());
2656 } 2747 }
2657 2748
2658 // Check that appropriate touch events generate double tap gesture events. 2749 // Check that appropriate touch events generate double tap gesture events.
2659 TEST_F(GestureRecognizerTest, GestureEventDoubleTap) { 2750 TEST_F(GestureRecognizerTest, GestureEventDoubleTap) {
(...skipping 21 matching lines...) Expand all
2681 kTouchId, release1.time_stamp() + 2772 kTouchId, release1.time_stamp() +
2682 base::TimeDelta::FromMilliseconds(200)); 2773 base::TimeDelta::FromMilliseconds(200));
2683 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2); 2774 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2);
2684 ui::TouchEvent release2(ui::ET_TOUCH_RELEASED, gfx::Point(102, 206), 2775 ui::TouchEvent release2(ui::ET_TOUCH_RELEASED, gfx::Point(102, 206),
2685 kTouchId, press2.time_stamp() + 2776 kTouchId, press2.time_stamp() +
2686 base::TimeDelta::FromMilliseconds(50)); 2777 base::TimeDelta::FromMilliseconds(50));
2687 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release2); 2778 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release2);
2688 2779
2689 EXPECT_TRUE(delegate->tap()); 2780 EXPECT_TRUE(delegate->tap());
2690 EXPECT_TRUE(delegate->tap_down()); 2781 EXPECT_TRUE(delegate->tap_down());
2782 EXPECT_FALSE(delegate->tap_cancel());
2691 EXPECT_TRUE(delegate->begin()); 2783 EXPECT_TRUE(delegate->begin());
2692 EXPECT_TRUE(delegate->end()); 2784 EXPECT_TRUE(delegate->end());
2693 EXPECT_TRUE(delegate->double_tap()); 2785 EXPECT_TRUE(delegate->double_tap());
2694 EXPECT_FALSE(delegate->scroll_begin()); 2786 EXPECT_FALSE(delegate->scroll_begin());
2695 EXPECT_FALSE(delegate->scroll_update()); 2787 EXPECT_FALSE(delegate->scroll_update());
2696 EXPECT_FALSE(delegate->scroll_end()); 2788 EXPECT_FALSE(delegate->scroll_end());
2697 2789
2698 EXPECT_EQ(2, delegate->tap_count()); 2790 EXPECT_EQ(2, delegate->tap_count());
2699 } 2791 }
2700 2792
(...skipping 23 matching lines...) Expand all
2724 kTouchId, release1.time_stamp() + 2816 kTouchId, release1.time_stamp() +
2725 base::TimeDelta::FromMilliseconds(200)); 2817 base::TimeDelta::FromMilliseconds(200));
2726 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2); 2818 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2);
2727 ui::TouchEvent release2(ui::ET_TOUCH_RELEASED, gfx::Point(201, 201), 2819 ui::TouchEvent release2(ui::ET_TOUCH_RELEASED, gfx::Point(201, 201),
2728 kTouchId, press2.time_stamp() + 2820 kTouchId, press2.time_stamp() +
2729 base::TimeDelta::FromMilliseconds(50)); 2821 base::TimeDelta::FromMilliseconds(50));
2730 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release2); 2822 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release2);
2731 2823
2732 EXPECT_TRUE(delegate->tap()); 2824 EXPECT_TRUE(delegate->tap());
2733 EXPECT_TRUE(delegate->tap_down()); 2825 EXPECT_TRUE(delegate->tap_down());
2826 EXPECT_FALSE(delegate->tap_cancel());
2734 EXPECT_TRUE(delegate->begin()); 2827 EXPECT_TRUE(delegate->begin());
2735 EXPECT_TRUE(delegate->end()); 2828 EXPECT_TRUE(delegate->end());
2736 EXPECT_FALSE(delegate->double_tap()); 2829 EXPECT_FALSE(delegate->double_tap());
2737 EXPECT_FALSE(delegate->scroll_begin()); 2830 EXPECT_FALSE(delegate->scroll_begin());
2738 EXPECT_FALSE(delegate->scroll_update()); 2831 EXPECT_FALSE(delegate->scroll_update());
2739 EXPECT_FALSE(delegate->scroll_end()); 2832 EXPECT_FALSE(delegate->scroll_end());
2740 2833
2741 EXPECT_EQ(1, delegate->tap_count()); 2834 EXPECT_EQ(1, delegate->tap_count());
2742 } 2835 }
2743 2836
(...skipping 24 matching lines...) Expand all
2768 kTouchId, release1.time_stamp() + 2861 kTouchId, release1.time_stamp() +
2769 base::TimeDelta::FromMilliseconds(2000)); 2862 base::TimeDelta::FromMilliseconds(2000));
2770 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2); 2863 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2);
2771 ui::TouchEvent release2(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 2864 ui::TouchEvent release2(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
2772 kTouchId, press2.time_stamp() + 2865 kTouchId, press2.time_stamp() +
2773 base::TimeDelta::FromMilliseconds(50)); 2866 base::TimeDelta::FromMilliseconds(50));
2774 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release2); 2867 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release2);
2775 2868
2776 EXPECT_TRUE(delegate->tap()); 2869 EXPECT_TRUE(delegate->tap());
2777 EXPECT_TRUE(delegate->tap_down()); 2870 EXPECT_TRUE(delegate->tap_down());
2871 EXPECT_FALSE(delegate->tap_cancel());
2778 EXPECT_TRUE(delegate->begin()); 2872 EXPECT_TRUE(delegate->begin());
2779 EXPECT_TRUE(delegate->end()); 2873 EXPECT_TRUE(delegate->end());
2780 EXPECT_FALSE(delegate->double_tap()); 2874 EXPECT_FALSE(delegate->double_tap());
2781 EXPECT_FALSE(delegate->scroll_begin()); 2875 EXPECT_FALSE(delegate->scroll_begin());
2782 EXPECT_FALSE(delegate->scroll_update()); 2876 EXPECT_FALSE(delegate->scroll_update());
2783 EXPECT_FALSE(delegate->scroll_end()); 2877 EXPECT_FALSE(delegate->scroll_end());
2784 2878
2785 EXPECT_EQ(1, delegate->tap_count()); 2879 EXPECT_EQ(1, delegate->tap_count());
2786 } 2880 }
2787 2881
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
2823 2917
2824 delegate->Reset(); 2918 delegate->Reset();
2825 2919
2826 // The position doesn't move, but the radius changes. 2920 // The position doesn't move, but the radius changes.
2827 ui::TouchEvent move2(ui::ET_TOUCH_MOVED, gfx::Point(101, 201), kTouchId, 2921 ui::TouchEvent move2(ui::ET_TOUCH_MOVED, gfx::Point(101, 201), kTouchId,
2828 press2.time_stamp() + base::TimeDelta::FromMilliseconds(40)); 2922 press2.time_stamp() + base::TimeDelta::FromMilliseconds(40));
2829 move2.set_radius_x(50); 2923 move2.set_radius_x(50);
2830 move2.set_radius_y(60); 2924 move2.set_radius_y(60);
2831 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move2); 2925 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move2);
2832 EXPECT_FALSE(delegate->tap()); 2926 EXPECT_FALSE(delegate->tap());
2927 EXPECT_FALSE(delegate->tap_cancel());
2833 EXPECT_FALSE(delegate->scroll_update()); 2928 EXPECT_FALSE(delegate->scroll_update());
2834 EXPECT_FALSE(delegate->pinch_update()); 2929 EXPECT_FALSE(delegate->pinch_update());
2835 2930
2836 delegate->Reset(); 2931 delegate->Reset();
2837 } 2932 }
2838 2933
2839 } // namespace test 2934 } // namespace test
2840 } // namespace aura 2935 } // namespace aura
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698