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

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

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