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

Side by Side Diff: content/common/input/event_with_latency_info_unittest.cc

Issue 2569273002: Add constructors to WebInputEvents and setters so we can work at cleaning up these public structs. (Closed)
Patch Set: Rebase Created 3 years, 11 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "content/common/input/event_with_latency_info.h" 5 #include "content/common/input/event_with_latency_info.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "third_party/WebKit/public/platform/WebInputEvent.h" 10 #include "third_party/WebKit/public/platform/WebInputEvent.h"
11 11
12 using blink::WebGestureEvent; 12 using blink::WebGestureEvent;
13 using blink::WebInputEvent; 13 using blink::WebInputEvent;
14 using blink::WebMouseEvent; 14 using blink::WebMouseEvent;
15 using blink::WebMouseWheelEvent; 15 using blink::WebMouseWheelEvent;
16 using blink::WebTouchEvent; 16 using blink::WebTouchEvent;
17 using blink::WebTouchPoint; 17 using blink::WebTouchPoint;
18 using std::numeric_limits; 18 using std::numeric_limits;
19 19
20 namespace content { 20 namespace content {
21 namespace { 21 namespace {
22 22
23 using EventWithLatencyInfoTest = testing::Test; 23 using EventWithLatencyInfoTest = testing::Test;
24 24
25 TouchEventWithLatencyInfo CreateTouchEvent(WebInputEvent::Type type, 25 TouchEventWithLatencyInfo CreateTouchEvent(WebInputEvent::Type type,
26 double timestamp, 26 double timestamp,
27 unsigned touch_count = 1) { 27 unsigned touch_count = 1) {
28 TouchEventWithLatencyInfo touch; 28 TouchEventWithLatencyInfo touch(type, WebInputEvent::NoModifiers, timestamp,
29 ui::LatencyInfo());
29 touch.event.touchesLength = touch_count; 30 touch.event.touchesLength = touch_count;
30 touch.event.type = type;
31 touch.event.timeStampSeconds = timestamp;
32 return touch; 31 return touch;
33 } 32 }
34 33
35 MouseEventWithLatencyInfo CreateMouseEvent(WebInputEvent::Type type, 34 MouseEventWithLatencyInfo CreateMouseEvent(WebInputEvent::Type type,
36 double timestamp) { 35 double timestamp) {
37 MouseEventWithLatencyInfo mouse; 36 return MouseEventWithLatencyInfo(type, WebInputEvent::NoModifiers, timestamp,
38 mouse.event.type = type; 37 ui::LatencyInfo());
39 mouse.event.timeStampSeconds = timestamp;
40 return mouse;
41 } 38 }
42 39
43 MouseWheelEventWithLatencyInfo CreateMouseWheelEvent(double timestamp, 40 MouseWheelEventWithLatencyInfo CreateMouseWheelEvent(
44 float deltaX = 0.0f, 41 double timestamp,
45 float deltaY = 0.0f) { 42 float deltaX = 0.0f,
46 MouseWheelEventWithLatencyInfo mouse_wheel; 43 float deltaY = 0.0f,
47 mouse_wheel.event.type = WebInputEvent::MouseWheel; 44 int modifiers = WebInputEvent::NoModifiers) {
45 MouseWheelEventWithLatencyInfo mouse_wheel(
46 WebInputEvent::MouseWheel, modifiers, timestamp, ui::LatencyInfo());
48 mouse_wheel.event.deltaX = deltaX; 47 mouse_wheel.event.deltaX = deltaX;
49 mouse_wheel.event.deltaY = deltaY; 48 mouse_wheel.event.deltaY = deltaY;
50 mouse_wheel.event.timeStampSeconds = timestamp;
51 return mouse_wheel; 49 return mouse_wheel;
52 } 50 }
53 51
54 GestureEventWithLatencyInfo CreateGestureEvent(WebInputEvent::Type type, 52 GestureEventWithLatencyInfo CreateGestureEvent(WebInputEvent::Type type,
55 double timestamp, 53 double timestamp,
56 float x = 0.0f, 54 float x = 0.0f,
57 float y = 0.0f) { 55 float y = 0.0f) {
58 GestureEventWithLatencyInfo gesture; 56 GestureEventWithLatencyInfo gesture(type, WebInputEvent::NoModifiers,
59 gesture.event.type = type; 57 timestamp, ui::LatencyInfo());
60 gesture.event.x = x; 58 gesture.event.x = x;
61 gesture.event.y = y; 59 gesture.event.y = y;
62 gesture.event.timeStampSeconds = timestamp;
63 return gesture; 60 return gesture;
64 } 61 }
65 62
66 TEST_F(EventWithLatencyInfoTest, TimestampCoalescingForMouseEvent) { 63 TEST_F(EventWithLatencyInfoTest, TimestampCoalescingForMouseEvent) {
67 MouseEventWithLatencyInfo mouse_0 = CreateMouseEvent( 64 MouseEventWithLatencyInfo mouse_0 = CreateMouseEvent(
68 WebInputEvent::MouseMove, 5.0); 65 WebInputEvent::MouseMove, 5.0);
69 MouseEventWithLatencyInfo mouse_1 = CreateMouseEvent( 66 MouseEventWithLatencyInfo mouse_1 = CreateMouseEvent(
70 WebInputEvent::MouseMove, 10.0); 67 WebInputEvent::MouseMove, 10.0);
71 68
72 ASSERT_TRUE(mouse_0.CanCoalesceWith(mouse_1)); 69 ASSERT_TRUE(mouse_0.CanCoalesceWith(mouse_1));
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 } 297 }
301 298
302 TEST_F(EventWithLatencyInfoTest, WebMouseWheelEventCoalescing) { 299 TEST_F(EventWithLatencyInfoTest, WebMouseWheelEventCoalescing) {
303 MouseWheelEventWithLatencyInfo mouse_wheel_0 = CreateMouseWheel(1, 1); 300 MouseWheelEventWithLatencyInfo mouse_wheel_0 = CreateMouseWheel(1, 1);
304 MouseWheelEventWithLatencyInfo mouse_wheel_1 = CreateMouseWheel(2, 2); 301 MouseWheelEventWithLatencyInfo mouse_wheel_1 = CreateMouseWheel(2, 2);
305 // WebMouseWheelEvent objects with same values except different deltaX and 302 // WebMouseWheelEvent objects with same values except different deltaX and
306 // deltaY should coalesce. 303 // deltaY should coalesce.
307 EXPECT_TRUE(CanCoalesce(mouse_wheel_0, mouse_wheel_1)); 304 EXPECT_TRUE(CanCoalesce(mouse_wheel_0, mouse_wheel_1));
308 305
309 // WebMouseWheelEvent objects with different modifiers should not coalesce. 306 // WebMouseWheelEvent objects with different modifiers should not coalesce.
310 mouse_wheel_0 = CreateMouseWheel(1, 1); 307 mouse_wheel_0 = CreateMouseWheelEvent(2.0, 1, 1, WebInputEvent::ControlKey);
311 mouse_wheel_1 = CreateMouseWheel(1, 1); 308 mouse_wheel_1 = CreateMouseWheelEvent(2.0, 1, 1, WebInputEvent::ShiftKey);
312 mouse_wheel_0.event.modifiers = WebInputEvent::ControlKey;
313 mouse_wheel_1.event.modifiers = WebInputEvent::ShiftKey;
314 EXPECT_FALSE(CanCoalesce(mouse_wheel_0, mouse_wheel_1)); 309 EXPECT_FALSE(CanCoalesce(mouse_wheel_0, mouse_wheel_1));
315 310
316 // Coalesce old and new events. 311 // Coalesce old and new events.
317 mouse_wheel_0 = CreateMouseWheel(1, 1); 312 mouse_wheel_0 = CreateMouseWheel(1, 1);
318 mouse_wheel_0.event.x = 1; 313 mouse_wheel_0.event.x = 1;
319 mouse_wheel_0.event.y = 1; 314 mouse_wheel_0.event.y = 1;
320 mouse_wheel_1 = CreateMouseWheel(2, 2); 315 mouse_wheel_1 = CreateMouseWheel(2, 2);
321 mouse_wheel_1.event.x = 2; 316 mouse_wheel_1.event.x = 2;
322 mouse_wheel_1.event.y = 2; 317 mouse_wheel_1.event.y = 2;
323 MouseWheelEventWithLatencyInfo mouse_wheel_1_copy = mouse_wheel_1; 318 MouseWheelEventWithLatencyInfo mouse_wheel_1_copy = mouse_wheel_1;
(...skipping 24 matching lines...) Expand all
348 mouse_wheel_1_copy.event.wheelTicksY + mouse_wheel_0.event.wheelTicksY, 343 mouse_wheel_1_copy.event.wheelTicksY + mouse_wheel_0.event.wheelTicksY,
349 mouse_wheel_1.event.wheelTicksY); 344 mouse_wheel_1.event.wheelTicksY);
350 EXPECT_EQ(mouse_wheel_1_copy.event.movementX + mouse_wheel_0.event.movementX, 345 EXPECT_EQ(mouse_wheel_1_copy.event.movementX + mouse_wheel_0.event.movementX,
351 mouse_wheel_1.event.movementX); 346 mouse_wheel_1.event.movementX);
352 EXPECT_EQ(mouse_wheel_1_copy.event.movementY + mouse_wheel_0.event.movementY, 347 EXPECT_EQ(mouse_wheel_1_copy.event.movementY + mouse_wheel_0.event.movementY,
353 mouse_wheel_1.event.movementY); 348 mouse_wheel_1.event.movementY);
354 } 349 }
355 350
356 // Coalescing preserves the newer timestamp. 351 // Coalescing preserves the newer timestamp.
357 TEST_F(EventWithLatencyInfoTest, TimestampCoalescing) { 352 TEST_F(EventWithLatencyInfoTest, TimestampCoalescing) {
358 MouseWheelEventWithLatencyInfo mouse_wheel_0 = CreateMouseWheel(1, 1); 353 MouseWheelEventWithLatencyInfo mouse_wheel_0 =
359 mouse_wheel_0.event.timeStampSeconds = 5.0; 354 CreateMouseWheelEvent(5.0, 1, 1);
360 MouseWheelEventWithLatencyInfo mouse_wheel_1 = CreateMouseWheel(2, 2); 355 MouseWheelEventWithLatencyInfo mouse_wheel_1 =
361 mouse_wheel_1.event.timeStampSeconds = 10.0; 356 CreateMouseWheelEvent(10.0, 2, 2);
362 357
363 EXPECT_TRUE(CanCoalesce(mouse_wheel_0, mouse_wheel_1)); 358 EXPECT_TRUE(CanCoalesce(mouse_wheel_0, mouse_wheel_1));
364 Coalesce(mouse_wheel_1, &mouse_wheel_0); 359 Coalesce(mouse_wheel_1, &mouse_wheel_0);
365 EXPECT_EQ(10.0, mouse_wheel_0.event.timeStampSeconds); 360 EXPECT_EQ(10.0, mouse_wheel_0.event.timeStampSeconds);
366 } 361 }
367 362
368 } // namespace 363 } // namespace
369 } // namespace content 364 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698