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

Side by Side Diff: content/browser/renderer_host/input/synthetic_gesture_controller_unittest.cc

Issue 148453012: Chrome requires WebTouchPoint to store WebFloatPoint, instead of WebPoint. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Clean up. Created 6 years, 9 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/bind.h" 5 #include "base/bind.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/time/time.h" 7 #include "base/time/time.h"
8 #include "content/browser/renderer_host/input/synthetic_gesture.h" 8 #include "content/browser/renderer_host/input/synthetic_gesture.h"
9 #include "content/browser/renderer_host/input/synthetic_gesture_controller.h" 9 #include "content/browser/renderer_host/input/synthetic_gesture_controller.h"
10 #include "content/browser/renderer_host/input/synthetic_gesture_target.h" 10 #include "content/browser/renderer_host/input/synthetic_gesture_target.h"
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 anchor_.SetPoint(touch_event.touches[0].position.x, 161 anchor_.SetPoint(touch_event.touches[0].position.x,
162 touch_event.touches[0].position.y); 162 touch_event.touches[0].position.y);
163 started_ = true; 163 started_ = true;
164 } else { 164 } else {
165 ASSERT_NE(touch_event.type, WebInputEvent::TouchStart); 165 ASSERT_NE(touch_event.type, WebInputEvent::TouchStart);
166 ASSERT_NE(touch_event.type, WebInputEvent::TouchCancel); 166 ASSERT_NE(touch_event.type, WebInputEvent::TouchCancel);
167 // Ignore move events. 167 // Ignore move events.
168 168
169 if (touch_event.type == WebInputEvent::TouchEnd) 169 if (touch_event.type == WebInputEvent::TouchEnd)
170 scroll_distance_ = 170 scroll_distance_ =
171 anchor_ - gfx::PointF(touch_event.touches[0].position.x, 171 anchor_ - gfx::PointF(touch_event.touches[0].position);
172 touch_event.touches[0].position.y);
173 } 172 }
174 } 173 }
175 174
176 protected: 175 protected:
177 gfx::Point anchor_; 176 gfx::Point anchor_;
178 bool started_; 177 bool started_;
179 }; 178 };
180 179
181 class MockSyntheticPinchTouchTarget : public MockSyntheticGestureTarget { 180 class MockSyntheticPinchTouchTarget : public MockSyntheticGestureTarget {
182 public: 181 public:
(...skipping 12 matching lines...) Expand all
195 194
196 virtual void DispatchInputEventToPlatform( 195 virtual void DispatchInputEventToPlatform(
197 const WebInputEvent& event) OVERRIDE { 196 const WebInputEvent& event) OVERRIDE {
198 ASSERT_TRUE(WebInputEvent::isTouchEventType(event.type)); 197 ASSERT_TRUE(WebInputEvent::isTouchEventType(event.type));
199 const WebTouchEvent& touch_event = static_cast<const WebTouchEvent&>(event); 198 const WebTouchEvent& touch_event = static_cast<const WebTouchEvent&>(event);
200 ASSERT_EQ(touch_event.touchesLength, 2U); 199 ASSERT_EQ(touch_event.touchesLength, 2U);
201 200
202 if (!started_) { 201 if (!started_) {
203 ASSERT_EQ(touch_event.type, WebInputEvent::TouchStart); 202 ASSERT_EQ(touch_event.type, WebInputEvent::TouchStart);
204 203
205 start_0_ = gfx::PointF(touch_event.touches[0].position.x, 204 start_0_ = gfx::PointF(touch_event.touches[0].position);
206 touch_event.touches[0].position.y); 205 start_1_ = gfx::PointF(touch_event.touches[1].position);
207 start_1_ = gfx::PointF(touch_event.touches[1].position.x,
208 touch_event.touches[1].position.y);
209 last_pointer_distance_ = (start_0_ - start_1_).Length(); 206 last_pointer_distance_ = (start_0_ - start_1_).Length();
210 207
211 started_ = true; 208 started_ = true;
212 } else { 209 } else {
213 ASSERT_NE(touch_event.type, WebInputEvent::TouchStart); 210 ASSERT_NE(touch_event.type, WebInputEvent::TouchStart);
214 ASSERT_NE(touch_event.type, WebInputEvent::TouchCancel); 211 ASSERT_NE(touch_event.type, WebInputEvent::TouchCancel);
215 212
216 gfx::PointF current_0 = gfx::PointF(touch_event.touches[0].position.x, 213 gfx::PointF current_0 = gfx::PointF(touch_event.touches[0].position);
217 touch_event.touches[0].position.y); 214 gfx::PointF current_1 = gfx::PointF(touch_event.touches[1].position);
218 gfx::PointF current_1 = gfx::PointF(touch_event.touches[1].position.x,
219 touch_event.touches[1].position.y);
220 215
221 total_num_pixels_covered_ = 216 total_num_pixels_covered_ =
222 (current_0 - start_0_).Length() + (current_1 - start_1_).Length(); 217 (current_0 - start_0_).Length() + (current_1 - start_1_).Length();
223 float pointer_distance = (current_0 - current_1).Length(); 218 float pointer_distance = (current_0 - current_1).Length();
224 219
225 if (last_pointer_distance_ != pointer_distance) { 220 if (last_pointer_distance_ != pointer_distance) {
226 if (zoom_direction_ == ZOOM_DIRECTION_UNKNOWN) 221 if (zoom_direction_ == ZOOM_DIRECTION_UNKNOWN)
227 zoom_direction_ = 222 zoom_direction_ =
228 ComputeZoomDirection(last_pointer_distance_, pointer_distance); 223 ComputeZoomDirection(last_pointer_distance_, pointer_distance);
229 else 224 else
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 gfx::PointF position() const { return position_; } 259 gfx::PointF position() const { return position_; }
265 base::TimeDelta GetDuration() const { return stop_time_ - start_time_; } 260 base::TimeDelta GetDuration() const { return stop_time_ - start_time_; }
266 261
267 protected: 262 protected:
268 enum GestureState { 263 enum GestureState {
269 NOT_STARTED, 264 NOT_STARTED,
270 STARTED, 265 STARTED,
271 FINISHED 266 FINISHED
272 }; 267 };
273 268
274 // TODO(tdresser): clean up accesses to position_ once WebTouchPoint stores
275 // its location as a WebFloatPoint. See crbug.com/336807.
276 gfx::PointF position_; 269 gfx::PointF position_;
277 base::TimeDelta start_time_; 270 base::TimeDelta start_time_;
278 base::TimeDelta stop_time_; 271 base::TimeDelta stop_time_;
279 GestureState state_; 272 GestureState state_;
280 }; 273 };
281 274
282 class MockSyntheticTapTouchTarget : public MockSyntheticTapGestureTarget { 275 class MockSyntheticTapTouchTarget : public MockSyntheticTapGestureTarget {
283 public: 276 public:
284 MockSyntheticTapTouchTarget() {} 277 MockSyntheticTapTouchTarget() {}
285 virtual ~MockSyntheticTapTouchTarget() {} 278 virtual ~MockSyntheticTapTouchTarget() {}
286 279
287 virtual void DispatchInputEventToPlatform( 280 virtual void DispatchInputEventToPlatform(
288 const WebInputEvent& event) OVERRIDE { 281 const WebInputEvent& event) OVERRIDE {
289 ASSERT_TRUE(WebInputEvent::isTouchEventType(event.type)); 282 ASSERT_TRUE(WebInputEvent::isTouchEventType(event.type));
290 const WebTouchEvent& touch_event = static_cast<const WebTouchEvent&>(event); 283 const WebTouchEvent& touch_event = static_cast<const WebTouchEvent&>(event);
291 ASSERT_EQ(touch_event.touchesLength, 1U); 284 ASSERT_EQ(touch_event.touchesLength, 1U);
292 285
293 switch (state_) { 286 switch (state_) {
294 case NOT_STARTED: 287 case NOT_STARTED:
295 EXPECT_EQ(touch_event.type, WebInputEvent::TouchStart); 288 EXPECT_EQ(touch_event.type, WebInputEvent::TouchStart);
296 position_ = gfx::PointF(touch_event.touches[0].position.x, 289 position_ = gfx::PointF(touch_event.touches[0].position);
297 touch_event.touches[0].position.y);
298 start_time_ = base::TimeDelta::FromMilliseconds( 290 start_time_ = base::TimeDelta::FromMilliseconds(
299 static_cast<int64>(touch_event.timeStampSeconds * 1000)); 291 static_cast<int64>(touch_event.timeStampSeconds * 1000));
300 state_ = STARTED; 292 state_ = STARTED;
301 break; 293 break;
302 case STARTED: 294 case STARTED:
303 EXPECT_EQ(touch_event.type, WebInputEvent::TouchEnd); 295 EXPECT_EQ(touch_event.type, WebInputEvent::TouchEnd);
304 EXPECT_EQ(position_, gfx::PointF(touch_event.touches[0].position.x, 296 EXPECT_EQ(position_, gfx::PointF(touch_event.touches[0].position));
305 touch_event.touches[0].position.y));
306 stop_time_ = base::TimeDelta::FromMilliseconds( 297 stop_time_ = base::TimeDelta::FromMilliseconds(
307 static_cast<int64>(touch_event.timeStampSeconds * 1000)); 298 static_cast<int64>(touch_event.timeStampSeconds * 1000));
308 state_ = FINISHED; 299 state_ = FINISHED;
309 break; 300 break;
310 case FINISHED: 301 case FINISHED:
311 EXPECT_FALSE(true); 302 EXPECT_FALSE(true);
312 break; 303 break;
313 } 304 }
314 } 305 }
315 }; 306 };
316 307
317 class MockSyntheticTapMouseTarget : public MockSyntheticTapGestureTarget { 308 class MockSyntheticTapMouseTarget : public MockSyntheticTapGestureTarget {
318 public: 309 public:
319 MockSyntheticTapMouseTarget() {} 310 MockSyntheticTapMouseTarget() {}
320 virtual ~MockSyntheticTapMouseTarget() {} 311 virtual ~MockSyntheticTapMouseTarget() {}
321 312
322 virtual void DispatchInputEventToPlatform( 313 virtual void DispatchInputEventToPlatform(
323 const WebInputEvent& event) OVERRIDE { 314 const WebInputEvent& event) OVERRIDE {
324 ASSERT_TRUE(WebInputEvent::isMouseEventType(event.type)); 315 ASSERT_TRUE(WebInputEvent::isMouseEventType(event.type));
325 const WebMouseEvent& mouse_event = static_cast<const WebMouseEvent&>(event); 316 const WebMouseEvent& mouse_event = static_cast<const WebMouseEvent&>(event);
326 317
327 switch (state_) { 318 switch (state_) {
328 case NOT_STARTED: 319 case NOT_STARTED:
329 EXPECT_EQ(mouse_event.type, WebInputEvent::MouseDown); 320 EXPECT_EQ(mouse_event.type, WebInputEvent::MouseDown);
330 EXPECT_EQ(mouse_event.button, WebMouseEvent::ButtonLeft); 321 EXPECT_EQ(mouse_event.button, WebMouseEvent::ButtonLeft);
331 EXPECT_EQ(mouse_event.clickCount, 1); 322 EXPECT_EQ(mouse_event.clickCount, 1);
332 position_ = gfx::Point(mouse_event.x, mouse_event.y); 323 position_ = gfx::PointF(mouse_event.x, mouse_event.y);
333 start_time_ = base::TimeDelta::FromMilliseconds( 324 start_time_ = base::TimeDelta::FromMilliseconds(
334 static_cast<int64>(mouse_event.timeStampSeconds * 1000)); 325 static_cast<int64>(mouse_event.timeStampSeconds * 1000));
335 state_ = STARTED; 326 state_ = STARTED;
336 break; 327 break;
337 case STARTED: 328 case STARTED:
338 EXPECT_EQ(mouse_event.type, WebInputEvent::MouseUp); 329 EXPECT_EQ(mouse_event.type, WebInputEvent::MouseUp);
339 EXPECT_EQ(mouse_event.button, WebMouseEvent::ButtonLeft); 330 EXPECT_EQ(mouse_event.button, WebMouseEvent::ButtonLeft);
340 EXPECT_EQ(mouse_event.clickCount, 1); 331 EXPECT_EQ(mouse_event.clickCount, 1);
341 EXPECT_EQ(position_, gfx::Point(mouse_event.x, mouse_event.y)); 332 EXPECT_EQ(position_, gfx::PointF(mouse_event.x, mouse_event.y));
342 stop_time_ = base::TimeDelta::FromMilliseconds( 333 stop_time_ = base::TimeDelta::FromMilliseconds(
343 static_cast<int64>(mouse_event.timeStampSeconds * 1000)); 334 static_cast<int64>(mouse_event.timeStampSeconds * 1000));
344 state_ = FINISHED; 335 state_ = FINISHED;
345 break; 336 break;
346 case FINISHED: 337 case FINISHED:
347 EXPECT_FALSE(true); 338 EXPECT_FALSE(true);
348 break; 339 break;
349 } 340 }
350 } 341 }
351 }; 342 };
(...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after
828 EXPECT_TRUE(tap_target->GestureFinished()); 819 EXPECT_TRUE(tap_target->GestureFinished());
829 EXPECT_EQ(tap_target->position(), params.position); 820 EXPECT_EQ(tap_target->position(), params.position);
830 EXPECT_EQ(tap_target->GetDuration().InMilliseconds(), params.duration_ms); 821 EXPECT_EQ(tap_target->GetDuration().InMilliseconds(), params.duration_ms);
831 EXPECT_GE(GetTotalTime(), 822 EXPECT_GE(GetTotalTime(),
832 base::TimeDelta::FromMilliseconds(params.duration_ms)); 823 base::TimeDelta::FromMilliseconds(params.duration_ms));
833 } 824 }
834 825
835 } // namespace 826 } // namespace
836 827
837 } // namespace content 828 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698