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

Unified Diff: content/browser/renderer_host/input/synthetic_gesture_controller_unittest.cc

Issue 95153002: Make touch-based synthetic gesture take touch slop into account. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove unused variable. Created 7 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | content/browser/renderer_host/input/synthetic_gesture_target.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/renderer_host/input/synthetic_gesture_controller_unittest.cc
diff --git a/content/browser/renderer_host/input/synthetic_gesture_controller_unittest.cc b/content/browser/renderer_host/input/synthetic_gesture_controller_unittest.cc
index baefa695d1338af6557bd5b28f498b5aee0b23ac..8bf145083202af067afc6da517a56c1f58783a0c 100644
--- a/content/browser/renderer_host/input/synthetic_gesture_controller_unittest.cc
+++ b/content/browser/renderer_host/input/synthetic_gesture_controller_unittest.cc
@@ -25,6 +25,7 @@ namespace {
const int kFlushInputRateInMs = 16;
const int kPointerAssumedStoppedTimeMs = 43;
+const int kTouchSlopInDips = 7;
class MockSyntheticGesture : public SyntheticGesture {
public:
@@ -100,6 +101,10 @@ class MockSyntheticGestureTarget : public SyntheticGestureTarget {
pointer_assumed_stopped_time_ms_ = time_ms;
}
+ virtual int GetTouchSlopInDips() const OVERRIDE {
+ return kTouchSlopInDips;
+ }
+
int num_success() const { return num_success_; }
int num_failure() const { return num_failure_; }
@@ -373,7 +378,7 @@ TEST_F(SyntheticGestureControllerTest, SmoothScrollGestureTouch) {
EXPECT_EQ(1, target_->num_success());
EXPECT_EQ(0, target_->num_failure());
- EXPECT_FLOAT_EQ(params.distance,
+ EXPECT_FLOAT_EQ(params.distance + target_->GetTouchSlopInDips(),
static_cast<MockSyntheticSmoothScrollTouchTarget*>(target_)
->scroll_distance());
}
@@ -397,12 +402,30 @@ TEST_F(SyntheticGestureControllerTest, SmoothScrollGestureTouchLongStop) {
EXPECT_EQ(1, target_->num_success());
EXPECT_EQ(0, target_->num_failure());
- EXPECT_FLOAT_EQ(params.distance,
+ EXPECT_FLOAT_EQ(params.distance + target_->GetTouchSlopInDips(),
static_cast<MockSyntheticSmoothScrollTouchTarget*>(target_)
->scroll_distance());
EXPECT_GE(GetTotalTime(), target_->PointerAssumedStoppedTime());
}
+TEST_F(SyntheticGestureControllerTest, SmoothScrollGestureTouchZeroDistance) {
+ CreateControllerAndTarget<MockSyntheticSmoothScrollTouchTarget>();
+
+ SyntheticSmoothScrollGestureParams params;
+ params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
+ params.distance = 0;
+
+ scoped_ptr<SyntheticSmoothScrollGesture> gesture(
+ new SyntheticSmoothScrollGesture(params));
+ controller_->QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
+ FlushInputUntilComplete();
+
+ EXPECT_EQ(1, target_->num_success());
+ EXPECT_EQ(0, target_->num_failure());
+ EXPECT_FLOAT_EQ(0, static_cast<MockSyntheticSmoothScrollTouchTarget*>(target_)
+ ->scroll_distance());
+}
+
TEST_F(SyntheticGestureControllerTest, SmoothScrollGestureMouse) {
CreateControllerAndTarget<MockSyntheticSmoothScrollMouseTarget>();
@@ -439,9 +462,10 @@ TEST_F(SyntheticGestureControllerTest, PinchGestureTouchZoomIn) {
EXPECT_EQ(
static_cast<MockSyntheticPinchTouchTarget*>(target_)->zoom_direction(),
MockSyntheticPinchTouchTarget::ZOOM_IN);
- EXPECT_FLOAT_EQ(params.total_num_pixels_covered,
- static_cast<MockSyntheticPinchTouchTarget*>(target_)
- ->total_num_pixels_covered());
+ EXPECT_FLOAT_EQ(
+ params.total_num_pixels_covered + 2 * target_->GetTouchSlopInDips(),
+ static_cast<MockSyntheticPinchTouchTarget*>(target_)
+ ->total_num_pixels_covered());
}
TEST_F(SyntheticGestureControllerTest, PinchGestureTouchZoomOut) {
@@ -461,9 +485,31 @@ TEST_F(SyntheticGestureControllerTest, PinchGestureTouchZoomOut) {
EXPECT_EQ(
static_cast<MockSyntheticPinchTouchTarget*>(target_)->zoom_direction(),
MockSyntheticPinchTouchTarget::ZOOM_OUT);
- EXPECT_FLOAT_EQ(params.total_num_pixels_covered,
- static_cast<MockSyntheticPinchTouchTarget*>(target_)
- ->total_num_pixels_covered());
+ EXPECT_FLOAT_EQ(
+ params.total_num_pixels_covered + 2 * target_->GetTouchSlopInDips(),
+ static_cast<MockSyntheticPinchTouchTarget*>(target_)
+ ->total_num_pixels_covered());
+}
+
+TEST_F(SyntheticGestureControllerTest, PinchGestureTouchZeroPixelsCovered) {
+ CreateControllerAndTarget<MockSyntheticPinchTouchTarget>();
+
+ SyntheticPinchGestureParams params;
+ params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
+ params.zoom_in = true;
+ params.total_num_pixels_covered = 0;
+
+ scoped_ptr<SyntheticPinchGesture> gesture(new SyntheticPinchGesture(params));
+ controller_->QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
+ FlushInputUntilComplete();
+
+ EXPECT_EQ(1, target_->num_success());
+ EXPECT_EQ(0, target_->num_failure());
+ EXPECT_EQ(
+ static_cast<MockSyntheticPinchTouchTarget*>(target_)->zoom_direction(),
+ MockSyntheticPinchTouchTarget::ZOOM_DIRECTION_UNKNOWN);
+ EXPECT_FLOAT_EQ(0, static_cast<MockSyntheticPinchTouchTarget*>(target_)
+ ->total_num_pixels_covered());
}
} // namespace
« no previous file with comments | « no previous file | content/browser/renderer_host/input/synthetic_gesture_target.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698