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

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

Issue 10533029: Fix TAP_DOWN gesture event: (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed build Created 8 years, 6 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/event.h" 9 #include "ui/aura/event.h"
10 #include "ui/aura/root_window.h" 10 #include "ui/aura/root_window.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_up_(false), 39 begin_(false),
40 end_(false),
40 double_tap_(false), 41 double_tap_(false),
41 scroll_begin_(false), 42 scroll_begin_(false),
42 scroll_update_(false), 43 scroll_update_(false),
43 scroll_end_(false), 44 scroll_end_(false),
44 pinch_begin_(false), 45 pinch_begin_(false),
45 pinch_update_(false), 46 pinch_update_(false),
46 pinch_end_(false), 47 pinch_end_(false),
47 long_press_(false), 48 long_press_(false),
48 fling_(false), 49 fling_(false),
49 two_finger_tap_(false), 50 two_finger_tap_(false),
50 scroll_x_(0), 51 scroll_x_(0),
51 scroll_y_(0), 52 scroll_y_(0),
52 velocity_x_(0), 53 velocity_x_(0),
53 velocity_y_(0), 54 velocity_y_(0),
54 radius_x_(0), 55 radius_x_(0),
55 radius_y_(0) { 56 radius_y_(0) {
56 } 57 }
57 58
58 virtual ~GestureEventConsumeDelegate() {} 59 virtual ~GestureEventConsumeDelegate() {}
59 60
60 void Reset() { 61 void Reset() {
61 tap_ = false; 62 tap_ = false;
62 tap_down_ = false; 63 tap_down_ = false;
63 tap_up_ = false; 64 begin_ = false;
65 end_ = false;
64 double_tap_ = false; 66 double_tap_ = false;
65 scroll_begin_ = false; 67 scroll_begin_ = false;
66 scroll_update_ = false; 68 scroll_update_ = false;
67 scroll_end_ = false; 69 scroll_end_ = false;
68 pinch_begin_ = false; 70 pinch_begin_ = false;
69 pinch_update_ = false; 71 pinch_update_ = false;
70 pinch_end_ = false; 72 pinch_end_ = false;
71 long_press_ = false; 73 long_press_ = false;
72 fling_ = false; 74 fling_ = false;
73 two_finger_tap_ = false; 75 two_finger_tap_ = false;
74 76
75 scroll_begin_position_.SetPoint(0, 0); 77 scroll_begin_position_.SetPoint(0, 0);
76 tap_location_.SetPoint(0, 0); 78 tap_location_.SetPoint(0, 0);
77 79
78 scroll_x_ = 0; 80 scroll_x_ = 0;
79 scroll_y_ = 0; 81 scroll_y_ = 0;
80 velocity_x_ = 0; 82 velocity_x_ = 0;
81 velocity_y_ = 0; 83 velocity_y_ = 0;
82 radius_x_ = 0; 84 radius_x_ = 0;
83 radius_y_ = 0; 85 radius_y_ = 0;
84 } 86 }
85 87
86 bool tap() const { return tap_; } 88 bool tap() const { return tap_; }
87 bool tap_down() const { return tap_down_; } 89 bool tap_down() const { return tap_down_; }
88 bool tap_up() const { return tap_up_; } 90 bool begin() const { return begin_; }
91 bool end() const { return end_; }
89 bool double_tap() const { return double_tap_; } 92 bool double_tap() const { return double_tap_; }
90 bool scroll_begin() const { return scroll_begin_; } 93 bool scroll_begin() const { return scroll_begin_; }
91 bool scroll_update() const { return scroll_update_; } 94 bool scroll_update() const { return scroll_update_; }
92 bool scroll_end() const { return scroll_end_; } 95 bool scroll_end() const { return scroll_end_; }
93 bool pinch_begin() const { return pinch_begin_; } 96 bool pinch_begin() const { return pinch_begin_; }
94 bool pinch_update() const { return pinch_update_; } 97 bool pinch_update() const { return pinch_update_; }
95 bool pinch_end() const { return pinch_end_; } 98 bool pinch_end() const { return pinch_end_; }
96 bool long_press() const { return long_press_; } 99 bool long_press() const { return long_press_; }
97 bool fling() const { return fling_; } 100 bool fling() const { return fling_; }
98 bool two_finger_tap() const { return two_finger_tap_; } 101 bool two_finger_tap() const { return two_finger_tap_; }
(...skipping 18 matching lines...) Expand all
117 switch (gesture->type()) { 120 switch (gesture->type()) {
118 case ui::ET_GESTURE_TAP: 121 case ui::ET_GESTURE_TAP:
119 radius_x_ = gesture->delta_x(); 122 radius_x_ = gesture->delta_x();
120 radius_y_ = gesture->delta_y(); 123 radius_y_ = gesture->delta_y();
121 tap_location_ = gesture->location(); 124 tap_location_ = gesture->location();
122 tap_ = true; 125 tap_ = true;
123 break; 126 break;
124 case ui::ET_GESTURE_TAP_DOWN: 127 case ui::ET_GESTURE_TAP_DOWN:
125 tap_down_ = true; 128 tap_down_ = true;
126 break; 129 break;
127 case ui::ET_GESTURE_TAP_UP: 130 case ui::ET_GESTURE_BEGIN:
128 tap_up_ = true; 131 begin_ = true;
132 break;
133 case ui::ET_GESTURE_END:
134 end_ = true;
129 break; 135 break;
130 case ui::ET_GESTURE_DOUBLE_TAP: 136 case ui::ET_GESTURE_DOUBLE_TAP:
131 double_tap_ = true; 137 double_tap_ = true;
132 break; 138 break;
133 case ui::ET_GESTURE_SCROLL_BEGIN: 139 case ui::ET_GESTURE_SCROLL_BEGIN:
134 scroll_begin_ = true; 140 scroll_begin_ = true;
135 scroll_begin_position_ = gesture->location(); 141 scroll_begin_position_ = gesture->location();
136 break; 142 break;
137 case ui::ET_GESTURE_SCROLL_UPDATE: 143 case ui::ET_GESTURE_SCROLL_UPDATE:
138 scroll_update_ = true; 144 scroll_update_ = true;
(...skipping 27 matching lines...) Expand all
166 break; 172 break;
167 default: 173 default:
168 NOTREACHED(); 174 NOTREACHED();
169 } 175 }
170 return ui::GESTURE_STATUS_CONSUMED; 176 return ui::GESTURE_STATUS_CONSUMED;
171 } 177 }
172 178
173 private: 179 private:
174 bool tap_; 180 bool tap_;
175 bool tap_down_; 181 bool tap_down_;
176 bool tap_up_; 182 bool begin_;
183 bool end_;
177 bool double_tap_; 184 bool double_tap_;
178 bool scroll_begin_; 185 bool scroll_begin_;
179 bool scroll_update_; 186 bool scroll_update_;
180 bool scroll_end_; 187 bool scroll_end_;
181 bool pinch_begin_; 188 bool pinch_begin_;
182 bool pinch_update_; 189 bool pinch_update_;
183 bool pinch_end_; 190 bool pinch_end_;
184 bool long_press_; 191 bool long_press_;
185 bool fling_; 192 bool fling_;
186 bool two_finger_tap_; 193 bool two_finger_tap_;
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight); 403 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight);
397 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate( 404 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
398 delegate.get(), -1234, bounds, NULL)); 405 delegate.get(), -1234, bounds, NULL));
399 406
400 delegate->Reset(); 407 delegate->Reset();
401 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201), 408 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
402 kTouchId, GetTime()); 409 kTouchId, GetTime());
403 root_window()->DispatchTouchEvent(&press); 410 root_window()->DispatchTouchEvent(&press);
404 EXPECT_FALSE(delegate->tap()); 411 EXPECT_FALSE(delegate->tap());
405 EXPECT_TRUE(delegate->tap_down()); 412 EXPECT_TRUE(delegate->tap_down());
413 EXPECT_TRUE(delegate->begin());
406 EXPECT_FALSE(delegate->double_tap()); 414 EXPECT_FALSE(delegate->double_tap());
407 EXPECT_FALSE(delegate->scroll_begin()); 415 EXPECT_FALSE(delegate->scroll_begin());
408 EXPECT_FALSE(delegate->scroll_update()); 416 EXPECT_FALSE(delegate->scroll_update());
409 EXPECT_FALSE(delegate->scroll_end()); 417 EXPECT_FALSE(delegate->scroll_end());
410 EXPECT_FALSE(delegate->long_press()); 418 EXPECT_FALSE(delegate->long_press());
411 419
412 // Make sure there is enough delay before the touch is released so that it is 420 // Make sure there is enough delay before the touch is released so that it is
413 // recognized as a tap. 421 // recognized as a tap.
414 delegate->Reset(); 422 delegate->Reset();
415 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 423 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
416 kTouchId, press.time_stamp() + 424 kTouchId, press.time_stamp() +
417 base::TimeDelta::FromMilliseconds(50)); 425 base::TimeDelta::FromMilliseconds(50));
418 426
419 root_window()->DispatchTouchEvent(&release); 427 root_window()->DispatchTouchEvent(&release);
420 EXPECT_TRUE(delegate->tap()); 428 EXPECT_TRUE(delegate->tap());
421 EXPECT_FALSE(delegate->tap_down()); 429 EXPECT_FALSE(delegate->tap_down());
430 EXPECT_FALSE(delegate->begin());
431 EXPECT_TRUE(delegate->end());
422 EXPECT_FALSE(delegate->double_tap()); 432 EXPECT_FALSE(delegate->double_tap());
423 EXPECT_FALSE(delegate->scroll_begin()); 433 EXPECT_FALSE(delegate->scroll_begin());
424 EXPECT_FALSE(delegate->scroll_update()); 434 EXPECT_FALSE(delegate->scroll_update());
425 EXPECT_FALSE(delegate->scroll_end()); 435 EXPECT_FALSE(delegate->scroll_end());
426 } 436 }
427 437
428 // Check that appropriate touch events generate tap gesture events 438 // Check that appropriate touch events generate tap gesture events
429 // when information about the touch radii are provided. 439 // when information about the touch radii are provided.
430 TEST_F(GestureRecognizerTest, GestureEventTapRegion) { 440 TEST_F(GestureRecognizerTest, GestureEventTapRegion) {
431 scoped_ptr<GestureEventConsumeDelegate> delegate( 441 scoped_ptr<GestureEventConsumeDelegate> delegate(
432 new GestureEventConsumeDelegate()); 442 new GestureEventConsumeDelegate());
433 const int kWindowWidth = 800; 443 const int kWindowWidth = 800;
434 const int kWindowHeight = 600; 444 const int kWindowHeight = 600;
435 const int kTouchId = 2; 445 const int kTouchId = 2;
436 gfx::Rect bounds(0, 0, kWindowWidth, kWindowHeight); 446 gfx::Rect bounds(0, 0, kWindowWidth, kWindowHeight);
437 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate( 447 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
438 delegate.get(), -1234, bounds, NULL)); 448 delegate.get(), -1234, bounds, NULL));
439 449
440 // Test with no ET_TOUCH_MOVED events. 450 // Test with no ET_TOUCH_MOVED events.
441 { 451 {
442 delegate->Reset(); 452 delegate->Reset();
443 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201), 453 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
444 kTouchId, GetTime()); 454 kTouchId, GetTime());
445 press.set_radius_x(5); 455 press.set_radius_x(5);
446 press.set_radius_y(12); 456 press.set_radius_y(12);
447 root_window()->DispatchTouchEvent(&press); 457 root_window()->DispatchTouchEvent(&press);
448 EXPECT_FALSE(delegate->tap()); 458 EXPECT_FALSE(delegate->tap());
449 EXPECT_TRUE(delegate->tap_down()); 459 EXPECT_TRUE(delegate->tap_down());
460 EXPECT_TRUE(delegate->begin());
450 EXPECT_FALSE(delegate->double_tap()); 461 EXPECT_FALSE(delegate->double_tap());
451 EXPECT_FALSE(delegate->scroll_begin()); 462 EXPECT_FALSE(delegate->scroll_begin());
452 EXPECT_FALSE(delegate->scroll_update()); 463 EXPECT_FALSE(delegate->scroll_update());
453 EXPECT_FALSE(delegate->scroll_end()); 464 EXPECT_FALSE(delegate->scroll_end());
454 EXPECT_FALSE(delegate->long_press()); 465 EXPECT_FALSE(delegate->long_press());
455 466
456 // Make sure there is enough delay before the touch is released so that it 467 // Make sure there is enough delay before the touch is released so that it
457 // is recognized as a tap. 468 // is recognized as a tap.
458 delegate->Reset(); 469 delegate->Reset();
459 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 470 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
460 kTouchId, press.time_stamp() + 471 kTouchId, press.time_stamp() +
461 base::TimeDelta::FromMilliseconds(50)); 472 base::TimeDelta::FromMilliseconds(50));
462 release.set_radius_x(5); 473 release.set_radius_x(5);
463 release.set_radius_y(12); 474 release.set_radius_y(12);
464 475
465 root_window()->DispatchTouchEvent(&release); 476 root_window()->DispatchTouchEvent(&release);
466 EXPECT_TRUE(delegate->tap()); 477 EXPECT_TRUE(delegate->tap());
467 EXPECT_FALSE(delegate->tap_down()); 478 EXPECT_FALSE(delegate->tap_down());
479 EXPECT_FALSE(delegate->begin());
480 EXPECT_TRUE(delegate->end());
468 EXPECT_FALSE(delegate->double_tap()); 481 EXPECT_FALSE(delegate->double_tap());
469 EXPECT_FALSE(delegate->scroll_begin()); 482 EXPECT_FALSE(delegate->scroll_begin());
470 EXPECT_FALSE(delegate->scroll_update()); 483 EXPECT_FALSE(delegate->scroll_update());
471 EXPECT_FALSE(delegate->scroll_end()); 484 EXPECT_FALSE(delegate->scroll_end());
472 485
473 gfx::Point actual_point(delegate->tap_location()); 486 gfx::Point actual_point(delegate->tap_location());
474 EXPECT_EQ(12, delegate->radius_x()); 487 EXPECT_EQ(12, delegate->radius_x());
475 EXPECT_EQ(12, delegate->radius_y()); 488 EXPECT_EQ(12, delegate->radius_y());
476 EXPECT_EQ(100, actual_point.x()); 489 EXPECT_EQ(100, actual_point.x());
477 EXPECT_EQ(200, actual_point.y()); 490 EXPECT_EQ(200, actual_point.y());
478 } 491 }
479 492
480 // Test with no ET_TOUCH_MOVED events but different touch points and radii. 493 // Test with no ET_TOUCH_MOVED events but different touch points and radii.
481 { 494 {
482 delegate->Reset(); 495 delegate->Reset();
483 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(365, 290), 496 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(365, 290),
484 kTouchId, GetTime()); 497 kTouchId, GetTime());
485 press.set_radius_x(8); 498 press.set_radius_x(8);
486 press.set_radius_y(14); 499 press.set_radius_y(14);
487 root_window()->DispatchTouchEvent(&press); 500 root_window()->DispatchTouchEvent(&press);
488 EXPECT_FALSE(delegate->tap()); 501 EXPECT_FALSE(delegate->tap());
489 EXPECT_TRUE(delegate->tap_down()); 502 EXPECT_TRUE(delegate->tap_down());
503 EXPECT_TRUE(delegate->begin());
490 EXPECT_FALSE(delegate->double_tap()); 504 EXPECT_FALSE(delegate->double_tap());
491 EXPECT_FALSE(delegate->scroll_begin()); 505 EXPECT_FALSE(delegate->scroll_begin());
492 EXPECT_FALSE(delegate->scroll_update()); 506 EXPECT_FALSE(delegate->scroll_update());
493 EXPECT_FALSE(delegate->scroll_end()); 507 EXPECT_FALSE(delegate->scroll_end());
494 EXPECT_FALSE(delegate->long_press()); 508 EXPECT_FALSE(delegate->long_press());
495 509
496 delegate->Reset(); 510 delegate->Reset();
497 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(377, 291), 511 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(377, 291),
498 kTouchId, press.time_stamp() + 512 kTouchId, press.time_stamp() +
499 base::TimeDelta::FromMilliseconds(50)); 513 base::TimeDelta::FromMilliseconds(50));
500 release.set_radius_x(20); 514 release.set_radius_x(20);
501 release.set_radius_y(13); 515 release.set_radius_y(13);
502 516
503 root_window()->DispatchTouchEvent(&release); 517 root_window()->DispatchTouchEvent(&release);
504 EXPECT_TRUE(delegate->tap()); 518 EXPECT_TRUE(delegate->tap());
505 EXPECT_FALSE(delegate->tap_down()); 519 EXPECT_FALSE(delegate->tap_down());
520 EXPECT_FALSE(delegate->begin());
521 EXPECT_TRUE(delegate->end());
506 EXPECT_FALSE(delegate->double_tap()); 522 EXPECT_FALSE(delegate->double_tap());
507 EXPECT_FALSE(delegate->scroll_begin()); 523 EXPECT_FALSE(delegate->scroll_begin());
508 EXPECT_FALSE(delegate->scroll_update()); 524 EXPECT_FALSE(delegate->scroll_update());
509 EXPECT_FALSE(delegate->scroll_end()); 525 EXPECT_FALSE(delegate->scroll_end());
510 526
511 gfx::Point actual_point(delegate->tap_location()); 527 gfx::Point actual_point(delegate->tap_location());
512 EXPECT_EQ(23, delegate->radius_x()); 528 EXPECT_EQ(23, delegate->radius_x());
513 EXPECT_EQ(20, delegate->radius_y()); 529 EXPECT_EQ(20, delegate->radius_y());
514 EXPECT_EQ(373, actual_point.x()); 530 EXPECT_EQ(373, actual_point.x());
515 EXPECT_EQ(290, actual_point.y()); 531 EXPECT_EQ(290, actual_point.y());
516 } 532 }
517 533
518 // Test with a single ET_TOUCH_MOVED event. 534 // Test with a single ET_TOUCH_MOVED event.
519 { 535 {
520 delegate->Reset(); 536 delegate->Reset();
521 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(46, 205), 537 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(46, 205),
522 kTouchId, GetTime()); 538 kTouchId, GetTime());
523 press.set_radius_x(6); 539 press.set_radius_x(6);
524 press.set_radius_y(10); 540 press.set_radius_y(10);
525 root_window()->DispatchTouchEvent(&press); 541 root_window()->DispatchTouchEvent(&press);
526 EXPECT_FALSE(delegate->tap()); 542 EXPECT_FALSE(delegate->tap());
527 EXPECT_TRUE(delegate->tap_down()); 543 EXPECT_TRUE(delegate->tap_down());
544 EXPECT_TRUE(delegate->begin());
528 EXPECT_FALSE(delegate->double_tap()); 545 EXPECT_FALSE(delegate->double_tap());
529 EXPECT_FALSE(delegate->scroll_begin()); 546 EXPECT_FALSE(delegate->scroll_begin());
530 EXPECT_FALSE(delegate->scroll_update()); 547 EXPECT_FALSE(delegate->scroll_update());
531 EXPECT_FALSE(delegate->scroll_end()); 548 EXPECT_FALSE(delegate->scroll_end());
532 EXPECT_FALSE(delegate->long_press()); 549 EXPECT_FALSE(delegate->long_press());
533 550
534 delegate->Reset(); 551 delegate->Reset();
535 TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(52, 200), 552 TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(52, 200),
536 kTouchId, press.time_stamp() + 553 kTouchId, press.time_stamp() +
537 base::TimeDelta::FromMilliseconds(50)); 554 base::TimeDelta::FromMilliseconds(50));
538 move.set_radius_x(8); 555 move.set_radius_x(8);
539 move.set_radius_y(12); 556 move.set_radius_y(12);
540 root_window()->DispatchTouchEvent(&move); 557 root_window()->DispatchTouchEvent(&move);
541 EXPECT_FALSE(delegate->tap()); 558 EXPECT_FALSE(delegate->tap());
542 EXPECT_FALSE(delegate->tap_down()); 559 EXPECT_FALSE(delegate->tap_down());
560 EXPECT_FALSE(delegate->begin());
543 EXPECT_FALSE(delegate->double_tap()); 561 EXPECT_FALSE(delegate->double_tap());
544 EXPECT_FALSE(delegate->scroll_begin()); 562 EXPECT_FALSE(delegate->scroll_begin());
545 EXPECT_FALSE(delegate->scroll_update()); 563 EXPECT_FALSE(delegate->scroll_update());
546 EXPECT_FALSE(delegate->scroll_end()); 564 EXPECT_FALSE(delegate->scroll_end());
547 EXPECT_FALSE(delegate->long_press()); 565 EXPECT_FALSE(delegate->long_press());
548 566
549 delegate->Reset(); 567 delegate->Reset();
550 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(50, 195), 568 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(50, 195),
551 kTouchId, press.time_stamp() + 569 kTouchId, press.time_stamp() +
552 base::TimeDelta::FromMilliseconds(50)); 570 base::TimeDelta::FromMilliseconds(50));
553 release.set_radius_x(4); 571 release.set_radius_x(4);
554 release.set_radius_y(8); 572 release.set_radius_y(8);
555 573
556 root_window()->DispatchTouchEvent(&release); 574 root_window()->DispatchTouchEvent(&release);
557 EXPECT_TRUE(delegate->tap()); 575 EXPECT_TRUE(delegate->tap());
558 EXPECT_FALSE(delegate->tap_down()); 576 EXPECT_FALSE(delegate->tap_down());
577 EXPECT_FALSE(delegate->begin());
578 EXPECT_TRUE(delegate->end());
559 EXPECT_FALSE(delegate->double_tap()); 579 EXPECT_FALSE(delegate->double_tap());
560 EXPECT_FALSE(delegate->scroll_begin()); 580 EXPECT_FALSE(delegate->scroll_begin());
561 EXPECT_FALSE(delegate->scroll_update()); 581 EXPECT_FALSE(delegate->scroll_update());
562 EXPECT_FALSE(delegate->scroll_end()); 582 EXPECT_FALSE(delegate->scroll_end());
563 583
564 gfx::Point actual_point(delegate->tap_location()); 584 gfx::Point actual_point(delegate->tap_location());
565 EXPECT_EQ(14, delegate->radius_x()); 585 EXPECT_EQ(14, delegate->radius_x());
566 EXPECT_EQ(14, delegate->radius_y()); 586 EXPECT_EQ(14, delegate->radius_y());
567 EXPECT_EQ(49, actual_point.x()); 587 EXPECT_EQ(49, actual_point.x());
568 EXPECT_EQ(200, actual_point.y()); 588 EXPECT_EQ(200, actual_point.y());
569 } 589 }
570 590
571 // Test with a few ET_TOUCH_MOVED events. 591 // Test with a few ET_TOUCH_MOVED events.
572 { 592 {
573 delegate->Reset(); 593 delegate->Reset();
574 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(400, 150), 594 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(400, 150),
575 kTouchId, GetTime()); 595 kTouchId, GetTime());
576 press.set_radius_x(7); 596 press.set_radius_x(7);
577 press.set_radius_y(10); 597 press.set_radius_y(10);
578 root_window()->DispatchTouchEvent(&press); 598 root_window()->DispatchTouchEvent(&press);
579 EXPECT_FALSE(delegate->tap()); 599 EXPECT_FALSE(delegate->tap());
580 EXPECT_TRUE(delegate->tap_down()); 600 EXPECT_TRUE(delegate->tap_down());
601 EXPECT_TRUE(delegate->begin());
581 EXPECT_FALSE(delegate->double_tap()); 602 EXPECT_FALSE(delegate->double_tap());
582 EXPECT_FALSE(delegate->scroll_begin()); 603 EXPECT_FALSE(delegate->scroll_begin());
583 EXPECT_FALSE(delegate->scroll_update()); 604 EXPECT_FALSE(delegate->scroll_update());
584 EXPECT_FALSE(delegate->scroll_end()); 605 EXPECT_FALSE(delegate->scroll_end());
585 EXPECT_FALSE(delegate->long_press()); 606 EXPECT_FALSE(delegate->long_press());
586 607
587 delegate->Reset(); 608 delegate->Reset();
588 TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(397, 155), 609 TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(397, 155),
589 kTouchId, press.time_stamp() + 610 kTouchId, press.time_stamp() +
590 base::TimeDelta::FromMilliseconds(50)); 611 base::TimeDelta::FromMilliseconds(50));
591 move.set_radius_x(13); 612 move.set_radius_x(13);
592 move.set_radius_y(12); 613 move.set_radius_y(12);
593 root_window()->DispatchTouchEvent(&move); 614 root_window()->DispatchTouchEvent(&move);
594 EXPECT_FALSE(delegate->tap()); 615 EXPECT_FALSE(delegate->tap());
595 EXPECT_FALSE(delegate->tap_down()); 616 EXPECT_FALSE(delegate->tap_down());
617 EXPECT_FALSE(delegate->begin());
596 EXPECT_FALSE(delegate->double_tap()); 618 EXPECT_FALSE(delegate->double_tap());
597 EXPECT_FALSE(delegate->scroll_begin()); 619 EXPECT_FALSE(delegate->scroll_begin());
598 EXPECT_FALSE(delegate->scroll_update()); 620 EXPECT_FALSE(delegate->scroll_update());
599 EXPECT_FALSE(delegate->scroll_end()); 621 EXPECT_FALSE(delegate->scroll_end());
600 EXPECT_FALSE(delegate->long_press()); 622 EXPECT_FALSE(delegate->long_press());
601 623
602 delegate->Reset(); 624 delegate->Reset();
603 TouchEvent move1(ui::ET_TOUCH_MOVED, gfx::Point(395, 148), 625 TouchEvent move1(ui::ET_TOUCH_MOVED, gfx::Point(395, 148),
604 kTouchId, move.time_stamp() + 626 kTouchId, move.time_stamp() +
605 base::TimeDelta::FromMilliseconds(50)); 627 base::TimeDelta::FromMilliseconds(50));
606 move1.set_radius_x(16); 628 move1.set_radius_x(16);
607 move1.set_radius_y(16); 629 move1.set_radius_y(16);
608 root_window()->DispatchTouchEvent(&move1); 630 root_window()->DispatchTouchEvent(&move1);
609 EXPECT_FALSE(delegate->tap()); 631 EXPECT_FALSE(delegate->tap());
610 EXPECT_FALSE(delegate->tap_down()); 632 EXPECT_FALSE(delegate->tap_down());
633 EXPECT_FALSE(delegate->begin());
611 EXPECT_FALSE(delegate->double_tap()); 634 EXPECT_FALSE(delegate->double_tap());
612 EXPECT_FALSE(delegate->scroll_begin()); 635 EXPECT_FALSE(delegate->scroll_begin());
613 EXPECT_FALSE(delegate->scroll_update()); 636 EXPECT_FALSE(delegate->scroll_update());
614 EXPECT_FALSE(delegate->scroll_end()); 637 EXPECT_FALSE(delegate->scroll_end());
615 EXPECT_FALSE(delegate->long_press()); 638 EXPECT_FALSE(delegate->long_press());
616 639
617 delegate->Reset(); 640 delegate->Reset();
618 TouchEvent move2(ui::ET_TOUCH_MOVED, gfx::Point(400, 150), 641 TouchEvent move2(ui::ET_TOUCH_MOVED, gfx::Point(400, 150),
619 kTouchId, move1.time_stamp() + 642 kTouchId, move1.time_stamp() +
620 base::TimeDelta::FromMilliseconds(50)); 643 base::TimeDelta::FromMilliseconds(50));
621 move2.set_radius_x(14); 644 move2.set_radius_x(14);
622 move2.set_radius_y(10); 645 move2.set_radius_y(10);
623 root_window()->DispatchTouchEvent(&move2); 646 root_window()->DispatchTouchEvent(&move2);
624 EXPECT_FALSE(delegate->tap()); 647 EXPECT_FALSE(delegate->tap());
625 EXPECT_FALSE(delegate->tap_down()); 648 EXPECT_FALSE(delegate->tap_down());
649 EXPECT_FALSE(delegate->begin());
626 EXPECT_FALSE(delegate->double_tap()); 650 EXPECT_FALSE(delegate->double_tap());
627 EXPECT_FALSE(delegate->scroll_begin()); 651 EXPECT_FALSE(delegate->scroll_begin());
628 EXPECT_FALSE(delegate->scroll_update()); 652 EXPECT_FALSE(delegate->scroll_update());
629 EXPECT_FALSE(delegate->scroll_end()); 653 EXPECT_FALSE(delegate->scroll_end());
630 EXPECT_FALSE(delegate->long_press()); 654 EXPECT_FALSE(delegate->long_press());
631 655
632 delegate->Reset(); 656 delegate->Reset();
633 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(401, 149), 657 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(401, 149),
634 kTouchId, press.time_stamp() + 658 kTouchId, press.time_stamp() +
635 base::TimeDelta::FromMilliseconds(50)); 659 base::TimeDelta::FromMilliseconds(50));
636 release.set_radius_x(8); 660 release.set_radius_x(8);
637 release.set_radius_y(9); 661 release.set_radius_y(9);
638 662
639 root_window()->DispatchTouchEvent(&release); 663 root_window()->DispatchTouchEvent(&release);
640 EXPECT_TRUE(delegate->tap()); 664 EXPECT_TRUE(delegate->tap());
641 EXPECT_FALSE(delegate->tap_down()); 665 EXPECT_FALSE(delegate->tap_down());
666 EXPECT_FALSE(delegate->begin());
667 EXPECT_TRUE(delegate->end());
642 EXPECT_FALSE(delegate->double_tap()); 668 EXPECT_FALSE(delegate->double_tap());
643 EXPECT_FALSE(delegate->scroll_begin()); 669 EXPECT_FALSE(delegate->scroll_begin());
644 EXPECT_FALSE(delegate->scroll_update()); 670 EXPECT_FALSE(delegate->scroll_update());
645 EXPECT_FALSE(delegate->scroll_end()); 671 EXPECT_FALSE(delegate->scroll_end());
646 672
647 gfx::Point actual_point(delegate->tap_location()); 673 gfx::Point actual_point(delegate->tap_location());
648 EXPECT_EQ(17, delegate->radius_x()); 674 EXPECT_EQ(17, delegate->radius_x());
649 EXPECT_EQ(18, delegate->radius_y()); 675 EXPECT_EQ(18, delegate->radius_y());
650 EXPECT_EQ(396, actual_point.x()); 676 EXPECT_EQ(396, actual_point.x());
651 EXPECT_EQ(149, actual_point.y()); 677 EXPECT_EQ(149, actual_point.y());
(...skipping 10 matching lines...) Expand all
662 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight); 688 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight);
663 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate( 689 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
664 delegate.get(), -1234, bounds, NULL)); 690 delegate.get(), -1234, bounds, NULL));
665 691
666 delegate->Reset(); 692 delegate->Reset();
667 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201), 693 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
668 kTouchId, GetTime()); 694 kTouchId, GetTime());
669 root_window()->DispatchTouchEvent(&press); 695 root_window()->DispatchTouchEvent(&press);
670 EXPECT_FALSE(delegate->tap()); 696 EXPECT_FALSE(delegate->tap());
671 EXPECT_TRUE(delegate->tap_down()); 697 EXPECT_TRUE(delegate->tap_down());
698 EXPECT_TRUE(delegate->begin());
672 EXPECT_FALSE(delegate->double_tap()); 699 EXPECT_FALSE(delegate->double_tap());
673 EXPECT_FALSE(delegate->scroll_begin()); 700 EXPECT_FALSE(delegate->scroll_begin());
674 EXPECT_FALSE(delegate->scroll_update()); 701 EXPECT_FALSE(delegate->scroll_update());
675 EXPECT_FALSE(delegate->scroll_end()); 702 EXPECT_FALSE(delegate->scroll_end());
676 703
677 // Move the touch-point enough so that it is considered as a scroll. This 704 // Move the touch-point enough so that it is considered as a scroll. This
678 // should generate both SCROLL_BEGIN and SCROLL_UPDATE gestures. 705 // should generate both SCROLL_BEGIN and SCROLL_UPDATE gestures.
679 // The first movement is diagonal, to ensure that we have a free scroll, 706 // The first movement is diagonal, to ensure that we have a free scroll,
680 // and not a rail scroll. 707 // and not a rail scroll.
681 SendScrollEvent(root_window(), 130, 230, kTouchId, delegate.get()); 708 SendScrollEvent(root_window(), 130, 230, kTouchId, delegate.get());
682 EXPECT_FALSE(delegate->tap()); 709 EXPECT_FALSE(delegate->tap());
683 EXPECT_FALSE(delegate->tap_down()); 710 EXPECT_FALSE(delegate->tap_down());
711 EXPECT_FALSE(delegate->begin());
684 EXPECT_FALSE(delegate->double_tap()); 712 EXPECT_FALSE(delegate->double_tap());
685 EXPECT_TRUE(delegate->scroll_begin()); 713 EXPECT_TRUE(delegate->scroll_begin());
686 EXPECT_TRUE(delegate->scroll_update()); 714 EXPECT_TRUE(delegate->scroll_update());
687 EXPECT_FALSE(delegate->scroll_end()); 715 EXPECT_FALSE(delegate->scroll_end());
688 EXPECT_EQ(29, delegate->scroll_x()); 716 EXPECT_EQ(29, delegate->scroll_x());
689 EXPECT_EQ(29, delegate->scroll_y()); 717 EXPECT_EQ(29, delegate->scroll_y());
690 EXPECT_EQ(gfx::Point(1, 1).ToString(), 718 EXPECT_EQ(gfx::Point(1, 1).ToString(),
691 delegate->scroll_begin_position().ToString()); 719 delegate->scroll_begin_position().ToString());
692 720
693 // Move some more to generate a few more scroll updates. 721 // Move some more to generate a few more scroll updates.
694 SendScrollEvent(root_window(), 110, 211, kTouchId, delegate.get()); 722 SendScrollEvent(root_window(), 110, 211, kTouchId, delegate.get());
695 EXPECT_FALSE(delegate->tap()); 723 EXPECT_FALSE(delegate->tap());
696 EXPECT_FALSE(delegate->tap_down()); 724 EXPECT_FALSE(delegate->tap_down());
725 EXPECT_FALSE(delegate->begin());
697 EXPECT_FALSE(delegate->double_tap()); 726 EXPECT_FALSE(delegate->double_tap());
698 EXPECT_FALSE(delegate->scroll_begin()); 727 EXPECT_FALSE(delegate->scroll_begin());
699 EXPECT_TRUE(delegate->scroll_update()); 728 EXPECT_TRUE(delegate->scroll_update());
700 EXPECT_FALSE(delegate->scroll_end()); 729 EXPECT_FALSE(delegate->scroll_end());
701 EXPECT_EQ(-20, delegate->scroll_x()); 730 EXPECT_EQ(-20, delegate->scroll_x());
702 EXPECT_EQ(-19, delegate->scroll_y()); 731 EXPECT_EQ(-19, delegate->scroll_y());
703 732
704 SendScrollEvent(root_window(), 140, 215, kTouchId, delegate.get()); 733 SendScrollEvent(root_window(), 140, 215, kTouchId, delegate.get());
705 EXPECT_FALSE(delegate->tap()); 734 EXPECT_FALSE(delegate->tap());
706 EXPECT_FALSE(delegate->tap_down()); 735 EXPECT_FALSE(delegate->tap_down());
736 EXPECT_FALSE(delegate->begin());
707 EXPECT_FALSE(delegate->double_tap()); 737 EXPECT_FALSE(delegate->double_tap());
708 EXPECT_FALSE(delegate->scroll_begin()); 738 EXPECT_FALSE(delegate->scroll_begin());
709 EXPECT_TRUE(delegate->scroll_update()); 739 EXPECT_TRUE(delegate->scroll_update());
710 EXPECT_FALSE(delegate->scroll_end()); 740 EXPECT_FALSE(delegate->scroll_end());
711 EXPECT_EQ(30, delegate->scroll_x()); 741 EXPECT_EQ(30, delegate->scroll_x());
712 EXPECT_EQ(4, delegate->scroll_y()); 742 EXPECT_EQ(4, delegate->scroll_y());
713 743
714 // Release the touch. This should end the scroll. 744 // Release the touch. This should end the scroll.
715 delegate->Reset(); 745 delegate->Reset();
716 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 746 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
717 kTouchId, press.time_stamp() + 747 kTouchId, press.time_stamp() +
718 base::TimeDelta::FromMilliseconds(50)); 748 base::TimeDelta::FromMilliseconds(50));
719 root_window()->DispatchTouchEvent(&release); 749 root_window()->DispatchTouchEvent(&release);
720 EXPECT_FALSE(delegate->tap()); 750 EXPECT_FALSE(delegate->tap());
721 EXPECT_FALSE(delegate->tap_down()); 751 EXPECT_FALSE(delegate->tap_down());
752 EXPECT_FALSE(delegate->begin());
753 EXPECT_TRUE(delegate->end());
722 EXPECT_FALSE(delegate->double_tap()); 754 EXPECT_FALSE(delegate->double_tap());
723 EXPECT_FALSE(delegate->scroll_begin()); 755 EXPECT_FALSE(delegate->scroll_begin());
724 EXPECT_FALSE(delegate->scroll_update()); 756 EXPECT_FALSE(delegate->scroll_update());
725 EXPECT_TRUE(delegate->scroll_end()); 757 EXPECT_TRUE(delegate->scroll_end());
726 } 758 }
727 759
728 // Check Scroll End Events report correct velocities 760 // Check Scroll End Events report correct velocities
729 // if the user was on a horizontal rail 761 // if the user was on a horizontal rail
730 TEST_F(GestureRecognizerTest, GestureEventHorizontalRailFling) { 762 TEST_F(GestureRecognizerTest, GestureEventHorizontalRailFling) {
731 scoped_ptr<GestureEventConsumeDelegate> delegate( 763 scoped_ptr<GestureEventConsumeDelegate> delegate(
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
849 TimerTestGestureSequence* gesture_sequence = 881 TimerTestGestureSequence* gesture_sequence =
850 static_cast<TimerTestGestureSequence*>( 882 static_cast<TimerTestGestureSequence*>(
851 gesture_recognizer->GetGestureSequenceForTesting(window.get())); 883 gesture_recognizer->GetGestureSequenceForTesting(window.get()));
852 884
853 root_window()->SetGestureRecognizerForTesting(gesture_recognizer); 885 root_window()->SetGestureRecognizerForTesting(gesture_recognizer);
854 886
855 TouchEvent press1(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201), 887 TouchEvent press1(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
856 kTouchId, GetTime()); 888 kTouchId, GetTime());
857 root_window()->DispatchTouchEvent(&press1); 889 root_window()->DispatchTouchEvent(&press1);
858 EXPECT_TRUE(delegate->tap_down()); 890 EXPECT_TRUE(delegate->tap_down());
891 EXPECT_TRUE(delegate->begin());
859 892
860 // We haven't pressed long enough for a long press to occur 893 // We haven't pressed long enough for a long press to occur
861 EXPECT_FALSE(delegate->long_press()); 894 EXPECT_FALSE(delegate->long_press());
862 895
863 // Wait until the timer runs out 896 // Wait until the timer runs out
864 gesture_sequence->ForceTimeout(); 897 gesture_sequence->ForceTimeout();
865 EXPECT_TRUE(delegate->long_press()); 898 EXPECT_TRUE(delegate->long_press());
866 EXPECT_EQ(0, delegate->touch_id()); 899 EXPECT_EQ(0, delegate->touch_id());
867 900
868 delegate->Reset(); 901 delegate->Reset();
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
932 static_cast<TimerTestGestureSequence*>( 965 static_cast<TimerTestGestureSequence*>(
933 gesture_recognizer->GetGestureSequenceForTesting(window.get())); 966 gesture_recognizer->GetGestureSequenceForTesting(window.get()));
934 967
935 root_window()->SetGestureRecognizerForTesting(gesture_recognizer); 968 root_window()->SetGestureRecognizerForTesting(gesture_recognizer);
936 969
937 delegate->Reset(); 970 delegate->Reset();
938 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201), 971 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
939 kTouchId1, GetTime()); 972 kTouchId1, GetTime());
940 root_window()->DispatchTouchEvent(&press); 973 root_window()->DispatchTouchEvent(&press);
941 EXPECT_TRUE(delegate->tap_down()); 974 EXPECT_TRUE(delegate->tap_down());
975 EXPECT_TRUE(delegate->begin());
942 976
943 // We haven't pressed long enough for a long press to occur 977 // We haven't pressed long enough for a long press to occur
944 EXPECT_FALSE(delegate->long_press()); 978 EXPECT_FALSE(delegate->long_press());
945 979
946 // Second tap, to cancel the long press 980 // Second tap, to cancel the long press
947 delegate->Reset(); 981 delegate->Reset();
948 TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(10, 10), 982 TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(10, 10),
949 kTouchId2, GetTime()); 983 kTouchId2, GetTime());
950 root_window()->DispatchTouchEvent(&press2); 984 root_window()->DispatchTouchEvent(&press2);
951 EXPECT_FALSE(delegate->tap_down()); // no touch down for second tap. 985 EXPECT_FALSE(delegate->tap_down()); // no touch down for second tap.
986 EXPECT_TRUE(delegate->begin());
952 987
953 // Wait until the timer runs out 988 // Wait until the timer runs out
954 gesture_sequence->ForceTimeout(); 989 gesture_sequence->ForceTimeout();
955 990
956 // No long press occurred 991 // No long press occurred
957 EXPECT_FALSE(delegate->long_press()); 992 EXPECT_FALSE(delegate->long_press());
958 993
959 delegate->Reset(); 994 delegate->Reset();
960 TouchEvent release1(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 995 TouchEvent release1(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
961 kTouchId1, GetTime()); 996 kTouchId1, GetTime());
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
1205 1240
1206 queued_delegate->set_window(queue.get()); 1241 queued_delegate->set_window(queue.get());
1207 1242
1208 // Touch down on the window. This should not generate any gesture event. 1243 // Touch down on the window. This should not generate any gesture event.
1209 queued_delegate->Reset(); 1244 queued_delegate->Reset();
1210 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201), 1245 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
1211 kTouchId1, GetTime()); 1246 kTouchId1, GetTime());
1212 root_window()->DispatchTouchEvent(&press); 1247 root_window()->DispatchTouchEvent(&press);
1213 EXPECT_FALSE(queued_delegate->tap()); 1248 EXPECT_FALSE(queued_delegate->tap());
1214 EXPECT_FALSE(queued_delegate->tap_down()); 1249 EXPECT_FALSE(queued_delegate->tap_down());
1250 EXPECT_FALSE(queued_delegate->begin());
1215 EXPECT_FALSE(queued_delegate->double_tap()); 1251 EXPECT_FALSE(queued_delegate->double_tap());
1216 EXPECT_FALSE(queued_delegate->scroll_begin()); 1252 EXPECT_FALSE(queued_delegate->scroll_begin());
1217 EXPECT_FALSE(queued_delegate->scroll_update()); 1253 EXPECT_FALSE(queued_delegate->scroll_update());
1218 EXPECT_FALSE(queued_delegate->scroll_end()); 1254 EXPECT_FALSE(queued_delegate->scroll_end());
1219 1255
1220 // Introduce some delay before the touch is released so that it is recognized 1256 // Introduce some delay before the touch is released so that it is recognized
1221 // as a tap. However, this still should not create any gesture events. 1257 // as a tap. However, this still should not create any gesture events.
1222 queued_delegate->Reset(); 1258 queued_delegate->Reset();
1223 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 1259 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
1224 kTouchId1, press.time_stamp() + 1260 kTouchId1, press.time_stamp() +
1225 base::TimeDelta::FromMilliseconds(50)); 1261 base::TimeDelta::FromMilliseconds(50));
1226 root_window()->DispatchTouchEvent(&release); 1262 root_window()->DispatchTouchEvent(&release);
1227 EXPECT_FALSE(queued_delegate->tap()); 1263 EXPECT_FALSE(queued_delegate->tap());
1228 EXPECT_FALSE(queued_delegate->tap_down()); 1264 EXPECT_FALSE(queued_delegate->tap_down());
1265 EXPECT_FALSE(queued_delegate->begin());
1266 EXPECT_FALSE(queued_delegate->end());
1229 EXPECT_FALSE(queued_delegate->double_tap()); 1267 EXPECT_FALSE(queued_delegate->double_tap());
1230 EXPECT_FALSE(queued_delegate->scroll_begin()); 1268 EXPECT_FALSE(queued_delegate->scroll_begin());
1231 EXPECT_FALSE(queued_delegate->scroll_update()); 1269 EXPECT_FALSE(queued_delegate->scroll_update());
1232 EXPECT_FALSE(queued_delegate->scroll_end()); 1270 EXPECT_FALSE(queued_delegate->scroll_end());
1233 1271
1234 // Create another window, and place a touch-down on it. This should create a 1272 // Create another window, and place a touch-down on it. This should create a
1235 // tap-down gesture. 1273 // tap-down gesture.
1236 scoped_ptr<GestureEventConsumeDelegate> delegate( 1274 scoped_ptr<GestureEventConsumeDelegate> delegate(
1237 new GestureEventConsumeDelegate()); 1275 new GestureEventConsumeDelegate());
1238 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate( 1276 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
1239 delegate.get(), -2345, gfx::Rect(0, 0, 50, 50), NULL)); 1277 delegate.get(), -2345, gfx::Rect(0, 0, 50, 50), NULL));
1240 delegate->Reset(); 1278 delegate->Reset();
1241 TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(10, 20), 1279 TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(10, 20),
1242 kTouchId2, GetTime()); 1280 kTouchId2, GetTime());
1243 root_window()->DispatchTouchEvent(&press2); 1281 root_window()->DispatchTouchEvent(&press2);
1244 EXPECT_FALSE(delegate->tap()); 1282 EXPECT_FALSE(delegate->tap());
1245 EXPECT_TRUE(delegate->tap_down()); 1283 EXPECT_TRUE(delegate->tap_down());
1284 EXPECT_FALSE(queued_delegate->begin());
1285 EXPECT_FALSE(queued_delegate->end());
1246 EXPECT_FALSE(delegate->double_tap()); 1286 EXPECT_FALSE(delegate->double_tap());
1247 EXPECT_FALSE(delegate->scroll_begin()); 1287 EXPECT_FALSE(delegate->scroll_begin());
1248 EXPECT_FALSE(delegate->scroll_update()); 1288 EXPECT_FALSE(delegate->scroll_update());
1249 EXPECT_FALSE(delegate->scroll_end()); 1289 EXPECT_FALSE(delegate->scroll_end());
1250 1290
1251 TouchEvent release2(ui::ET_TOUCH_RELEASED, gfx::Point(10, 20), 1291 TouchEvent release2(ui::ET_TOUCH_RELEASED, gfx::Point(10, 20),
1252 kTouchId2, GetTime()); 1292 kTouchId2, GetTime());
1253 root_window()->DispatchTouchEvent(&release2); 1293 root_window()->DispatchTouchEvent(&release2);
1254 1294
1255 // Process the first queued event. 1295 // Process the first queued event.
1256 queued_delegate->Reset(); 1296 queued_delegate->Reset();
1257 queued_delegate->ReceivedAck(); 1297 queued_delegate->ReceivedAck();
1258 EXPECT_FALSE(queued_delegate->tap()); 1298 EXPECT_FALSE(queued_delegate->tap());
1259 EXPECT_TRUE(queued_delegate->tap_down()); 1299 EXPECT_TRUE(queued_delegate->tap_down());
1300 EXPECT_TRUE(queued_delegate->begin());
1301 EXPECT_FALSE(queued_delegate->end());
1260 EXPECT_FALSE(queued_delegate->double_tap()); 1302 EXPECT_FALSE(queued_delegate->double_tap());
1261 EXPECT_FALSE(queued_delegate->scroll_begin()); 1303 EXPECT_FALSE(queued_delegate->scroll_begin());
1262 EXPECT_FALSE(queued_delegate->scroll_update()); 1304 EXPECT_FALSE(queued_delegate->scroll_update());
1263 EXPECT_FALSE(queued_delegate->scroll_end()); 1305 EXPECT_FALSE(queued_delegate->scroll_end());
1264 1306
1265 // Now, process the second queued event. 1307 // Now, process the second queued event.
1266 queued_delegate->Reset(); 1308 queued_delegate->Reset();
1267 queued_delegate->ReceivedAck(); 1309 queued_delegate->ReceivedAck();
1268 EXPECT_TRUE(queued_delegate->tap()); 1310 EXPECT_TRUE(queued_delegate->tap());
1269 EXPECT_FALSE(queued_delegate->tap_down()); 1311 EXPECT_FALSE(queued_delegate->tap_down());
1312 EXPECT_FALSE(queued_delegate->begin());
1313 EXPECT_TRUE(queued_delegate->end());
1270 EXPECT_FALSE(queued_delegate->double_tap()); 1314 EXPECT_FALSE(queued_delegate->double_tap());
1271 EXPECT_FALSE(queued_delegate->scroll_begin()); 1315 EXPECT_FALSE(queued_delegate->scroll_begin());
1272 EXPECT_FALSE(queued_delegate->scroll_update()); 1316 EXPECT_FALSE(queued_delegate->scroll_update());
1273 EXPECT_FALSE(queued_delegate->scroll_end()); 1317 EXPECT_FALSE(queued_delegate->scroll_end());
1274 1318
1275 // Start all over. Press on the first window, then press again on the second 1319 // Start all over. Press on the first window, then press again on the second
1276 // window. The second press should still go to the first window. 1320 // window. The second press should still go to the first window.
1277 queued_delegate->Reset(); 1321 queued_delegate->Reset();
1278 TouchEvent press3(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201), 1322 TouchEvent press3(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
1279 kTouchId1, GetTime()); 1323 kTouchId1, GetTime());
1280 root_window()->DispatchTouchEvent(&press3); 1324 root_window()->DispatchTouchEvent(&press3);
1281 EXPECT_FALSE(queued_delegate->tap()); 1325 EXPECT_FALSE(queued_delegate->tap());
1282 EXPECT_FALSE(queued_delegate->tap_down()); 1326 EXPECT_FALSE(queued_delegate->tap_down());
1327 EXPECT_FALSE(queued_delegate->begin());
1328 EXPECT_FALSE(queued_delegate->end());
1329 EXPECT_FALSE(queued_delegate->begin());
1330 EXPECT_FALSE(queued_delegate->end());
1283 EXPECT_FALSE(queued_delegate->double_tap()); 1331 EXPECT_FALSE(queued_delegate->double_tap());
1284 EXPECT_FALSE(queued_delegate->scroll_begin()); 1332 EXPECT_FALSE(queued_delegate->scroll_begin());
1285 EXPECT_FALSE(queued_delegate->scroll_update()); 1333 EXPECT_FALSE(queued_delegate->scroll_update());
1286 EXPECT_FALSE(queued_delegate->scroll_end()); 1334 EXPECT_FALSE(queued_delegate->scroll_end());
1287 1335
1288 queued_delegate->Reset(); 1336 queued_delegate->Reset();
1289 delegate->Reset(); 1337 delegate->Reset();
1290 TouchEvent press4(ui::ET_TOUCH_PRESSED, gfx::Point(103, 203), 1338 TouchEvent press4(ui::ET_TOUCH_PRESSED, gfx::Point(103, 203),
1291 kTouchId2, GetTime()); 1339 kTouchId2, GetTime());
1292 root_window()->DispatchTouchEvent(&press4); 1340 root_window()->DispatchTouchEvent(&press4);
1293 EXPECT_FALSE(delegate->tap()); 1341 EXPECT_FALSE(delegate->tap());
1294 EXPECT_FALSE(delegate->tap_down()); 1342 EXPECT_FALSE(delegate->tap_down());
1343 EXPECT_FALSE(delegate->begin());
1344 EXPECT_FALSE(delegate->end());
1295 EXPECT_FALSE(delegate->double_tap()); 1345 EXPECT_FALSE(delegate->double_tap());
1296 EXPECT_FALSE(delegate->scroll_begin()); 1346 EXPECT_FALSE(delegate->scroll_begin());
1297 EXPECT_FALSE(delegate->scroll_update()); 1347 EXPECT_FALSE(delegate->scroll_update());
1298 EXPECT_FALSE(delegate->scroll_end()); 1348 EXPECT_FALSE(delegate->scroll_end());
1299 EXPECT_FALSE(queued_delegate->tap()); 1349 EXPECT_FALSE(queued_delegate->tap());
1300 EXPECT_FALSE(queued_delegate->tap_down()); 1350 EXPECT_FALSE(queued_delegate->tap_down());
1351 EXPECT_FALSE(queued_delegate->begin());
1352 EXPECT_FALSE(queued_delegate->end());
1301 EXPECT_FALSE(queued_delegate->double_tap()); 1353 EXPECT_FALSE(queued_delegate->double_tap());
1302 EXPECT_FALSE(queued_delegate->scroll_begin()); 1354 EXPECT_FALSE(queued_delegate->scroll_begin());
1303 EXPECT_FALSE(queued_delegate->scroll_update()); 1355 EXPECT_FALSE(queued_delegate->scroll_update());
1304 EXPECT_FALSE(queued_delegate->scroll_end()); 1356 EXPECT_FALSE(queued_delegate->scroll_end());
1305 1357
1306 // Move the second touch-point enough so that it is considered a pinch. This 1358 // Move the second touch-point enough so that it is considered a pinch. This
1307 // should generate both SCROLL_BEGIN and PINCH_BEGIN gestures. 1359 // should generate both SCROLL_BEGIN and PINCH_BEGIN gestures.
1308 queued_delegate->Reset(); 1360 queued_delegate->Reset();
1309 delegate->Reset(); 1361 delegate->Reset();
1310 int x_move = ui::GestureConfiguration::max_touch_move_in_pixels_for_click(); 1362 int x_move = ui::GestureConfiguration::max_touch_move_in_pixels_for_click();
1311 TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(103 + x_move, 203), 1363 TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(103 + x_move, 203),
1312 kTouchId2, GetTime()); 1364 kTouchId2, GetTime());
1313 root_window()->DispatchTouchEvent(&move); 1365 root_window()->DispatchTouchEvent(&move);
1314 EXPECT_FALSE(delegate->tap()); 1366 EXPECT_FALSE(delegate->tap());
1315 EXPECT_FALSE(delegate->tap_down()); 1367 EXPECT_FALSE(delegate->tap_down());
1368 EXPECT_FALSE(delegate->begin());
1316 EXPECT_FALSE(delegate->double_tap()); 1369 EXPECT_FALSE(delegate->double_tap());
1317 EXPECT_FALSE(delegate->scroll_begin()); 1370 EXPECT_FALSE(delegate->scroll_begin());
1318 EXPECT_FALSE(delegate->scroll_update()); 1371 EXPECT_FALSE(delegate->scroll_update());
1319 EXPECT_FALSE(delegate->scroll_end()); 1372 EXPECT_FALSE(delegate->scroll_end());
1320 EXPECT_FALSE(queued_delegate->tap()); 1373 EXPECT_FALSE(queued_delegate->tap());
1321 EXPECT_FALSE(queued_delegate->tap_down()); 1374 EXPECT_FALSE(queued_delegate->tap_down());
1375 EXPECT_FALSE(queued_delegate->begin());
1322 EXPECT_FALSE(queued_delegate->double_tap()); 1376 EXPECT_FALSE(queued_delegate->double_tap());
1323 EXPECT_FALSE(queued_delegate->scroll_begin()); 1377 EXPECT_FALSE(queued_delegate->scroll_begin());
1324 EXPECT_FALSE(queued_delegate->scroll_update()); 1378 EXPECT_FALSE(queued_delegate->scroll_update());
1325 EXPECT_FALSE(queued_delegate->scroll_end()); 1379 EXPECT_FALSE(queued_delegate->scroll_end());
1326 1380
1327 queued_delegate->Reset(); 1381 queued_delegate->Reset();
1328 queued_delegate->ReceivedAck(); 1382 queued_delegate->ReceivedAck();
1329 EXPECT_FALSE(queued_delegate->tap()); 1383 EXPECT_FALSE(queued_delegate->tap());
1330 EXPECT_TRUE(queued_delegate->tap_down()); 1384 EXPECT_TRUE(queued_delegate->tap_down());
1385 EXPECT_TRUE(queued_delegate->begin());
1386 EXPECT_FALSE(queued_delegate->end());
1331 EXPECT_FALSE(queued_delegate->double_tap()); 1387 EXPECT_FALSE(queued_delegate->double_tap());
1332 EXPECT_FALSE(queued_delegate->scroll_begin()); 1388 EXPECT_FALSE(queued_delegate->scroll_begin());
1333 EXPECT_FALSE(queued_delegate->scroll_update()); 1389 EXPECT_FALSE(queued_delegate->scroll_update());
1334 EXPECT_FALSE(queued_delegate->scroll_end()); 1390 EXPECT_FALSE(queued_delegate->scroll_end());
1335 1391
1336 queued_delegate->Reset(); 1392 queued_delegate->Reset();
1337 queued_delegate->ReceivedAck(); 1393 queued_delegate->ReceivedAck();
1338 EXPECT_FALSE(queued_delegate->tap()); 1394 EXPECT_FALSE(queued_delegate->tap());
1339 EXPECT_FALSE(queued_delegate->tap_down()); // no touch down for second tap. 1395 EXPECT_FALSE(queued_delegate->tap_down()); // no touch down for second tap.
1396 EXPECT_TRUE(queued_delegate->begin());
1397 EXPECT_FALSE(queued_delegate->end());
1340 EXPECT_FALSE(queued_delegate->double_tap()); 1398 EXPECT_FALSE(queued_delegate->double_tap());
1341 EXPECT_FALSE(queued_delegate->scroll_begin()); 1399 EXPECT_FALSE(queued_delegate->scroll_begin());
1342 EXPECT_FALSE(queued_delegate->scroll_update()); 1400 EXPECT_FALSE(queued_delegate->scroll_update());
1343 EXPECT_FALSE(queued_delegate->scroll_end()); 1401 EXPECT_FALSE(queued_delegate->scroll_end());
1344 EXPECT_FALSE(queued_delegate->pinch_begin()); 1402 EXPECT_FALSE(queued_delegate->pinch_begin());
1345 EXPECT_FALSE(queued_delegate->pinch_update()); 1403 EXPECT_FALSE(queued_delegate->pinch_update());
1346 EXPECT_FALSE(queued_delegate->pinch_end()); 1404 EXPECT_FALSE(queued_delegate->pinch_end());
1347 1405
1348 queued_delegate->Reset(); 1406 queued_delegate->Reset();
1349 queued_delegate->ReceivedAck(); 1407 queued_delegate->ReceivedAck();
1350 EXPECT_FALSE(queued_delegate->tap()); 1408 EXPECT_FALSE(queued_delegate->tap());
1351 EXPECT_FALSE(queued_delegate->tap_down()); 1409 EXPECT_FALSE(queued_delegate->tap_down());
1410 EXPECT_FALSE(queued_delegate->begin());
1411 EXPECT_FALSE(queued_delegate->end());
1352 EXPECT_FALSE(queued_delegate->double_tap()); 1412 EXPECT_FALSE(queued_delegate->double_tap());
1353 EXPECT_TRUE(queued_delegate->scroll_begin()); 1413 EXPECT_TRUE(queued_delegate->scroll_begin());
1354 EXPECT_FALSE(queued_delegate->scroll_update()); 1414 EXPECT_FALSE(queued_delegate->scroll_update());
1355 EXPECT_FALSE(queued_delegate->scroll_end()); 1415 EXPECT_FALSE(queued_delegate->scroll_end());
1356 EXPECT_TRUE(queued_delegate->pinch_begin()); 1416 EXPECT_TRUE(queued_delegate->pinch_begin());
1357 EXPECT_FALSE(queued_delegate->pinch_update()); 1417 EXPECT_FALSE(queued_delegate->pinch_update());
1358 EXPECT_FALSE(queued_delegate->pinch_end()); 1418 EXPECT_FALSE(queued_delegate->pinch_end());
1359 } 1419 }
1360 1420
1361 // Check that appropriate touch events generate pinch gesture events. 1421 // Check that appropriate touch events generate pinch gesture events.
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after
1775 generator.PressTouch(); 1835 generator.PressTouch();
1776 RunAllPendingInMessageLoop(); 1836 RunAllPendingInMessageLoop();
1777 1837
1778 EXPECT_TRUE(delegate->tap_down()); 1838 EXPECT_TRUE(delegate->tap_down());
1779 1839
1780 scoped_ptr<aura::Window> capture(CreateTestWindowWithBounds( 1840 scoped_ptr<aura::Window> capture(CreateTestWindowWithBounds(
1781 gfx::Rect(10, 10, 200, 200), NULL)); 1841 gfx::Rect(10, 10, 200, 200), NULL));
1782 capture->SetCapture(); 1842 capture->SetCapture();
1783 RunAllPendingInMessageLoop(); 1843 RunAllPendingInMessageLoop();
1784 1844
1785 EXPECT_TRUE(delegate->tap_up()); 1845 EXPECT_TRUE(delegate->end());
1786 } 1846 }
1787 1847
1788 TEST_F(GestureRecognizerTest, TwoFingerTap) { 1848 TEST_F(GestureRecognizerTest, TwoFingerTap) {
1789 scoped_ptr<GestureEventConsumeDelegate> delegate( 1849 scoped_ptr<GestureEventConsumeDelegate> delegate(
1790 new GestureEventConsumeDelegate()); 1850 new GestureEventConsumeDelegate());
1791 const int kWindowWidth = 123; 1851 const int kWindowWidth = 123;
1792 const int kWindowHeight = 45; 1852 const int kWindowHeight = 45;
1793 const int kTouchId1 = 2; 1853 const int kTouchId1 = 2;
1794 const int kTouchId2 = 3; 1854 const int kTouchId2 = 3;
1795 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight); 1855 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight);
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
2120 root_window()->DispatchTouchEvent(&press2); 2180 root_window()->DispatchTouchEvent(&press2);
2121 window->Hide(); 2181 window->Hide();
2122 EXPECT_EQ(NULL, 2182 EXPECT_EQ(NULL,
2123 root_window()->gesture_recognizer()->GetTouchLockedTarget(&press1)); 2183 root_window()->gesture_recognizer()->GetTouchLockedTarget(&press1));
2124 EXPECT_EQ(NULL, 2184 EXPECT_EQ(NULL,
2125 root_window()->gesture_recognizer()->GetTouchLockedTarget(&press2)); 2185 root_window()->gesture_recognizer()->GetTouchLockedTarget(&press2));
2126 } 2186 }
2127 2187
2128 } // namespace test 2188 } // namespace test
2129 } // namespace aura 2189 } // namespace aura
OLDNEW
« no previous file with comments | « content/browser/renderer_host/web_input_event_aurax11.cc ('k') | ui/aura/root_window_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698