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

Unified Diff: ui/events/gesture_detection/gesture_provider_unittest.cc

Issue 349463002: [Android] Map raw touch coordinates to global gesture locations (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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 side-by-side diff with in-line comments
Download patch
Index: ui/events/gesture_detection/gesture_provider_unittest.cc
diff --git a/ui/events/gesture_detection/gesture_provider_unittest.cc b/ui/events/gesture_detection/gesture_provider_unittest.cc
index 0e36ed008979da71798c8da206e89e7ab9e3d3de..0ed344e9bff805b9ae249d10ec4e32836cc945a5 100644
--- a/ui/events/gesture_detection/gesture_provider_unittest.cc
+++ b/ui/events/gesture_detection/gesture_provider_unittest.cc
@@ -736,6 +736,8 @@ TEST_F(GestureProviderTest, DoubleTapDragZoomBasic) {
TEST_F(GestureProviderTest, ScrollUpdateValues) {
const float delta_x = 16;
const float delta_y = 84;
+ const float raw_offset_x = 17.3;
+ const float raw_offset_y = 13.7;
const base::TimeTicks event_time = TimeTicks::Now();
@@ -755,6 +757,7 @@ TEST_F(GestureProviderTest, ScrollUpdateValues) {
MotionEvent::ACTION_MOVE,
kFakeCoordX - delta_x,
kFakeCoordY - delta_y);
+ event.SetRawOffset(raw_offset_x, raw_offset_y);
EXPECT_TRUE(gesture_provider_->OnTouchEvent(event));
// Make sure the reported gesture event has all the expected details.
@@ -764,6 +767,8 @@ TEST_F(GestureProviderTest, ScrollUpdateValues) {
EXPECT_EQ(event_time + kOneMicrosecond * 2, gesture.time);
EXPECT_EQ(kFakeCoordX - delta_x, gesture.x);
EXPECT_EQ(kFakeCoordY - delta_y, gesture.y);
+ EXPECT_EQ(kFakeCoordX - delta_x + raw_offset_x, gesture.raw_x);
+ EXPECT_EQ(kFakeCoordY - delta_y + raw_offset_y, gesture.raw_y);
EXPECT_EQ(1, gesture.details.touch_points());
// No horizontal delta because of snapping.
@@ -1416,6 +1421,8 @@ TEST_F(GestureProviderTest, FixedPageScaleDuringDoubleTapDragZoom) {
TEST_F(GestureProviderTest, PinchZoom) {
base::TimeTicks event_time = base::TimeTicks::Now();
const float touch_slop = GetTouchSlop();
+ const float raw_offset_x = 3.2;
+ const float raw_offset_y = 4.3;
int motion_event_id = 0;
gesture_provider_->SetDoubleTapSupportForPageEnabled(false);
@@ -1428,8 +1435,13 @@ TEST_F(GestureProviderTest, PinchZoom) {
MockMotionEvent event =
ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN);
event.SetId(++motion_event_id);
+ event.SetRawOffset(raw_offset_x, raw_offset_y);
EXPECT_TRUE(gesture_provider_->OnTouchEvent(event));
EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType());
+ EXPECT_EQ(kFakeCoordX, GetMostRecentGestureEvent().x);
+ EXPECT_EQ(kFakeCoordY, GetMostRecentGestureEvent().y);
+ EXPECT_EQ(kFakeCoordX + raw_offset_x, GetMostRecentGestureEvent().raw_x);
+ EXPECT_EQ(kFakeCoordY + raw_offset_y, GetMostRecentGestureEvent().raw_y);
EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points());
EXPECT_EQ(BoundsForSingleMockTouchAtLocation(kFakeCoordX, kFakeCoordY),
GetMostRecentGestureEvent().details.bounding_box());
@@ -1444,6 +1456,7 @@ TEST_F(GestureProviderTest, PinchZoom) {
secondary_coord_x,
secondary_coord_y);
event.SetId(++motion_event_id);
+ event.SetRawOffset(raw_offset_x, raw_offset_y);
gesture_provider_->OnTouchEvent(event);
EXPECT_EQ(1U, GetReceivedGestureCount());
@@ -1460,6 +1473,7 @@ TEST_F(GestureProviderTest, PinchZoom) {
secondary_coord_x,
secondary_coord_y);
event.SetId(++motion_event_id);
+ event.SetRawOffset(raw_offset_x, raw_offset_y);
// Toggling double-tap support should not take effect until the next sequence.
gesture_provider_->SetDoubleTapSupportForPageEnabled(false);
@@ -1473,6 +1487,10 @@ TEST_F(GestureProviderTest, PinchZoom) {
EXPECT_EQ((kFakeCoordX + secondary_coord_x) / 2, GetReceivedGesture(3).x);
EXPECT_EQ((kFakeCoordY + secondary_coord_y) / 2, GetReceivedGesture(3).y);
+ EXPECT_EQ((kFakeCoordX + secondary_coord_x) / 2 + raw_offset_x,
+ GetReceivedGesture(3).raw_x);
+ EXPECT_EQ((kFakeCoordY + secondary_coord_y) / 2 + raw_offset_y,
+ GetReceivedGesture(3).raw_y);
EXPECT_EQ(
gfx::RectF(kFakeCoordX - kMockTouchRadius,
@@ -1832,11 +1850,14 @@ TEST_F(GestureProviderTest, DoubleTapDragZoomCancelledOnSecondaryPointerDown) {
TEST_F(GestureProviderTest, GestureBeginAndEnd) {
EnableBeginEndTypes();
base::TimeTicks event_time = base::TimeTicks::Now();
+ const float raw_offset_x = 7.5;
+ const float raw_offset_y = 5.7;
EXPECT_EQ(0U, GetReceivedGestureCount());
MockMotionEvent event =
ObtainMotionEvent(event_time, MotionEvent::ACTION_DOWN, 1, 1);
event.pointer_count = 1;
+ event.SetRawOffset(raw_offset_x, raw_offset_y);
EXPECT_TRUE(gesture_provider_->OnTouchEvent(event));
EXPECT_EQ(ET_GESTURE_BEGIN, GetReceivedGesture(0).type());
EXPECT_EQ(ET_GESTURE_TAP_DOWN, GetMostRecentGestureEventType());
@@ -1844,6 +1865,8 @@ TEST_F(GestureProviderTest, GestureBeginAndEnd) {
EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points());
EXPECT_EQ(1, GetMostRecentGestureEvent().x);
EXPECT_EQ(1, GetMostRecentGestureEvent().y);
+ EXPECT_EQ(1 + raw_offset_x, GetMostRecentGestureEvent().raw_x);
+ EXPECT_EQ(1 + raw_offset_y, GetMostRecentGestureEvent().raw_y);
EXPECT_EQ(gfx::RectF(1 - kMockTouchRadius,
1 - kMockTouchRadius,
kMockTouchRadius * 2,
@@ -1853,35 +1876,45 @@ TEST_F(GestureProviderTest, GestureBeginAndEnd) {
event = ObtainMotionEvent(
event_time, MotionEvent::ACTION_POINTER_DOWN, 1, 1, 2, 2);
event.pointer_count = 2;
+ event.SetRawOffset(raw_offset_x, raw_offset_y);
EXPECT_TRUE(gesture_provider_->OnTouchEvent(event));
EXPECT_EQ(ET_GESTURE_BEGIN, GetMostRecentGestureEventType());
EXPECT_EQ(3U, GetReceivedGestureCount());
EXPECT_EQ(2, GetMostRecentGestureEvent().details.touch_points());
EXPECT_EQ(2, GetMostRecentGestureEvent().x);
EXPECT_EQ(2, GetMostRecentGestureEvent().y);
+ EXPECT_EQ(2 + raw_offset_x, GetMostRecentGestureEvent().raw_x);
+ EXPECT_EQ(2 + raw_offset_y, GetMostRecentGestureEvent().raw_y);
event = ObtainMotionEvent(
event_time, MotionEvent::ACTION_POINTER_DOWN, 1, 1, 2, 2, 3, 3);
event.pointer_count = 3;
+ event.SetRawOffset(raw_offset_x, raw_offset_y);
EXPECT_TRUE(gesture_provider_->OnTouchEvent(event));
EXPECT_EQ(ET_GESTURE_BEGIN, GetMostRecentGestureEventType());
EXPECT_EQ(4U, GetReceivedGestureCount());
EXPECT_EQ(3, GetMostRecentGestureEvent().details.touch_points());
EXPECT_EQ(3, GetMostRecentGestureEvent().x);
EXPECT_EQ(3, GetMostRecentGestureEvent().y);
+ EXPECT_EQ(3 + raw_offset_x, GetMostRecentGestureEvent().raw_x);
+ EXPECT_EQ(3 + raw_offset_y, GetMostRecentGestureEvent().raw_y);
event = ObtainMotionEvent(
event_time, MotionEvent::ACTION_POINTER_UP, 1, 1, 2, 2, 3, 3);
event.pointer_count = 2;
+ event.SetRawOffset(raw_offset_x, raw_offset_y);
EXPECT_TRUE(gesture_provider_->OnTouchEvent(event));
EXPECT_EQ(ET_GESTURE_END, GetMostRecentGestureEventType());
EXPECT_EQ(5U, GetReceivedGestureCount());
EXPECT_EQ(2, GetMostRecentGestureEvent().details.touch_points());
EXPECT_EQ(1, GetMostRecentGestureEvent().x);
EXPECT_EQ(1, GetMostRecentGestureEvent().y);
+ EXPECT_EQ(1 + raw_offset_x, GetMostRecentGestureEvent().raw_x);
+ EXPECT_EQ(1 + raw_offset_y, GetMostRecentGestureEvent().raw_y);
event = ObtainMotionEvent(
event_time, MotionEvent::ACTION_POINTER_DOWN, 2, 2, 3, 3, 4, 4);
+ event.SetRawOffset(raw_offset_x, raw_offset_y);
event.pointer_count = 3;
EXPECT_TRUE(gesture_provider_->OnTouchEvent(event));
EXPECT_EQ(ET_GESTURE_BEGIN, GetMostRecentGestureEventType());
@@ -1889,36 +1922,47 @@ TEST_F(GestureProviderTest, GestureBeginAndEnd) {
EXPECT_EQ(3, GetMostRecentGestureEvent().details.touch_points());
EXPECT_EQ(4, GetMostRecentGestureEvent().x);
EXPECT_EQ(4, GetMostRecentGestureEvent().y);
+ EXPECT_EQ(4 + raw_offset_x, GetMostRecentGestureEvent().raw_x);
+ EXPECT_EQ(4 + raw_offset_y, GetMostRecentGestureEvent().raw_y);
event = ObtainMotionEvent(
event_time, MotionEvent::ACTION_POINTER_UP, 2, 2, 3, 3, 4, 4);
event.pointer_count = 2;
+ event.SetRawOffset(raw_offset_x, raw_offset_y);
EXPECT_TRUE(gesture_provider_->OnTouchEvent(event));
EXPECT_EQ(ET_GESTURE_END, GetMostRecentGestureEventType());
EXPECT_EQ(7U, GetReceivedGestureCount());
EXPECT_EQ(2, GetMostRecentGestureEvent().details.touch_points());
EXPECT_EQ(2, GetMostRecentGestureEvent().x);
EXPECT_EQ(2, GetMostRecentGestureEvent().y);
+ EXPECT_EQ(2 + raw_offset_x, GetMostRecentGestureEvent().raw_x);
+ EXPECT_EQ(2 + raw_offset_y, GetMostRecentGestureEvent().raw_y);
event =
ObtainMotionEvent(event_time, MotionEvent::ACTION_POINTER_UP, 3, 3, 4, 4);
event.pointer_count = 1;
+ event.SetRawOffset(raw_offset_x, raw_offset_y);
EXPECT_TRUE(gesture_provider_->OnTouchEvent(event));
EXPECT_EQ(ET_GESTURE_END, GetMostRecentGestureEventType());
EXPECT_EQ(8U, GetReceivedGestureCount());
EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points());
EXPECT_EQ(3, GetMostRecentGestureEvent().x);
EXPECT_EQ(3, GetMostRecentGestureEvent().y);
+ EXPECT_EQ(3 + raw_offset_x, GetMostRecentGestureEvent().raw_x);
+ EXPECT_EQ(3 + raw_offset_y, GetMostRecentGestureEvent().raw_y);
event = ObtainMotionEvent(event_time, MotionEvent::ACTION_UP, 4, 4);
event.pointer_count = 1;
+ event.SetRawOffset(raw_offset_x, raw_offset_y);
EXPECT_TRUE(gesture_provider_->OnTouchEvent(event));
EXPECT_EQ(ET_GESTURE_END, GetMostRecentGestureEventType());
EXPECT_EQ(9U, GetReceivedGestureCount());
EXPECT_EQ(1, GetMostRecentGestureEvent().details.touch_points());
EXPECT_EQ(4, GetMostRecentGestureEvent().x);
EXPECT_EQ(4, GetMostRecentGestureEvent().y);
+ EXPECT_EQ(4 + raw_offset_x, GetMostRecentGestureEvent().raw_x);
+ EXPECT_EQ(4 + raw_offset_y, GetMostRecentGestureEvent().raw_y);
}
// Verify that gesture begin and gesture end events are dispatched correctly

Powered by Google App Engine
This is Rietveld 408576698