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

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

Issue 9751011: Gesture recognition constants should all be stored in the GestureConfiguration object. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Freshen Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/aura/gestures/gesture_point.cc ('k') | ui/aura/gestures/gesture_sequence.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/timer.h" 6 #include "base/timer.h"
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 #include "ui/aura/event.h" 8 #include "ui/aura/event.h"
9 #include "ui/aura/gestures/gesture_configuration.h" 9 #include "ui/aura/gestures/gesture_configuration.h"
10 #include "ui/aura/gestures/gesture_recognizer_aura.h" 10 #include "ui/aura/gestures/gesture_recognizer_aura.h"
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 void SendScrollEvent(RootWindow* root_window, 313 void SendScrollEvent(RootWindow* root_window,
314 int x, 314 int x,
315 int y, 315 int y,
316 int touch_id, 316 int touch_id,
317 GestureEventConsumeDelegate* delegate) { 317 GestureEventConsumeDelegate* delegate) {
318 delegate->Reset(); 318 delegate->Reset();
319 TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(x, y), touch_id); 319 TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(x, y), touch_id);
320 root_window->DispatchTouchEvent(&move); 320 root_window->DispatchTouchEvent(&move);
321 } 321 }
322 322
323 const int kBufferedPoints = 10;
324
325 } // namespace 323 } // namespace
326 324
327 typedef AuraTestBase GestureRecognizerTest; 325 typedef AuraTestBase GestureRecognizerTest;
328 326
329 // Check that appropriate touch events generate tap gesture events. 327 // Check that appropriate touch events generate tap gesture events.
330 TEST_F(GestureRecognizerTest, GestureEventTap) { 328 TEST_F(GestureRecognizerTest, GestureEventTap) {
331 scoped_ptr<GestureEventConsumeDelegate> delegate( 329 scoped_ptr<GestureEventConsumeDelegate> delegate(
332 new GestureEventConsumeDelegate()); 330 new GestureEventConsumeDelegate());
333 const int kWindowWidth = 123; 331 const int kWindowWidth = 123;
334 const int kWindowHeight = 45; 332 const int kWindowHeight = 45;
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 root_window()->DispatchTouchEvent(&press); 449 root_window()->DispatchTouchEvent(&press);
452 450
453 // Move the touch-point horizontally enough that it is considered a 451 // Move the touch-point horizontally enough that it is considered a
454 // horizontal scroll. 452 // horizontal scroll.
455 SendScrollEvent(root_window(), 20, 1, kTouchId, delegate.get()); 453 SendScrollEvent(root_window(), 20, 1, kTouchId, delegate.get());
456 EXPECT_EQ(0, delegate->scroll_y()); 454 EXPECT_EQ(0, delegate->scroll_y());
457 EXPECT_EQ(20, delegate->scroll_x()); 455 EXPECT_EQ(20, delegate->scroll_x());
458 456
459 // Get a high x velocity, while still staying on the rail 457 // Get a high x velocity, while still staying on the rail
460 SendScrollEvents(root_window(), 1, 1, press.time_stamp(), 458 SendScrollEvents(root_window(), 1, 1, press.time_stamp(),
461 100, 10, kTouchId, 1, kBufferedPoints, delegate.get()); 459 100, 10, kTouchId, 1,
460 GestureConfiguration::points_buffered_for_velocity(),
461 delegate.get());
462 462
463 delegate->Reset(); 463 delegate->Reset();
464 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), kTouchId); 464 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), kTouchId);
465 root_window()->DispatchTouchEvent(&release); 465 root_window()->DispatchTouchEvent(&release);
466 466
467 EXPECT_TRUE(delegate->scroll_end()); 467 EXPECT_TRUE(delegate->scroll_end());
468 EXPECT_EQ(100000, delegate->velocity_x()); 468 EXPECT_EQ(100000, delegate->velocity_x());
469 EXPECT_EQ(0, delegate->velocity_y()); 469 EXPECT_EQ(0, delegate->velocity_y());
470 } 470 }
471 471
(...skipping 11 matching lines...) Expand all
483 root_window()->DispatchTouchEvent(&press); 483 root_window()->DispatchTouchEvent(&press);
484 484
485 // Move the touch-point vertically enough that it is considered a 485 // Move the touch-point vertically enough that it is considered a
486 // vertical scroll. 486 // vertical scroll.
487 SendScrollEvent(root_window(), 1, 20, kTouchId, delegate.get()); 487 SendScrollEvent(root_window(), 1, 20, kTouchId, delegate.get());
488 EXPECT_EQ(20, delegate->scroll_y()); 488 EXPECT_EQ(20, delegate->scroll_y());
489 EXPECT_EQ(0, delegate->scroll_x()); 489 EXPECT_EQ(0, delegate->scroll_x());
490 490
491 // Get a high y velocity, while still staying on the rail 491 // Get a high y velocity, while still staying on the rail
492 SendScrollEvents(root_window(), 1, 1, press.time_stamp(), 492 SendScrollEvents(root_window(), 1, 1, press.time_stamp(),
493 10, 100, kTouchId, 1, kBufferedPoints, delegate.get()); 493 10, 100, kTouchId, 1,
494 GestureConfiguration::points_buffered_for_velocity(),
495 delegate.get());
494 496
495 delegate->Reset(); 497 delegate->Reset();
496 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), kTouchId); 498 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), kTouchId);
497 root_window()->DispatchTouchEvent(&release); 499 root_window()->DispatchTouchEvent(&release);
498 500
499 EXPECT_TRUE(delegate->scroll_end()); 501 EXPECT_TRUE(delegate->scroll_end());
500 EXPECT_EQ(0, delegate->velocity_x()); 502 EXPECT_EQ(0, delegate->velocity_x());
501 EXPECT_EQ(100000, delegate->velocity_y()); 503 EXPECT_EQ(100000, delegate->velocity_y());
502 } 504 }
503 505
504 // Check Scroll End Events report correct velocities 506 // Check Scroll End Events report correct velocities
505 // if the user is not on a rail 507 // if the user is not on a rail
506 TEST_F(GestureRecognizerTest, GestureEventNonRailFling) { 508 TEST_F(GestureRecognizerTest, GestureEventNonRailFling) {
507 scoped_ptr<GestureEventConsumeDelegate> delegate( 509 scoped_ptr<GestureEventConsumeDelegate> delegate(
508 new GestureEventConsumeDelegate()); 510 new GestureEventConsumeDelegate());
509 const int kTouchId = 7; 511 const int kTouchId = 7;
510 gfx::Rect bounds(0, 0, 1000, 1000); 512 gfx::Rect bounds(0, 0, 1000, 1000);
511 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate( 513 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
512 delegate.get(), -1234, bounds, NULL)); 514 delegate.get(), -1234, bounds, NULL));
513 515
514 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), kTouchId); 516 TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0), kTouchId);
515 root_window()->DispatchTouchEvent(&press); 517 root_window()->DispatchTouchEvent(&press);
516 518
517 // Move the touch-point such that a non-rail scroll begins 519 // Move the touch-point such that a non-rail scroll begins
518 SendScrollEvent(root_window(), 20, 20, kTouchId, delegate.get()); 520 SendScrollEvent(root_window(), 20, 20, kTouchId, delegate.get());
519 EXPECT_EQ(20, delegate->scroll_y()); 521 EXPECT_EQ(20, delegate->scroll_y());
520 EXPECT_EQ(20, delegate->scroll_x()); 522 EXPECT_EQ(20, delegate->scroll_x());
521 523
522 SendScrollEvents(root_window(), 1, 1, press.time_stamp(), 524 SendScrollEvents(root_window(), 1, 1, press.time_stamp(),
523 10, 100, kTouchId, 1, kBufferedPoints, delegate.get()); 525 10, 100, kTouchId, 1,
526 GestureConfiguration::points_buffered_for_velocity(),
527 delegate.get());
524 528
525 delegate->Reset(); 529 delegate->Reset();
526 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), kTouchId); 530 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), kTouchId);
527 root_window()->DispatchTouchEvent(&release); 531 root_window()->DispatchTouchEvent(&release);
528 532
529 EXPECT_TRUE(delegate->scroll_end()); 533 EXPECT_TRUE(delegate->scroll_end());
530 EXPECT_EQ(10000, delegate->velocity_x()); 534 EXPECT_EQ(10000, delegate->velocity_x());
531 EXPECT_EQ(100000, delegate->velocity_y()); 535 EXPECT_EQ(100000, delegate->velocity_y());
532 } 536 }
533 537
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
678 682
679 SendScrollEvent(root_window(), 25, 6, kTouchId, delegate.get()); 683 SendScrollEvent(root_window(), 25, 6, kTouchId, delegate.get());
680 EXPECT_TRUE(delegate->scroll_update()); 684 EXPECT_TRUE(delegate->scroll_update());
681 EXPECT_EQ(5, delegate->scroll_x()); 685 EXPECT_EQ(5, delegate->scroll_x());
682 // y shouldn't change, as we're on a horizontal rail. 686 // y shouldn't change, as we're on a horizontal rail.
683 EXPECT_EQ(0, delegate->scroll_y()); 687 EXPECT_EQ(0, delegate->scroll_y());
684 688
685 // Send enough information that a velocity can be calculated for the gesture, 689 // Send enough information that a velocity can be calculated for the gesture,
686 // and we can break the rail 690 // and we can break the rail
687 SendScrollEvents(root_window(), 1, 1, press.time_stamp(), 691 SendScrollEvents(root_window(), 1, 1, press.time_stamp(),
688 1, 100, kTouchId, 1, kBufferedPoints, delegate.get()); 692 1, 100, kTouchId, 1,
693 GestureConfiguration::points_buffered_for_velocity(),
694 delegate.get());
689 695
690 SendScrollEvent(root_window(), 0, 0, kTouchId, delegate.get()); 696 SendScrollEvent(root_window(), 0, 0, kTouchId, delegate.get());
691 SendScrollEvent(root_window(), 5, 5, kTouchId, delegate.get()); 697 SendScrollEvent(root_window(), 5, 5, kTouchId, delegate.get());
692 698
693 // The rail should be broken 699 // The rail should be broken
694 EXPECT_TRUE(delegate->scroll_update()); 700 EXPECT_TRUE(delegate->scroll_update());
695 EXPECT_EQ(5, delegate->scroll_x()); 701 EXPECT_EQ(5, delegate->scroll_x());
696 EXPECT_EQ(5, delegate->scroll_y()); 702 EXPECT_EQ(5, delegate->scroll_y());
697 } 703 }
698 704
(...skipping 18 matching lines...) Expand all
717 723
718 SendScrollEvent(root_window(), 6, 25, kTouchId, delegate.get()); 724 SendScrollEvent(root_window(), 6, 25, kTouchId, delegate.get());
719 EXPECT_TRUE(delegate->scroll_update()); 725 EXPECT_TRUE(delegate->scroll_update());
720 EXPECT_EQ(5, delegate->scroll_y()); 726 EXPECT_EQ(5, delegate->scroll_y());
721 // x shouldn't change, as we're on a vertical rail. 727 // x shouldn't change, as we're on a vertical rail.
722 EXPECT_EQ(0, delegate->scroll_x()); 728 EXPECT_EQ(0, delegate->scroll_x());
723 729
724 // Send enough information that a velocity can be calculated for the gesture, 730 // Send enough information that a velocity can be calculated for the gesture,
725 // and we can break the rail 731 // and we can break the rail
726 SendScrollEvents(root_window(), 1, 1, press.time_stamp(), 732 SendScrollEvents(root_window(), 1, 1, press.time_stamp(),
727 100, 1, kTouchId, 1, kBufferedPoints, delegate.get()); 733 100, 1, kTouchId, 1,
734 GestureConfiguration::points_buffered_for_velocity(),
735 delegate.get());
728 736
729 SendScrollEvent(root_window(), 0, 0, kTouchId, delegate.get()); 737 SendScrollEvent(root_window(), 0, 0, kTouchId, delegate.get());
730 SendScrollEvent(root_window(), 5, 5, kTouchId, delegate.get()); 738 SendScrollEvent(root_window(), 5, 5, kTouchId, delegate.get());
731 739
732 // The rail should be broken 740 // The rail should be broken
733 EXPECT_TRUE(delegate->scroll_update()); 741 EXPECT_TRUE(delegate->scroll_update());
734 EXPECT_EQ(5, delegate->scroll_x()); 742 EXPECT_EQ(5, delegate->scroll_x());
735 EXPECT_EQ(5, delegate->scroll_y()); 743 EXPECT_EQ(5, delegate->scroll_y());
736 } 744 }
737 745
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after
1252 delegate->Reset(); 1260 delegate->Reset();
1253 TouchEvent press1(ui::ET_TOUCH_PRESSED, gfx::Point(100, 100), kTouchId1); 1261 TouchEvent press1(ui::ET_TOUCH_PRESSED, gfx::Point(100, 100), kTouchId1);
1254 1262
1255 root_window()->DispatchTouchEvent(&press1); 1263 root_window()->DispatchTouchEvent(&press1);
1256 1264
1257 delegate->Reset(); 1265 delegate->Reset();
1258 TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(110, 110), kTouchId2); 1266 TouchEvent press2(ui::ET_TOUCH_PRESSED, gfx::Point(110, 110), kTouchId2);
1259 root_window()->DispatchTouchEvent(&press2); 1267 root_window()->DispatchTouchEvent(&press2);
1260 1268
1261 SendScrollEvents(root_window(), 100, 100, press1.time_stamp(), 1269 SendScrollEvents(root_window(), 100, 100, press1.time_stamp(),
1262 1, 10, kTouchId1, 1, kBufferedPoints, delegate.get()); 1270 1, 10, kTouchId1, 1,
1271 GestureConfiguration::points_buffered_for_velocity(),
1272 delegate.get());
1263 1273
1264 SendScrollEvents(root_window(), 110, 110, press1.time_stamp() + 1274 SendScrollEvents(root_window(), 110, 110, press1.time_stamp() +
1265 base::TimeDelta::FromMilliseconds(1000), 1275 base::TimeDelta::FromMilliseconds(1000),
1266 1, 10, kTouchId2, 1, kBufferedPoints, delegate.get()); 1276 1, 10, kTouchId2, 1,
1277 GestureConfiguration::points_buffered_for_velocity(),
1278 delegate.get());
1267 // At no point were both fingers moving at the same time, 1279 // At no point were both fingers moving at the same time,
1268 // so no scrolling should have occurred 1280 // so no scrolling should have occurred
1269 1281
1270 EXPECT_EQ(0, delegate->scroll_x()); 1282 EXPECT_EQ(0, delegate->scroll_x());
1271 EXPECT_EQ(0, delegate->scroll_y()); 1283 EXPECT_EQ(0, delegate->scroll_y());
1272 } 1284 }
1273 1285
1274 TEST_F(GestureRecognizerTest, GestureEventIgnoresDisconnectedEvents) { 1286 TEST_F(GestureRecognizerTest, GestureEventIgnoresDisconnectedEvents) {
1275 scoped_ptr<GestureEventConsumeDelegate> delegate( 1287 scoped_ptr<GestureEventConsumeDelegate> delegate(
1276 new GestureEventConsumeDelegate()); 1288 new GestureEventConsumeDelegate());
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
1350 // Move a touch associated with windows[2] to 1000, 1000 1362 // Move a touch associated with windows[2] to 1000, 1000
1351 TouchEvent move2(ui::ET_TOUCH_MOVED, gfx::Point(1000, 1000), kNumWindows); 1363 TouchEvent move2(ui::ET_TOUCH_MOVED, gfx::Point(1000, 1000), kNumWindows);
1352 root_window()->DispatchTouchEvent(&move2); 1364 root_window()->DispatchTouchEvent(&move2);
1353 1365
1354 target = gesture_recognizer->GetTargetForLocation(gfx::Point(1000, 1000)); 1366 target = gesture_recognizer->GetTargetForLocation(gfx::Point(1000, 1000));
1355 EXPECT_EQ(windows[2], target); 1367 EXPECT_EQ(windows[2], target);
1356 } 1368 }
1357 1369
1358 } // namespace test 1370 } // namespace test
1359 } // namespace aura 1371 } // namespace aura
OLDNEW
« no previous file with comments | « ui/aura/gestures/gesture_point.cc ('k') | ui/aura/gestures/gesture_sequence.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698