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

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

Issue 2973963003: Release mouse pointer capture when it starts drag (Closed)
Patch Set: Remove is_cancel from parameters Created 3 years, 5 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 <gtest/gtest.h> 7 #include <gtest/gtest.h>
8 #include <climits> 8 #include <climits>
9 #include "core/frame/LocalFrameView.h" 9 #include "core/frame/LocalFrameView.h"
10 #include "core/page/Page.h" 10 #include "core/page/Page.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 bool is_primary, 46 bool is_primary,
47 WebTouchPoint::State = WebTouchPoint::kStatePressed, 47 WebTouchPoint::State = WebTouchPoint::kStatePressed,
48 size_t coalesced_event_count = 0); 48 size_t coalesced_event_count = 0);
49 PointerEvent* CreateAndCheckMouseEvent( 49 PointerEvent* CreateAndCheckMouseEvent(
50 WebPointerProperties::PointerType, 50 WebPointerProperties::PointerType,
51 int raw_id, 51 int raw_id,
52 int unique_id, 52 int unique_id,
53 bool is_primary, 53 bool is_primary,
54 WebInputEvent::Modifiers = WebInputEvent::kNoModifiers, 54 WebInputEvent::Modifiers = WebInputEvent::kNoModifiers,
55 size_t coalesced_event_count = 0); 55 size_t coalesced_event_count = 0);
56 PointerEvent* CreateAndCheckPointerCancelEvent(
57 WebPointerProperties::PointerType,
58 int raw_id,
59 int unique_id,
60 bool is_primary,
61 WebInputEvent::Modifiers = WebInputEvent::kNoModifiers);
56 void CreateAndCheckPointerTransitionEvent(PointerEvent*, const AtomicString&); 62 void CreateAndCheckPointerTransitionEvent(PointerEvent*, const AtomicString&);
57 63
58 PointerEventFactory pointer_event_factory_; 64 PointerEventFactory pointer_event_factory_;
59 unsigned expected_mouse_id_; 65 unsigned expected_mouse_id_;
60 unsigned mapped_id_start_; 66 unsigned mapped_id_start_;
61 67
62 class WebTouchPointBuilder : public WebTouchPoint { 68 class WebTouchPointBuilder : public WebTouchPoint {
63 public: 69 public:
64 WebTouchPointBuilder(WebPointerProperties::PointerType, 70 WebTouchPointBuilder(WebPointerProperties::PointerType,
65 int, 71 int,
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 EXPECT_EQ(coalesced_event_count, pointer_event->getCoalescedEvents().size()); 164 EXPECT_EQ(coalesced_event_count, pointer_event->getCoalescedEvents().size());
159 for (size_t i = 0; i < coalesced_event_count; i++) { 165 for (size_t i = 0; i < coalesced_event_count; i++) {
160 EXPECT_EQ(unique_id, pointer_event->getCoalescedEvents()[i]->pointerId()); 166 EXPECT_EQ(unique_id, pointer_event->getCoalescedEvents()[i]->pointerId());
161 EXPECT_EQ(is_primary, pointer_event->getCoalescedEvents()[i]->isPrimary()); 167 EXPECT_EQ(is_primary, pointer_event->getCoalescedEvents()[i]->isPrimary());
162 EXPECT_EQ(expected_pointer_type, pointer_event->pointerType()); 168 EXPECT_EQ(expected_pointer_type, pointer_event->pointerType());
163 EXPECT_EQ(now, pointer_event->PlatformTimeStamp()); 169 EXPECT_EQ(now, pointer_event->PlatformTimeStamp());
164 } 170 }
165 return pointer_event; 171 return pointer_event;
166 } 172 }
167 173
174 PointerEvent* PointerEventFactoryTest::CreateAndCheckPointerCancelEvent(
175 WebPointerProperties::PointerType pointer_type,
176 int raw_id,
177 int unique_id,
178 bool is_primary,
179 WebInputEvent::Modifiers modifiers) {
180 PointerEvent* pointer_event = pointer_event_factory_.CreatePointerCancelEvent(
181 WebPointerEvent(WebInputEvent::Type::kPointerCancel,
182 PointerEventFactoryTest::WebMouseEventBuilder(
183 pointer_type, raw_id, modifiers,
184 WebInputEvent::kTimeStampForTesting)));
185 EXPECT_EQ("pointercancel", pointer_event->type());
186 EXPECT_EQ(unique_id, pointer_event->pointerId());
187 EXPECT_EQ(is_primary, pointer_event->isPrimary());
188 EXPECT_EQ(TimeTicks::FromSeconds(WebInputEvent::kTimeStampForTesting),
189 pointer_event->PlatformTimeStamp());
190 const char* expected_pointer_type =
191 PointerTypeNameForWebPointPointerType(pointer_type);
192 EXPECT_EQ(expected_pointer_type, pointer_event->pointerType());
193 return pointer_event;
194 }
195
168 PointerEvent* PointerEventFactoryTest::CreateAndCheckMouseEvent( 196 PointerEvent* PointerEventFactoryTest::CreateAndCheckMouseEvent(
169 WebPointerProperties::PointerType pointer_type, 197 WebPointerProperties::PointerType pointer_type,
170 int raw_id, 198 int raw_id,
171 int unique_id, 199 int unique_id,
172 bool is_primary, 200 bool is_primary,
173 WebInputEvent::Modifiers modifiers, 201 WebInputEvent::Modifiers modifiers,
174 size_t coalesced_event_count) { 202 size_t coalesced_event_count) {
175 Vector<WebMouseEvent> coalesced_events; 203 Vector<WebMouseEvent> coalesced_events;
176 for (size_t i = 0; i < coalesced_event_count; i++) { 204 for (size_t i = 0; i < coalesced_event_count; i++) {
177 coalesced_events.push_back(PointerEventFactoryTest::WebMouseEventBuilder( 205 coalesced_events.push_back(PointerEventFactoryTest::WebMouseEventBuilder(
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 EXPECT_TRUE(pointer_event_factory_.IsActive(expected_mouse_id_)); 257 EXPECT_TRUE(pointer_event_factory_.IsActive(expected_mouse_id_));
230 EXPECT_FALSE(pointer_event_factory_.IsActiveButtonsState(expected_mouse_id_)); 258 EXPECT_FALSE(pointer_event_factory_.IsActiveButtonsState(expected_mouse_id_));
231 259
232 pointer_event_factory_.Remove(pointer_event1->pointerId()); 260 pointer_event_factory_.Remove(pointer_event1->pointerId());
233 pointer_event_factory_.Remove(pointer_event2->pointerId()); 261 pointer_event_factory_.Remove(pointer_event2->pointerId());
234 262
235 CreateAndCheckMouseEvent(WebPointerProperties::PointerType::kMouse, 1, 263 CreateAndCheckMouseEvent(WebPointerProperties::PointerType::kMouse, 1,
236 expected_mouse_id_, true); 264 expected_mouse_id_, true);
237 CreateAndCheckMouseEvent(WebPointerProperties::PointerType::kMouse, 20, 265 CreateAndCheckMouseEvent(WebPointerProperties::PointerType::kMouse, 20,
238 expected_mouse_id_, true); 266 expected_mouse_id_, true);
267
268 CreateAndCheckMouseEvent(WebPointerProperties::PointerType::kMouse, 0,
269 expected_mouse_id_, true,
270 WebInputEvent::kLeftButtonDown);
271
272 EXPECT_TRUE(pointer_event_factory_.IsActive(expected_mouse_id_));
273 EXPECT_TRUE(pointer_event_factory_.IsActiveButtonsState(expected_mouse_id_));
274
275 CreateAndCheckPointerCancelEvent(WebPointerProperties::PointerType::kMouse, 0,
276 expected_mouse_id_, true);
277
278 EXPECT_TRUE(pointer_event_factory_.IsActive(expected_mouse_id_));
279 EXPECT_FALSE(pointer_event_factory_.IsActiveButtonsState(expected_mouse_id_));
239 } 280 }
240 281
241 TEST_F(PointerEventFactoryTest, TouchPointerPrimaryRemovedWhileAnotherIsThere) { 282 TEST_F(PointerEventFactoryTest, TouchPointerPrimaryRemovedWhileAnotherIsThere) {
242 PointerEvent* pointer_event1 = CreateAndCheckTouchEvent( 283 PointerEvent* pointer_event1 = CreateAndCheckTouchEvent(
243 WebPointerProperties::PointerType::kTouch, 0, mapped_id_start_, true); 284 WebPointerProperties::PointerType::kTouch, 0, mapped_id_start_, true);
244 CreateAndCheckTouchEvent(WebPointerProperties::PointerType::kTouch, 1, 285 CreateAndCheckTouchEvent(WebPointerProperties::PointerType::kTouch, 1,
245 mapped_id_start_ + 1, false); 286 mapped_id_start_ + 1, false);
246 287
247 pointer_event_factory_.Remove(pointer_event1->pointerId()); 288 pointer_event_factory_.Remove(pointer_event1->pointerId());
248 289
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 TEST_F(PointerEventFactoryTest, CoalescedEvents) { 514 TEST_F(PointerEventFactoryTest, CoalescedEvents) {
474 CreateAndCheckMouseEvent(WebPointerProperties::PointerType::kMouse, 0, 515 CreateAndCheckMouseEvent(WebPointerProperties::PointerType::kMouse, 0,
475 expected_mouse_id_, true, 516 expected_mouse_id_, true,
476 WebInputEvent::kNoModifiers, 4); 517 WebInputEvent::kNoModifiers, 4);
477 CreateAndCheckTouchEvent(WebPointerProperties::PointerType::kTouch, 0, 518 CreateAndCheckTouchEvent(WebPointerProperties::PointerType::kTouch, 0,
478 mapped_id_start_, true, WebTouchPoint::kStateMoved, 519 mapped_id_start_, true, WebTouchPoint::kStateMoved,
479 3); 520 3);
480 } 521 }
481 522
482 } // namespace blink 523 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698