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

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

Issue 10826209: gestures: Generate only either scroll-end or fling-start events at the end of a scroll gesture. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: win-fix Created 8 years, 4 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 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 case ui::ET_GESTURE_PINCH_END: 156 case ui::ET_GESTURE_PINCH_END:
157 pinch_end_ = true; 157 pinch_end_ = true;
158 break; 158 break;
159 case ui::ET_GESTURE_LONG_PRESS: 159 case ui::ET_GESTURE_LONG_PRESS:
160 long_press_ = true; 160 long_press_ = true;
161 touch_id_ = gesture->details().touch_id(); 161 touch_id_ = gesture->details().touch_id();
162 break; 162 break;
163 case ui::ET_SCROLL_FLING_START: 163 case ui::ET_SCROLL_FLING_START:
164 EXPECT_TRUE(gesture->details().velocity_x() != 0 || 164 EXPECT_TRUE(gesture->details().velocity_x() != 0 ||
165 gesture->details().velocity_y() != 0); 165 gesture->details().velocity_y() != 0);
166 EXPECT_TRUE(scroll_end_); 166 EXPECT_FALSE(scroll_end_);
167 fling_ = true; 167 fling_ = true;
168 velocity_x_ = gesture->details().velocity_x();
169 velocity_y_ = gesture->details().velocity_y();
168 break; 170 break;
169 case ui::ET_GESTURE_TWO_FINGER_TAP: 171 case ui::ET_GESTURE_TWO_FINGER_TAP:
170 two_finger_tap_ = true; 172 two_finger_tap_ = true;
171 break; 173 break;
172 default: 174 default:
173 NOTREACHED(); 175 NOTREACHED();
174 } 176 }
175 return ui::GESTURE_STATUS_CONSUMED; 177 return ui::GESTURE_STATUS_CONSUMED;
176 } 178 }
177 179
(...skipping 671 matching lines...) Expand 10 before | Expand all | Expand 10 after
849 SendScrollEvents(root_window(), 1, 1, press.time_stamp(), 851 SendScrollEvents(root_window(), 1, 1, press.time_stamp(),
850 100, 10, kTouchId, 1, 852 100, 10, kTouchId, 1,
851 ui::GestureConfiguration::points_buffered_for_velocity(), 853 ui::GestureConfiguration::points_buffered_for_velocity(),
852 delegate.get()); 854 delegate.get());
853 855
854 delegate->Reset(); 856 delegate->Reset();
855 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 857 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
856 kTouchId, GetTime()); 858 kTouchId, GetTime());
857 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release); 859 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release);
858 860
859 EXPECT_TRUE(delegate->scroll_end()); 861 EXPECT_TRUE(delegate->fling());
860 EXPECT_EQ(0, delegate->velocity_x()); 862 EXPECT_FALSE(delegate->scroll_end());
863 EXPECT_GT(delegate->velocity_x(), 0);
861 EXPECT_EQ(0, delegate->velocity_y()); 864 EXPECT_EQ(0, delegate->velocity_y());
862 } 865 }
863 866
864 // Check Scroll End Events report correct velocities 867 // Check Scroll End Events report correct velocities
865 // if the user was on a vertical rail 868 // if the user was on a vertical rail
866 TEST_F(GestureRecognizerTest, GestureEventVerticalRailFling) { 869 TEST_F(GestureRecognizerTest, GestureEventVerticalRailFling) {
867 scoped_ptr<GestureEventConsumeDelegate> delegate( 870 scoped_ptr<GestureEventConsumeDelegate> delegate(
868 new GestureEventConsumeDelegate()); 871 new GestureEventConsumeDelegate());
869 const int kTouchId = 7; 872 const int kTouchId = 7;
870 gfx::Rect bounds(0, 0, 1000, 1000); 873 gfx::Rect bounds(0, 0, 1000, 1000);
(...skipping 14 matching lines...) Expand all
885 SendScrollEvents(root_window(), 1, 1, press.time_stamp(), 888 SendScrollEvents(root_window(), 1, 1, press.time_stamp(),
886 10, 100, kTouchId, 1, 889 10, 100, kTouchId, 1,
887 ui::GestureConfiguration::points_buffered_for_velocity(), 890 ui::GestureConfiguration::points_buffered_for_velocity(),
888 delegate.get()); 891 delegate.get());
889 892
890 delegate->Reset(); 893 delegate->Reset();
891 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 894 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
892 kTouchId, GetTime()); 895 kTouchId, GetTime());
893 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release); 896 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release);
894 897
895 EXPECT_TRUE(delegate->scroll_end()); 898 EXPECT_TRUE(delegate->fling());
899 EXPECT_FALSE(delegate->scroll_end());
896 EXPECT_EQ(0, delegate->velocity_x()); 900 EXPECT_EQ(0, delegate->velocity_x());
897 EXPECT_EQ(0, delegate->velocity_y()); 901 EXPECT_GT(delegate->velocity_y(), 0);
898 } 902 }
899 903
900 // Check Scroll End Events reports zero velocities 904 // Check Scroll End Events reports zero velocities
901 // if the user is not on a rail 905 // if the user is not on a rail
902 TEST_F(GestureRecognizerTest, GestureEventNonRailFling) { 906 TEST_F(GestureRecognizerTest, GestureEventNonRailFling) {
903 scoped_ptr<GestureEventConsumeDelegate> delegate( 907 scoped_ptr<GestureEventConsumeDelegate> delegate(
904 new GestureEventConsumeDelegate()); 908 new GestureEventConsumeDelegate());
905 const int kTouchId = 7; 909 const int kTouchId = 7;
906 gfx::Rect bounds(0, 0, 1000, 1000); 910 gfx::Rect bounds(0, 0, 1000, 1000);
907 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate( 911 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
(...skipping 11 matching lines...) Expand all
919 SendScrollEvents(root_window(), 1, 1, press.time_stamp(), 923 SendScrollEvents(root_window(), 1, 1, press.time_stamp(),
920 10, 100, kTouchId, 1, 924 10, 100, kTouchId, 1,
921 ui::GestureConfiguration::points_buffered_for_velocity(), 925 ui::GestureConfiguration::points_buffered_for_velocity(),
922 delegate.get()); 926 delegate.get());
923 927
924 delegate->Reset(); 928 delegate->Reset();
925 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 929 TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
926 kTouchId, GetTime()); 930 kTouchId, GetTime());
927 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release); 931 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release);
928 932
929 EXPECT_TRUE(delegate->scroll_end()); 933 EXPECT_TRUE(delegate->fling());
930 EXPECT_EQ(0, delegate->velocity_x()); 934 EXPECT_FALSE(delegate->scroll_end());
931 EXPECT_EQ(0, delegate->velocity_y()); 935 EXPECT_GT(delegate->velocity_x(), 0);
936 EXPECT_GT(delegate->velocity_y(), 0);
932 } 937 }
933 938
934 // Check that appropriate touch events generate long press events 939 // Check that appropriate touch events generate long press events
935 TEST_F(GestureRecognizerTest, GestureEventLongPress) { 940 TEST_F(GestureRecognizerTest, GestureEventLongPress) {
936 scoped_ptr<GestureEventConsumeDelegate> delegate( 941 scoped_ptr<GestureEventConsumeDelegate> delegate(
937 new GestureEventConsumeDelegate()); 942 new GestureEventConsumeDelegate());
938 const int kWindowWidth = 123; 943 const int kWindowWidth = 123;
939 const int kWindowHeight = 45; 944 const int kWindowHeight = 45;
940 const int kTouchId = 2; 945 const int kTouchId = 2;
941 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight); 946 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight);
(...skipping 1619 matching lines...) Expand 10 before | Expand all | Expand 10 after
2561 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move2); 2566 root_window()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move2);
2562 EXPECT_FALSE(delegate->tap()); 2567 EXPECT_FALSE(delegate->tap());
2563 EXPECT_FALSE(delegate->scroll_update()); 2568 EXPECT_FALSE(delegate->scroll_update());
2564 EXPECT_FALSE(delegate->pinch_update()); 2569 EXPECT_FALSE(delegate->pinch_update());
2565 2570
2566 delegate->Reset(); 2571 delegate->Reset();
2567 } 2572 }
2568 2573
2569 } // namespace test 2574 } // namespace test
2570 } // namespace aura 2575 } // namespace aura
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698