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

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

Issue 10808083: gesture recognizer: Expose bounding-box for the points in a gesture-event. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: tot-merge Created 8 years, 5 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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 scroll_end_(false), 44 scroll_end_(false),
45 pinch_begin_(false), 45 pinch_begin_(false),
46 pinch_update_(false), 46 pinch_update_(false),
47 pinch_end_(false), 47 pinch_end_(false),
48 long_press_(false), 48 long_press_(false),
49 fling_(false), 49 fling_(false),
50 two_finger_tap_(false), 50 two_finger_tap_(false),
51 scroll_x_(0), 51 scroll_x_(0),
52 scroll_y_(0), 52 scroll_y_(0),
53 velocity_x_(0), 53 velocity_x_(0),
54 velocity_y_(0), 54 velocity_y_(0) {
55 radius_x_(0),
56 radius_y_(0) {
57 } 55 }
58 56
59 virtual ~GestureEventConsumeDelegate() {} 57 virtual ~GestureEventConsumeDelegate() {}
60 58
61 void Reset() { 59 void Reset() {
62 tap_ = false; 60 tap_ = false;
63 tap_down_ = false; 61 tap_down_ = false;
64 begin_ = false; 62 begin_ = false;
65 end_ = false; 63 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;
85 radius_y_ = 0;
86 } 82 }
87 83
88 bool tap() const { return tap_; } 84 bool tap() const { return tap_; }
89 bool tap_down() const { return tap_down_; } 85 bool tap_down() const { return tap_down_; }
90 bool begin() const { return begin_; } 86 bool begin() const { return begin_; }
91 bool end() const { return end_; } 87 bool end() const { return end_; }
92 bool double_tap() const { return double_tap_; } 88 bool double_tap() const { return double_tap_; }
93 bool scroll_begin() const { return scroll_begin_; } 89 bool scroll_begin() const { return scroll_begin_; }
94 bool scroll_update() const { return scroll_update_; } 90 bool scroll_update() const { return scroll_update_; }
95 bool scroll_end() const { return scroll_end_; } 91 bool scroll_end() const { return scroll_end_; }
(...skipping 10 matching lines...) Expand all
106 102
107 const gfx::Point tap_location() const { 103 const gfx::Point tap_location() const {
108 return tap_location_; 104 return tap_location_;
109 } 105 }
110 106
111 float scroll_x() const { return scroll_x_; } 107 float scroll_x() const { return scroll_x_; }
112 float scroll_y() const { return scroll_y_; } 108 float scroll_y() const { return scroll_y_; }
113 int touch_id() const { return touch_id_; } 109 int touch_id() const { return touch_id_; }
114 float velocity_x() const { return velocity_x_; } 110 float velocity_x() const { return velocity_x_; }
115 float velocity_y() const { return velocity_y_; } 111 float velocity_y() const { return velocity_y_; }
116 float radius_x() const { return radius_x_; } 112 const gfx::Rect& bounding_box() const { return bounding_box_; }
117 float radius_y() const { return radius_y_; }
118 113
119 virtual ui::GestureStatus OnGestureEvent(GestureEvent* gesture) OVERRIDE { 114 virtual ui::GestureStatus OnGestureEvent(GestureEvent* gesture) OVERRIDE {
115 bounding_box_ = gesture->details().bounding_box();
120 switch (gesture->type()) { 116 switch (gesture->type()) {
121 case ui::ET_GESTURE_TAP: 117 case ui::ET_GESTURE_TAP:
122 radius_x_ = gesture->details().radius_x();
123 radius_y_ = gesture->details().radius_y();
124 tap_location_ = gesture->location(); 118 tap_location_ = gesture->location();
125 tap_ = true; 119 tap_ = true;
126 break; 120 break;
127 case ui::ET_GESTURE_TAP_DOWN: 121 case ui::ET_GESTURE_TAP_DOWN:
128 tap_down_ = true; 122 tap_down_ = true;
129 break; 123 break;
130 case ui::ET_GESTURE_BEGIN: 124 case ui::ET_GESTURE_BEGIN:
131 begin_ = true; 125 begin_ = true;
132 break; 126 break;
133 case ui::ET_GESTURE_END: 127 case ui::ET_GESTURE_END:
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 bool fling_; 187 bool fling_;
194 bool two_finger_tap_; 188 bool two_finger_tap_;
195 189
196 gfx::Point scroll_begin_position_; 190 gfx::Point scroll_begin_position_;
197 gfx::Point tap_location_; 191 gfx::Point tap_location_;
198 192
199 float scroll_x_; 193 float scroll_x_;
200 float scroll_y_; 194 float scroll_y_;
201 float velocity_x_; 195 float velocity_x_;
202 float velocity_y_; 196 float velocity_y_;
203 int radius_x_;
204 int radius_y_;
205 int touch_id_; 197 int touch_id_;
198 gfx::Rect bounding_box_;
206 199
207 DISALLOW_COPY_AND_ASSIGN(GestureEventConsumeDelegate); 200 DISALLOW_COPY_AND_ASSIGN(GestureEventConsumeDelegate);
208 }; 201 };
209 202
210 class QueueTouchEventDelegate : public GestureEventConsumeDelegate { 203 class QueueTouchEventDelegate : public GestureEventConsumeDelegate {
211 public: 204 public:
212 explicit QueueTouchEventDelegate(RootWindow* root_window) 205 explicit QueueTouchEventDelegate(RootWindow* root_window)
213 : window_(NULL), 206 : window_(NULL),
214 root_window_(root_window) { 207 root_window_(root_window) {
215 } 208 }
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 EXPECT_TRUE(delegate->tap()); 475 EXPECT_TRUE(delegate->tap());
483 EXPECT_FALSE(delegate->tap_down()); 476 EXPECT_FALSE(delegate->tap_down());
484 EXPECT_FALSE(delegate->begin()); 477 EXPECT_FALSE(delegate->begin());
485 EXPECT_TRUE(delegate->end()); 478 EXPECT_TRUE(delegate->end());
486 EXPECT_FALSE(delegate->double_tap()); 479 EXPECT_FALSE(delegate->double_tap());
487 EXPECT_FALSE(delegate->scroll_begin()); 480 EXPECT_FALSE(delegate->scroll_begin());
488 EXPECT_FALSE(delegate->scroll_update()); 481 EXPECT_FALSE(delegate->scroll_update());
489 EXPECT_FALSE(delegate->scroll_end()); 482 EXPECT_FALSE(delegate->scroll_end());
490 483
491 gfx::Point actual_point(delegate->tap_location()); 484 gfx::Point actual_point(delegate->tap_location());
492 EXPECT_EQ(12, delegate->radius_x()); 485 EXPECT_EQ(24, delegate->bounding_box().width());
493 EXPECT_EQ(12, delegate->radius_y()); 486 EXPECT_EQ(24, delegate->bounding_box().height());
494 EXPECT_EQ(100, actual_point.x()); 487 EXPECT_EQ(100, actual_point.x());
495 EXPECT_EQ(200, actual_point.y()); 488 EXPECT_EQ(200, actual_point.y());
496 } 489 }
497 490
498 // Test with no ET_TOUCH_MOVED events but different touch points and radii. 491 // Test with no ET_TOUCH_MOVED events but different touch points and radii.
499 { 492 {
500 delegate->Reset(); 493 delegate->Reset();
501 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(365, 290), 494 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(365, 290),
502 kTouchId, GetTime()); 495 kTouchId, GetTime());
503 press.set_radius_x(8); 496 press.set_radius_x(8);
(...skipping 19 matching lines...) Expand all
523 EXPECT_TRUE(delegate->tap()); 516 EXPECT_TRUE(delegate->tap());
524 EXPECT_FALSE(delegate->tap_down()); 517 EXPECT_FALSE(delegate->tap_down());
525 EXPECT_FALSE(delegate->begin()); 518 EXPECT_FALSE(delegate->begin());
526 EXPECT_TRUE(delegate->end()); 519 EXPECT_TRUE(delegate->end());
527 EXPECT_FALSE(delegate->double_tap()); 520 EXPECT_FALSE(delegate->double_tap());
528 EXPECT_FALSE(delegate->scroll_begin()); 521 EXPECT_FALSE(delegate->scroll_begin());
529 EXPECT_FALSE(delegate->scroll_update()); 522 EXPECT_FALSE(delegate->scroll_update());
530 EXPECT_FALSE(delegate->scroll_end()); 523 EXPECT_FALSE(delegate->scroll_end());
531 524
532 gfx::Point actual_point(delegate->tap_location()); 525 gfx::Point actual_point(delegate->tap_location());
533 EXPECT_EQ(23, delegate->radius_x()); 526 EXPECT_EQ(46, delegate->bounding_box().width());
534 EXPECT_EQ(20, delegate->radius_y()); 527 EXPECT_EQ(40, delegate->bounding_box().height());
535 EXPECT_EQ(373, actual_point.x()); 528 EXPECT_EQ(373, actual_point.x());
536 EXPECT_EQ(290, actual_point.y()); 529 EXPECT_EQ(290, actual_point.y());
537 } 530 }
538 531
539 // Test with a single ET_TOUCH_MOVED event. 532 // Test with a single ET_TOUCH_MOVED event.
540 { 533 {
541 delegate->Reset(); 534 delegate->Reset();
542 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(46, 205), 535 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(46, 205),
543 kTouchId, GetTime()); 536 kTouchId, GetTime());
544 press.set_radius_x(6); 537 press.set_radius_x(6);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
580 EXPECT_TRUE(delegate->tap()); 573 EXPECT_TRUE(delegate->tap());
581 EXPECT_FALSE(delegate->tap_down()); 574 EXPECT_FALSE(delegate->tap_down());
582 EXPECT_FALSE(delegate->begin()); 575 EXPECT_FALSE(delegate->begin());
583 EXPECT_TRUE(delegate->end()); 576 EXPECT_TRUE(delegate->end());
584 EXPECT_FALSE(delegate->double_tap()); 577 EXPECT_FALSE(delegate->double_tap());
585 EXPECT_FALSE(delegate->scroll_begin()); 578 EXPECT_FALSE(delegate->scroll_begin());
586 EXPECT_FALSE(delegate->scroll_update()); 579 EXPECT_FALSE(delegate->scroll_update());
587 EXPECT_FALSE(delegate->scroll_end()); 580 EXPECT_FALSE(delegate->scroll_end());
588 581
589 gfx::Point actual_point(delegate->tap_location()); 582 gfx::Point actual_point(delegate->tap_location());
590 EXPECT_EQ(14, delegate->radius_x()); 583 EXPECT_EQ(28, delegate->bounding_box().width());
591 EXPECT_EQ(14, delegate->radius_y()); 584 EXPECT_EQ(28, delegate->bounding_box().height());
592 EXPECT_EQ(49, actual_point.x()); 585 EXPECT_EQ(49, actual_point.x());
593 EXPECT_EQ(200, actual_point.y()); 586 EXPECT_EQ(200, actual_point.y());
594 } 587 }
595 588
596 // Test with a few ET_TOUCH_MOVED events. 589 // Test with a few ET_TOUCH_MOVED events.
597 { 590 {
598 delegate->Reset(); 591 delegate->Reset();
599 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(400, 150), 592 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(400, 150),
600 kTouchId, GetTime()); 593 kTouchId, GetTime());
601 press.set_radius_x(7); 594 press.set_radius_x(7);
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
669 EXPECT_TRUE(delegate->tap()); 662 EXPECT_TRUE(delegate->tap());
670 EXPECT_FALSE(delegate->tap_down()); 663 EXPECT_FALSE(delegate->tap_down());
671 EXPECT_FALSE(delegate->begin()); 664 EXPECT_FALSE(delegate->begin());
672 EXPECT_TRUE(delegate->end()); 665 EXPECT_TRUE(delegate->end());
673 EXPECT_FALSE(delegate->double_tap()); 666 EXPECT_FALSE(delegate->double_tap());
674 EXPECT_FALSE(delegate->scroll_begin()); 667 EXPECT_FALSE(delegate->scroll_begin());
675 EXPECT_FALSE(delegate->scroll_update()); 668 EXPECT_FALSE(delegate->scroll_update());
676 EXPECT_FALSE(delegate->scroll_end()); 669 EXPECT_FALSE(delegate->scroll_end());
677 670
678 gfx::Point actual_point(delegate->tap_location()); 671 gfx::Point actual_point(delegate->tap_location());
679 EXPECT_EQ(17, delegate->radius_x()); 672 EXPECT_EQ(35, delegate->bounding_box().width());
680 EXPECT_EQ(18, delegate->radius_y()); 673 EXPECT_EQ(36, delegate->bounding_box().height());
681 EXPECT_EQ(396, actual_point.x()); 674 EXPECT_EQ(396, actual_point.x());
682 EXPECT_EQ(149, actual_point.y()); 675 EXPECT_EQ(149, actual_point.y());
683 } 676 }
684 } 677 }
685 678
686 // Check that appropriate touch events generate scroll gesture events. 679 // Check that appropriate touch events generate scroll gesture events.
687 TEST_F(GestureRecognizerTest, GestureEventScroll) { 680 TEST_F(GestureRecognizerTest, GestureEventScroll) {
688 scoped_ptr<GestureEventConsumeDelegate> delegate( 681 scoped_ptr<GestureEventConsumeDelegate> delegate(
689 new GestureEventConsumeDelegate()); 682 new GestureEventConsumeDelegate());
690 const int kWindowWidth = 123; 683 const int kWindowWidth = 123;
(...skipping 1608 matching lines...) Expand 10 before | Expand all | Expand 10 after
2299 EXPECT_FALSE(delegate->begin()); 2292 EXPECT_FALSE(delegate->begin());
2300 EXPECT_TRUE(delegate->end()); 2293 EXPECT_TRUE(delegate->end());
2301 EXPECT_FALSE(delegate->double_tap()); 2294 EXPECT_FALSE(delegate->double_tap());
2302 EXPECT_FALSE(delegate->scroll_begin()); 2295 EXPECT_FALSE(delegate->scroll_begin());
2303 EXPECT_FALSE(delegate->scroll_update()); 2296 EXPECT_FALSE(delegate->scroll_update());
2304 EXPECT_TRUE(delegate->scroll_end()); 2297 EXPECT_TRUE(delegate->scroll_end());
2305 } 2298 }
2306 2299
2307 } // namespace test 2300 } // namespace test
2308 } // namespace aura 2301 } // namespace aura
OLDNEW
« no previous file with comments | « content/browser/renderer_host/web_input_event_aurax11.cc ('k') | ui/aura/test/aura_test_base.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698