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 1774913004: Firing got/lost pointer capture events (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Variable rename Created 4 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
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>
11 #include <gtest/gtest.h> 11 #include <gtest/gtest.h>
12 12
13 namespace blink { 13 namespace blink {
14 14
15 class PointerEventFactoryTest : public ::testing::Test { 15 class PointerEventFactoryTest : public ::testing::Test {
16 protected: 16 protected:
17 void SetUp() override; 17 void SetUp() override;
18 PassRefPtrWillBeRawPtr<PointerEvent> createAndCheckTouchCancel( 18 PassRefPtrWillBeRawPtr<PointerEvent> createAndCheckTouchCancel(
19 WebPointerProperties::PointerType, int rawId, 19 WebPointerProperties::PointerType, int rawId,
20 int uniqueId, bool isPrimary, 20 int uniqueId, bool isPrimary,
21 PlatformTouchPoint::TouchState = PlatformTouchPoint::TouchReleased); 21 PlatformTouchPoint::TouchState = PlatformTouchPoint::TouchReleased);
22 PassRefPtrWillBeRawPtr<PointerEvent> createAndCheckTouchEvent( 22 PassRefPtrWillBeRawPtr<PointerEvent> createAndCheckTouchEvent(
23 WebPointerProperties::PointerType, int rawId, 23 WebPointerProperties::PointerType, int rawId,
24 int uniqueId, bool isPrimary, 24 int uniqueId, bool isPrimary,
25 PlatformTouchPoint::TouchState = PlatformTouchPoint::TouchPressed); 25 PlatformTouchPoint::TouchState = PlatformTouchPoint::TouchPressed);
26 PassRefPtrWillBeRawPtr<PointerEvent> createAndCheckMouseEvent( 26 PassRefPtrWillBeRawPtr<PointerEvent> createAndCheckMouseEvent(
27 WebPointerProperties::PointerType, int rawId, 27 WebPointerProperties::PointerType, int rawId,
28 int uniqueId, bool isPrimary, 28 int uniqueId, bool isPrimary,
29 PlatformEvent::Modifiers = PlatformEvent::NoModifiers); 29 PlatformEvent::Modifiers = PlatformEvent::NoModifiers);
30 void cloneAndCheckPointerEvent( 30 void createAndCheckPointerTransitionEvent(
31 PassRefPtrWillBeRawPtr<PointerEvent>, 31 PassRefPtrWillBeRawPtr<PointerEvent>,
32 const AtomicString&); 32 const AtomicString&);
33 33
34 PointerEventFactory m_pointerEventFactory; 34 PointerEventFactory m_pointerEventFactory;
35 unsigned m_expectedMouseId; 35 unsigned m_expectedMouseId;
36 unsigned m_mappedIdStart; 36 unsigned m_mappedIdStart;
37 37
38 class PlatformTouchPointBuilder : public PlatformTouchPoint { 38 class PlatformTouchPointBuilder : public PlatformTouchPoint {
39 public: 39 public:
40 PlatformTouchPointBuilder(WebPointerProperties::PointerType, int, 40 PlatformTouchPointBuilder(WebPointerProperties::PointerType, int,
(...skipping 30 matching lines...) Expand all
71 m_pointerProperties.pointerType = pointerType; 71 m_pointerProperties.pointerType = pointerType;
72 m_pointerProperties.id = id; 72 m_pointerProperties.id = id;
73 m_modifiers = modifiers; 73 m_modifiers = modifiers;
74 } 74 }
75 75
76 PassRefPtrWillBeRawPtr<PointerEvent> PointerEventFactoryTest::createAndCheckTouc hCancel( 76 PassRefPtrWillBeRawPtr<PointerEvent> PointerEventFactoryTest::createAndCheckTouc hCancel(
77 WebPointerProperties::PointerType pointerType, int rawId, 77 WebPointerProperties::PointerType pointerType, int rawId,
78 int uniqueId, bool isPrimary, 78 int uniqueId, bool isPrimary,
79 PlatformTouchPoint::TouchState state) 79 PlatformTouchPoint::TouchState state)
80 { 80 {
81 RefPtrWillBeRawPtr<PointerEvent> pointerEvent = m_pointerEventFactory.create PointerCancel( 81 RefPtrWillBeRawPtr<PointerEvent> pointerEvent = m_pointerEventFactory.create PointerCancelEvent(
82 PointerEventFactoryTest::PlatformTouchPointBuilder(pointerType, rawId, s tate)); 82 PointerEventFactoryTest::PlatformTouchPointBuilder(pointerType, rawId, s tate));
83 EXPECT_EQ(uniqueId, pointerEvent->pointerId()); 83 EXPECT_EQ(uniqueId, pointerEvent->pointerId());
84 EXPECT_EQ(isPrimary, pointerEvent->isPrimary()); 84 EXPECT_EQ(isPrimary, pointerEvent->isPrimary());
85 return pointerEvent; 85 return pointerEvent;
86 } 86 }
87 87
88 void PointerEventFactoryTest::cloneAndCheckPointerEvent( 88 void PointerEventFactoryTest::createAndCheckPointerTransitionEvent(
89 PassRefPtrWillBeRawPtr<PointerEvent> prpPointerEvent, 89 PassRefPtrWillBeRawPtr<PointerEvent> prpPointerEvent,
90 const AtomicString& type) 90 const AtomicString& type)
91 { 91 {
92 RefPtrWillBeRawPtr<PointerEvent> pointerEvent = prpPointerEvent; 92 RefPtrWillBeRawPtr<PointerEvent> pointerEvent = prpPointerEvent;
93 RefPtrWillBeRawPtr<PointerEvent> clonePointerEvent = 93 RefPtrWillBeRawPtr<PointerEvent> clonePointerEvent = m_pointerEventFactory.
94 m_pointerEventFactory.create(pointerEvent, type, nullptr); 94 createPointerTransitionEvent(pointerEvent, type, nullptr);
95 EXPECT_EQ(clonePointerEvent->pointerType(), pointerEvent->pointerType()); 95 EXPECT_EQ(clonePointerEvent->pointerType(), pointerEvent->pointerType());
96 EXPECT_EQ(clonePointerEvent->pointerId(), pointerEvent->pointerId()); 96 EXPECT_EQ(clonePointerEvent->pointerId(), pointerEvent->pointerId());
97 EXPECT_EQ(clonePointerEvent->isPrimary(), pointerEvent->isPrimary()); 97 EXPECT_EQ(clonePointerEvent->isPrimary(), pointerEvent->isPrimary());
98 EXPECT_EQ(clonePointerEvent->type(), type); 98 EXPECT_EQ(clonePointerEvent->type(), type);
99 } 99 }
100 100
101 PassRefPtrWillBeRawPtr<PointerEvent> PointerEventFactoryTest::createAndCheckTouc hEvent( 101 PassRefPtrWillBeRawPtr<PointerEvent> PointerEventFactoryTest::createAndCheckTouc hEvent(
102 WebPointerProperties::PointerType pointerType, 102 WebPointerProperties::PointerType pointerType,
103 int rawId, int uniqueId, bool isPrimary, 103 int rawId, int uniqueId, bool isPrimary,
104 PlatformTouchPoint::TouchState state) 104 PlatformTouchPoint::TouchState state)
(...skipping 18 matching lines...) Expand all
123 } 123 }
124 124
125 TEST_F(PointerEventFactoryTest, MousePointer) 125 TEST_F(PointerEventFactoryTest, MousePointer)
126 { 126 {
127 EXPECT_TRUE(m_pointerEventFactory.isActive(m_expectedMouseId)); 127 EXPECT_TRUE(m_pointerEventFactory.isActive(m_expectedMouseId));
128 EXPECT_FALSE(m_pointerEventFactory.isActiveButtonsState(m_expectedMouseId)); 128 EXPECT_FALSE(m_pointerEventFactory.isActiveButtonsState(m_expectedMouseId));
129 129
130 RefPtrWillBeRawPtr<PointerEvent> pointerEvent1 = createAndCheckMouseEvent(We bPointerProperties::PointerType::Mouse, 0, m_expectedMouseId, true); 130 RefPtrWillBeRawPtr<PointerEvent> pointerEvent1 = createAndCheckMouseEvent(We bPointerProperties::PointerType::Mouse, 0, m_expectedMouseId, true);
131 RefPtrWillBeRawPtr<PointerEvent> pointerEvent2 = createAndCheckMouseEvent(We bPointerProperties::PointerType::Mouse, 0, m_expectedMouseId, true, PlatformEven t::LeftButtonDown); 131 RefPtrWillBeRawPtr<PointerEvent> pointerEvent2 = createAndCheckMouseEvent(We bPointerProperties::PointerType::Mouse, 0, m_expectedMouseId, true, PlatformEven t::LeftButtonDown);
132 132
133 cloneAndCheckPointerEvent(pointerEvent1, EventTypeNames::pointerout); 133 createAndCheckPointerTransitionEvent(pointerEvent1, EventTypeNames::pointero ut);
134 134
135 EXPECT_TRUE(m_pointerEventFactory.isActive(m_expectedMouseId)); 135 EXPECT_TRUE(m_pointerEventFactory.isActive(m_expectedMouseId));
136 EXPECT_TRUE(m_pointerEventFactory.isActiveButtonsState(m_expectedMouseId)); 136 EXPECT_TRUE(m_pointerEventFactory.isActiveButtonsState(m_expectedMouseId));
137 137
138 m_pointerEventFactory.remove(pointerEvent1); 138 m_pointerEventFactory.remove(pointerEvent1);
139 139
140 EXPECT_TRUE(m_pointerEventFactory.isActive(m_expectedMouseId)); 140 EXPECT_TRUE(m_pointerEventFactory.isActive(m_expectedMouseId));
141 EXPECT_TRUE(m_pointerEventFactory.isActiveButtonsState(m_expectedMouseId)); 141 EXPECT_TRUE(m_pointerEventFactory.isActiveButtonsState(m_expectedMouseId));
142 142
143 createAndCheckMouseEvent(WebPointerProperties::PointerType::Mouse, 0, m_expe ctedMouseId, true); 143 createAndCheckMouseEvent(WebPointerProperties::PointerType::Mouse, 0, m_expe ctedMouseId, true);
(...skipping 23 matching lines...) Expand all
167 TEST_F(PointerEventFactoryTest, TouchPointerReleasedAndPressedAgain) 167 TEST_F(PointerEventFactoryTest, TouchPointerReleasedAndPressedAgain)
168 { 168 {
169 EXPECT_FALSE(m_pointerEventFactory.isActive(m_mappedIdStart)); 169 EXPECT_FALSE(m_pointerEventFactory.isActive(m_mappedIdStart));
170 EXPECT_FALSE(m_pointerEventFactory.isActive(m_mappedIdStart+1)); 170 EXPECT_FALSE(m_pointerEventFactory.isActive(m_mappedIdStart+1));
171 EXPECT_FALSE(m_pointerEventFactory.isActiveButtonsState(m_mappedIdStart)); 171 EXPECT_FALSE(m_pointerEventFactory.isActiveButtonsState(m_mappedIdStart));
172 EXPECT_FALSE(m_pointerEventFactory.isActiveButtonsState(m_mappedIdStart+1)); 172 EXPECT_FALSE(m_pointerEventFactory.isActiveButtonsState(m_mappedIdStart+1));
173 173
174 RefPtrWillBeRawPtr<PointerEvent> pointerEvent1 = createAndCheckTouchEvent(We bPointerProperties::PointerType::Touch, 0, m_mappedIdStart, true); 174 RefPtrWillBeRawPtr<PointerEvent> pointerEvent1 = createAndCheckTouchEvent(We bPointerProperties::PointerType::Touch, 0, m_mappedIdStart, true);
175 RefPtrWillBeRawPtr<PointerEvent> pointerEvent2 = createAndCheckTouchEvent(We bPointerProperties::PointerType::Touch, 1, m_mappedIdStart+1, false); 175 RefPtrWillBeRawPtr<PointerEvent> pointerEvent2 = createAndCheckTouchEvent(We bPointerProperties::PointerType::Touch, 1, m_mappedIdStart+1, false);
176 176
177 cloneAndCheckPointerEvent(pointerEvent1, EventTypeNames::pointerleave); 177 createAndCheckPointerTransitionEvent(pointerEvent1, EventTypeNames::pointerl eave);
178 cloneAndCheckPointerEvent(pointerEvent2, EventTypeNames::pointerenter); 178 createAndCheckPointerTransitionEvent(pointerEvent2, EventTypeNames::pointere nter);
179 179
180 EXPECT_TRUE(m_pointerEventFactory.isActive(m_mappedIdStart)); 180 EXPECT_TRUE(m_pointerEventFactory.isActive(m_mappedIdStart));
181 EXPECT_TRUE(m_pointerEventFactory.isActive(m_mappedIdStart+1)); 181 EXPECT_TRUE(m_pointerEventFactory.isActive(m_mappedIdStart+1));
182 EXPECT_TRUE(m_pointerEventFactory.isActiveButtonsState(m_mappedIdStart)); 182 EXPECT_TRUE(m_pointerEventFactory.isActiveButtonsState(m_mappedIdStart));
183 EXPECT_TRUE(m_pointerEventFactory.isActiveButtonsState(m_mappedIdStart+1)); 183 EXPECT_TRUE(m_pointerEventFactory.isActiveButtonsState(m_mappedIdStart+1));
184 184
185 m_pointerEventFactory.remove(pointerEvent1); 185 m_pointerEventFactory.remove(pointerEvent1);
186 m_pointerEventFactory.remove(pointerEvent2); 186 m_pointerEventFactory.remove(pointerEvent2);
187 187
188 EXPECT_FALSE(m_pointerEventFactory.isActive(m_mappedIdStart)); 188 EXPECT_FALSE(m_pointerEventFactory.isActive(m_mappedIdStart));
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 createAndCheckMouseEvent(WebPointerProperties::PointerType::Touch, i, m_ mappedIdStart+i, i == 0); 317 createAndCheckMouseEvent(WebPointerProperties::PointerType::Touch, i, m_ mappedIdStart+i, i == 0);
318 } 318 }
319 319
320 for (int i = 0; i < 100; ++i) { 320 for (int i = 0; i < 100; ++i) {
321 createAndCheckTouchEvent(WebPointerProperties::PointerType::Mouse, i, m_ expectedMouseId, true); 321 createAndCheckTouchEvent(WebPointerProperties::PointerType::Mouse, i, m_ expectedMouseId, true);
322 } 322 }
323 createAndCheckTouchCancel(WebPointerProperties::PointerType::Mouse, 0, m_exp ectedMouseId, true); 323 createAndCheckTouchCancel(WebPointerProperties::PointerType::Mouse, 0, m_exp ectedMouseId, true);
324 } 324 }
325 325
326 } // namespace blink 326 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698