| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |