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

Side by Side Diff: third_party/WebKit/Source/core/events/PointerEventFactoryTest.cpp

Issue 2834183002: Add time stamp to the constructor of the events (Closed)
Patch Set: Change the style of the constructors Created 3 years, 8 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 "core/events/PointerEventFactory.h" 5 #include "core/events/PointerEventFactory.h"
6 6
7 #include "core/frame/FrameView.h" 7 #include "core/frame/FrameView.h"
8 #include "core/page/Page.h" 8 #include "core/page/Page.h"
9 #include "public/platform/WebPointerProperties.h" 9 #include "public/platform/WebPointerProperties.h"
10 #include <climits> 10 #include <climits>
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 public: 63 public:
64 WebTouchPointBuilder(WebPointerProperties::PointerType, 64 WebTouchPointBuilder(WebPointerProperties::PointerType,
65 int, 65 int,
66 WebTouchPoint::State); 66 WebTouchPoint::State);
67 }; 67 };
68 68
69 class WebMouseEventBuilder : public WebMouseEvent { 69 class WebMouseEventBuilder : public WebMouseEvent {
70 public: 70 public:
71 WebMouseEventBuilder(WebPointerProperties::PointerType, 71 WebMouseEventBuilder(WebPointerProperties::PointerType,
72 int, 72 int,
73 WebInputEvent::Modifiers); 73 WebInputEvent::Modifiers,
74 double);
74 }; 75 };
75 }; 76 };
76 77
77 void PointerEventFactoryTest::SetUp() { 78 void PointerEventFactoryTest::SetUp() {
78 expected_mouse_id_ = 1; 79 expected_mouse_id_ = 1;
79 mapped_id_start_ = 2; 80 mapped_id_start_ = 2;
80 } 81 }
81 82
82 PointerEventFactoryTest::WebTouchPointBuilder::WebTouchPointBuilder( 83 PointerEventFactoryTest::WebTouchPointBuilder::WebTouchPointBuilder(
83 WebPointerProperties::PointerType pointer_type_param, 84 WebPointerProperties::PointerType pointer_type_param,
84 int id_param, 85 int id_param,
85 WebTouchPoint::State state_param) { 86 WebTouchPoint::State state_param) {
86 id = id_param; 87 id = id_param;
87 pointer_type = pointer_type_param; 88 pointer_type = pointer_type_param;
88 force = 1.0; 89 force = 1.0;
89 state = state_param; 90 state = state_param;
90 } 91 }
91 92
92 PointerEventFactoryTest::WebMouseEventBuilder::WebMouseEventBuilder( 93 PointerEventFactoryTest::WebMouseEventBuilder::WebMouseEventBuilder(
93 WebPointerProperties::PointerType pointer_type_param, 94 WebPointerProperties::PointerType pointer_type_param,
94 int id_param, 95 int id_param,
95 WebInputEvent::Modifiers modifiers_param) { 96 WebInputEvent::Modifiers modifiers_param,
97 double platform_time_stamp) {
96 pointer_type = pointer_type_param; 98 pointer_type = pointer_type_param;
97 id = id_param; 99 id = id_param;
98 modifiers_ = modifiers_param; 100 modifiers_ = modifiers_param;
99 frame_scale_ = 1; 101 frame_scale_ = 1;
102 time_stamp_seconds_ = platform_time_stamp;
100 } 103 }
101 104
102 PointerEvent* PointerEventFactoryTest::CreateAndCheckTouchCancel( 105 PointerEvent* PointerEventFactoryTest::CreateAndCheckTouchCancel(
103 WebPointerProperties::PointerType pointer_type, 106 WebPointerProperties::PointerType pointer_type,
104 int raw_id, 107 int raw_id,
105 int unique_id, 108 int unique_id,
106 bool is_primary) { 109 bool is_primary) {
107 PointerEvent* pointer_event = 110 TimeTicks now = TimeTicks::Now();
108 pointer_event_factory_.CreatePointerCancelEvent(unique_id, pointer_type); 111 PointerEvent* pointer_event = pointer_event_factory_.CreatePointerCancelEvent(
112 unique_id, pointer_type, now);
109 EXPECT_EQ(unique_id, pointer_event->pointerId()); 113 EXPECT_EQ(unique_id, pointer_event->pointerId());
110 EXPECT_EQ(is_primary, pointer_event->isPrimary()); 114 EXPECT_EQ(is_primary, pointer_event->isPrimary());
111 EXPECT_EQ(PointerTypeNameForWebPointPointerType(pointer_type), 115 EXPECT_EQ(PointerTypeNameForWebPointPointerType(pointer_type),
112 pointer_event->pointerType()); 116 pointer_event->pointerType());
117 EXPECT_EQ(now, pointer_event->PlatformTimeStamp());
113 return pointer_event; 118 return pointer_event;
114 } 119 }
115 120
116 void PointerEventFactoryTest::CreateAndCheckPointerTransitionEvent( 121 void PointerEventFactoryTest::CreateAndCheckPointerTransitionEvent(
117 PointerEvent* pointer_event, 122 PointerEvent* pointer_event,
118 const AtomicString& type) { 123 const AtomicString& type) {
119 PointerEvent* clone_pointer_event = 124 PointerEvent* clone_pointer_event =
120 pointer_event_factory_.CreatePointerBoundaryEvent(pointer_event, type, 125 pointer_event_factory_.CreatePointerBoundaryEvent(pointer_event, type,
121 nullptr); 126 nullptr);
122 EXPECT_EQ(clone_pointer_event->pointerType(), pointer_event->pointerType()); 127 EXPECT_EQ(clone_pointer_event->pointerType(), pointer_event->pointerType());
123 EXPECT_EQ(clone_pointer_event->pointerId(), pointer_event->pointerId()); 128 EXPECT_EQ(clone_pointer_event->pointerId(), pointer_event->pointerId());
124 EXPECT_EQ(clone_pointer_event->isPrimary(), pointer_event->isPrimary()); 129 EXPECT_EQ(clone_pointer_event->isPrimary(), pointer_event->isPrimary());
125 EXPECT_EQ(clone_pointer_event->type(), type); 130 EXPECT_EQ(clone_pointer_event->type(), type);
126 } 131 }
127 132
128 PointerEvent* PointerEventFactoryTest::CreateAndCheckTouchEvent( 133 PointerEvent* PointerEventFactoryTest::CreateAndCheckTouchEvent(
129 WebPointerProperties::PointerType pointer_type, 134 WebPointerProperties::PointerType pointer_type,
130 int raw_id, 135 int raw_id,
131 int unique_id, 136 int unique_id,
132 bool is_primary, 137 bool is_primary,
133 WebTouchPoint::State state, 138 WebTouchPoint::State state,
134 size_t coalesced_event_count) { 139 size_t coalesced_event_count) {
135 Vector<WebTouchPoint> coalesced_events; 140 Vector<std::pair<WebTouchPoint, TimeTicks>> coalesced_events;
141 TimeTicks now = TimeTicks::Now();
136 for (size_t i = 0; i < coalesced_event_count; i++) { 142 for (size_t i = 0; i < coalesced_event_count; i++) {
137 coalesced_events.push_back(PointerEventFactoryTest::WebTouchPointBuilder( 143 coalesced_events.push_back(std::pair<WebTouchPoint, TimeTicks>(
138 pointer_type, raw_id, state)); 144 PointerEventFactoryTest::WebTouchPointBuilder(pointer_type, raw_id,
145 state),
146 now));
139 } 147 }
140 PointerEvent* pointer_event = pointer_event_factory_.Create( 148 PointerEvent* pointer_event = pointer_event_factory_.Create(
141 PointerEventFactoryTest::WebTouchPointBuilder(pointer_type, raw_id, 149 PointerEventFactoryTest::WebTouchPointBuilder(pointer_type, raw_id,
142 state), 150 state),
143 coalesced_events, WebInputEvent::kNoModifiers, nullptr, nullptr); 151 coalesced_events, WebInputEvent::kNoModifiers, now, nullptr, nullptr);
144 EXPECT_EQ(unique_id, pointer_event->pointerId()); 152 EXPECT_EQ(unique_id, pointer_event->pointerId());
145 EXPECT_EQ(is_primary, pointer_event->isPrimary()); 153 EXPECT_EQ(is_primary, pointer_event->isPrimary());
154 EXPECT_EQ(now, pointer_event->PlatformTimeStamp());
146 const char* expected_pointer_type = 155 const char* expected_pointer_type =
147 PointerTypeNameForWebPointPointerType(pointer_type); 156 PointerTypeNameForWebPointPointerType(pointer_type);
148 EXPECT_EQ(expected_pointer_type, pointer_event->pointerType()); 157 EXPECT_EQ(expected_pointer_type, pointer_event->pointerType());
149 EXPECT_EQ(coalesced_event_count, pointer_event->getCoalescedEvents().size()); 158 EXPECT_EQ(coalesced_event_count, pointer_event->getCoalescedEvents().size());
150 for (size_t i = 0; i < coalesced_event_count; i++) { 159 for (size_t i = 0; i < coalesced_event_count; i++) {
151 EXPECT_EQ(unique_id, pointer_event->getCoalescedEvents()[i]->pointerId()); 160 EXPECT_EQ(unique_id, pointer_event->getCoalescedEvents()[i]->pointerId());
152 EXPECT_EQ(is_primary, pointer_event->getCoalescedEvents()[i]->isPrimary()); 161 EXPECT_EQ(is_primary, pointer_event->getCoalescedEvents()[i]->isPrimary());
153 EXPECT_EQ(expected_pointer_type, pointer_event->pointerType()); 162 EXPECT_EQ(expected_pointer_type, pointer_event->pointerType());
163 EXPECT_EQ(now, pointer_event->PlatformTimeStamp());
154 } 164 }
155 return pointer_event; 165 return pointer_event;
156 } 166 }
157 167
158 PointerEvent* PointerEventFactoryTest::CreateAndCheckMouseEvent( 168 PointerEvent* PointerEventFactoryTest::CreateAndCheckMouseEvent(
159 WebPointerProperties::PointerType pointer_type, 169 WebPointerProperties::PointerType pointer_type,
160 int raw_id, 170 int raw_id,
161 int unique_id, 171 int unique_id,
162 bool is_primary, 172 bool is_primary,
163 WebInputEvent::Modifiers modifiers, 173 WebInputEvent::Modifiers modifiers,
164 size_t coalesced_event_count) { 174 size_t coalesced_event_count) {
165 Vector<WebMouseEvent> coalesced_events; 175 Vector<WebMouseEvent> coalesced_events;
176 double base_time = 123;
dtapuska 2017/04/24 15:27:43 Can we use https://cs.chromium.org/chromium/src/th
Navid Zolghadr 2017/04/24 15:51:45 Makes sense. Done.
166 for (size_t i = 0; i < coalesced_event_count; i++) { 177 for (size_t i = 0; i < coalesced_event_count; i++) {
167 coalesced_events.push_back(PointerEventFactoryTest::WebMouseEventBuilder( 178 coalesced_events.push_back(PointerEventFactoryTest::WebMouseEventBuilder(
168 pointer_type, raw_id, modifiers)); 179 pointer_type, raw_id, modifiers, 123 + i));
dtapuska 2017/04/24 15:27:43 Can this be base_time + i (instead of 123 + i) ?
Navid Zolghadr 2017/04/24 15:51:45 Done.
169 } 180 }
170 PointerEvent* pointer_event = pointer_event_factory_.Create( 181 PointerEvent* pointer_event = pointer_event_factory_.Create(
171 coalesced_event_count ? EventTypeNames::mousemove 182 coalesced_event_count ? EventTypeNames::mousemove
172 : EventTypeNames::mousedown, 183 : EventTypeNames::mousedown,
173 PointerEventFactoryTest::WebMouseEventBuilder(pointer_type, raw_id, 184 PointerEventFactoryTest::WebMouseEventBuilder(pointer_type, raw_id,
174 modifiers), 185 modifiers, base_time),
175 coalesced_events, nullptr); 186 coalesced_events, nullptr);
176 EXPECT_EQ(unique_id, pointer_event->pointerId()); 187 EXPECT_EQ(unique_id, pointer_event->pointerId());
177 EXPECT_EQ(is_primary, pointer_event->isPrimary()); 188 EXPECT_EQ(is_primary, pointer_event->isPrimary());
189 EXPECT_EQ(TimeTicks::FromSeconds(base_time),
190 pointer_event->PlatformTimeStamp());
178 const char* expected_pointer_type = 191 const char* expected_pointer_type =
179 PointerTypeNameForWebPointPointerType(pointer_type); 192 PointerTypeNameForWebPointPointerType(pointer_type);
180 EXPECT_EQ(expected_pointer_type, pointer_event->pointerType()); 193 EXPECT_EQ(expected_pointer_type, pointer_event->pointerType());
181 EXPECT_EQ(coalesced_event_count, pointer_event->getCoalescedEvents().size()); 194 EXPECT_EQ(coalesced_event_count, pointer_event->getCoalescedEvents().size());
182 for (size_t i = 0; i < coalesced_event_count; i++) { 195 for (size_t i = 0; i < coalesced_event_count; i++) {
183 EXPECT_EQ(unique_id, pointer_event->getCoalescedEvents()[i]->pointerId()); 196 EXPECT_EQ(unique_id, pointer_event->getCoalescedEvents()[i]->pointerId());
184 EXPECT_EQ(is_primary, pointer_event->getCoalescedEvents()[i]->isPrimary()); 197 EXPECT_EQ(is_primary, pointer_event->getCoalescedEvents()[i]->isPrimary());
185 EXPECT_EQ(expected_pointer_type, pointer_event->pointerType()); 198 EXPECT_EQ(expected_pointer_type, pointer_event->pointerType());
199 EXPECT_EQ(TimeTicks::FromSeconds(base_time + i),
200 pointer_event->getCoalescedEvents()[i]->PlatformTimeStamp());
186 } 201 }
187 return pointer_event; 202 return pointer_event;
188 } 203 }
189 204
190 TEST_F(PointerEventFactoryTest, MousePointer) { 205 TEST_F(PointerEventFactoryTest, MousePointer) {
191 EXPECT_TRUE(pointer_event_factory_.IsActive(expected_mouse_id_)); 206 EXPECT_TRUE(pointer_event_factory_.IsActive(expected_mouse_id_));
192 EXPECT_FALSE(pointer_event_factory_.IsActiveButtonsState(expected_mouse_id_)); 207 EXPECT_FALSE(pointer_event_factory_.IsActiveButtonsState(expected_mouse_id_));
193 208
194 PointerEvent* pointer_event1 = CreateAndCheckMouseEvent( 209 PointerEvent* pointer_event1 = CreateAndCheckMouseEvent(
195 WebPointerProperties::PointerType::kMouse, 0, expected_mouse_id_, true); 210 WebPointerProperties::PointerType::kMouse, 0, expected_mouse_id_, true);
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 TEST_F(PointerEventFactoryTest, CoalescedEvents) { 473 TEST_F(PointerEventFactoryTest, CoalescedEvents) {
459 CreateAndCheckMouseEvent(WebPointerProperties::PointerType::kMouse, 0, 474 CreateAndCheckMouseEvent(WebPointerProperties::PointerType::kMouse, 0,
460 expected_mouse_id_, true, 475 expected_mouse_id_, true,
461 WebInputEvent::kNoModifiers, 4); 476 WebInputEvent::kNoModifiers, 4);
462 CreateAndCheckTouchEvent(WebPointerProperties::PointerType::kTouch, 0, 477 CreateAndCheckTouchEvent(WebPointerProperties::PointerType::kTouch, 0,
463 mapped_id_start_, true, WebTouchPoint::kStateMoved, 478 mapped_id_start_, true, WebTouchPoint::kStateMoved,
464 3); 479 3);
465 } 480 }
466 481
467 } // namespace blink 482 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698