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

Side by Side Diff: third_party/WebKit/Source/core/dom/StaticRangeTest.cpp

Issue 2793093002: [InputEvent] Update spec link for StaticRange.idl and use unsigned offset (Closed)
Patch Set: 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/dom/StaticRange.h" 5 #include "core/dom/StaticRange.h"
6 6
7 #include "bindings/core/v8/ExceptionState.h" 7 #include "bindings/core/v8/ExceptionState.h"
8 #include "bindings/core/v8/V8BindingForTesting.h" 8 #include "bindings/core/v8/V8BindingForTesting.h"
9 #include "core/dom/Element.h" 9 #include "core/dom/Element.h"
10 #include "core/dom/NodeList.h" 10 #include "core/dom/NodeList.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 HTMLDocument& StaticRangeTest::document() const { 42 HTMLDocument& StaticRangeTest::document() const {
43 return *m_document; 43 return *m_document;
44 } 44 }
45 45
46 TEST_F(StaticRangeTest, SplitTextNodeRangeWithinText) { 46 TEST_F(StaticRangeTest, SplitTextNodeRangeWithinText) {
47 V8TestingScope scope; 47 V8TestingScope scope;
48 document().body()->setInnerHTML("1234"); 48 document().body()->setInnerHTML("1234");
49 Text* oldText = toText(document().body()->firstChild()); 49 Text* oldText = toText(document().body()->firstChild());
50 50
51 StaticRange* staticRange04 = 51 StaticRange* staticRange04 =
52 StaticRange::create(document(), oldText, 0, oldText, 4); 52 StaticRange::create(document(), oldText, 0u, oldText, 4u);
53 StaticRange* staticRange02 = 53 StaticRange* staticRange02 =
54 StaticRange::create(document(), oldText, 0, oldText, 2); 54 StaticRange::create(document(), oldText, 0u, oldText, 2u);
55 StaticRange* staticRange22 = 55 StaticRange* staticRange22 =
56 StaticRange::create(document(), oldText, 2, oldText, 2); 56 StaticRange::create(document(), oldText, 2u, oldText, 2u);
57 StaticRange* staticRange24 = 57 StaticRange* staticRange24 =
58 StaticRange::create(document(), oldText, 2, oldText, 4); 58 StaticRange::create(document(), oldText, 2u, oldText, 4u);
59 59
60 Range* range04 = staticRange04->toRange(ASSERT_NO_EXCEPTION); 60 Range* range04 = staticRange04->toRange(ASSERT_NO_EXCEPTION);
61 Range* range02 = staticRange02->toRange(ASSERT_NO_EXCEPTION); 61 Range* range02 = staticRange02->toRange(ASSERT_NO_EXCEPTION);
62 Range* range22 = staticRange22->toRange(ASSERT_NO_EXCEPTION); 62 Range* range22 = staticRange22->toRange(ASSERT_NO_EXCEPTION);
63 Range* range24 = staticRange24->toRange(ASSERT_NO_EXCEPTION); 63 Range* range24 = staticRange24->toRange(ASSERT_NO_EXCEPTION);
64 64
65 oldText->splitText(2, ASSERT_NO_EXCEPTION); 65 oldText->splitText(2, ASSERT_NO_EXCEPTION);
66 Text* newText = toText(oldText->nextSibling()); 66 Text* newText = toText(oldText->nextSibling());
67 67
68 // Range should mutate. 68 // Range should mutate.
(...skipping 18 matching lines...) Expand all
87 EXPECT_EQ(2u, range22->endOffset()); 87 EXPECT_EQ(2u, range22->endOffset());
88 88
89 EXPECT_TRUE(range24->boundaryPointsValid()); 89 EXPECT_TRUE(range24->boundaryPointsValid());
90 EXPECT_EQ(oldText, range24->startContainer()); 90 EXPECT_EQ(oldText, range24->startContainer());
91 EXPECT_EQ(2u, range24->startOffset()); 91 EXPECT_EQ(2u, range24->startOffset());
92 EXPECT_EQ(newText, range24->endContainer()); 92 EXPECT_EQ(newText, range24->endContainer());
93 EXPECT_EQ(2u, range24->endOffset()); 93 EXPECT_EQ(2u, range24->endOffset());
94 94
95 // StaticRange shouldn't mutate. 95 // StaticRange shouldn't mutate.
96 EXPECT_EQ(oldText, staticRange04->startContainer()); 96 EXPECT_EQ(oldText, staticRange04->startContainer());
97 EXPECT_EQ(0, staticRange04->startOffset()); 97 EXPECT_EQ(0u, staticRange04->startOffset());
98 EXPECT_EQ(oldText, staticRange04->endContainer()); 98 EXPECT_EQ(oldText, staticRange04->endContainer());
99 EXPECT_EQ(4, staticRange04->endOffset()); 99 EXPECT_EQ(4u, staticRange04->endOffset());
100 100
101 EXPECT_EQ(oldText, staticRange02->startContainer()); 101 EXPECT_EQ(oldText, staticRange02->startContainer());
102 EXPECT_EQ(0, staticRange02->startOffset()); 102 EXPECT_EQ(0u, staticRange02->startOffset());
103 EXPECT_EQ(oldText, staticRange02->endContainer()); 103 EXPECT_EQ(oldText, staticRange02->endContainer());
104 EXPECT_EQ(2, staticRange02->endOffset()); 104 EXPECT_EQ(2u, staticRange02->endOffset());
105 105
106 EXPECT_EQ(oldText, staticRange22->startContainer()); 106 EXPECT_EQ(oldText, staticRange22->startContainer());
107 EXPECT_EQ(2, staticRange22->startOffset()); 107 EXPECT_EQ(2u, staticRange22->startOffset());
108 EXPECT_EQ(oldText, staticRange22->endContainer()); 108 EXPECT_EQ(oldText, staticRange22->endContainer());
109 EXPECT_EQ(2, staticRange22->endOffset()); 109 EXPECT_EQ(2u, staticRange22->endOffset());
110 110
111 EXPECT_EQ(oldText, staticRange24->startContainer()); 111 EXPECT_EQ(oldText, staticRange24->startContainer());
112 EXPECT_EQ(2, staticRange24->startOffset()); 112 EXPECT_EQ(2u, staticRange24->startOffset());
113 EXPECT_EQ(oldText, staticRange24->endContainer()); 113 EXPECT_EQ(oldText, staticRange24->endContainer());
114 EXPECT_EQ(4, staticRange24->endOffset()); 114 EXPECT_EQ(4u, staticRange24->endOffset());
115 } 115 }
116 116
117 TEST_F(StaticRangeTest, SplitTextNodeRangeOutsideText) { 117 TEST_F(StaticRangeTest, SplitTextNodeRangeOutsideText) {
118 V8TestingScope scope; 118 V8TestingScope scope;
119 document().body()->setInnerHTML( 119 document().body()->setInnerHTML(
120 "<span id=\"outer\">0<span id=\"inner-left\">1</span>SPLITME<span " 120 "<span id=\"outer\">0<span id=\"inner-left\">1</span>SPLITME<span "
121 "id=\"inner-right\">2</span>3</span>"); 121 "id=\"inner-right\">2</span>3</span>");
122 122
123 Element* outer = document().getElementById(AtomicString::fromUTF8("outer")); 123 Element* outer = document().getElementById(AtomicString::fromUTF8("outer"));
124 Element* innerLeft = 124 Element* innerLeft =
125 document().getElementById(AtomicString::fromUTF8("inner-left")); 125 document().getElementById(AtomicString::fromUTF8("inner-left"));
126 Element* innerRight = 126 Element* innerRight =
127 document().getElementById(AtomicString::fromUTF8("inner-right")); 127 document().getElementById(AtomicString::fromUTF8("inner-right"));
128 Text* oldText = toText(outer->childNodes()->item(2)); 128 Text* oldText = toText(outer->childNodes()->item(2));
129 129
130 StaticRange* staticRangeOuterOutside = 130 StaticRange* staticRangeOuterOutside =
131 StaticRange::create(document(), outer, 0, outer, 5); 131 StaticRange::create(document(), outer, 0u, outer, 5u);
132 StaticRange* staticRangeOuterInside = 132 StaticRange* staticRangeOuterInside =
133 StaticRange::create(document(), outer, 1, outer, 4); 133 StaticRange::create(document(), outer, 1u, outer, 4u);
134 StaticRange* staticRangeOuterSurroundingText = 134 StaticRange* staticRangeOuterSurroundingText =
135 StaticRange::create(document(), outer, 2, outer, 3); 135 StaticRange::create(document(), outer, 2u, outer, 3u);
136 StaticRange* staticRangeInnerLeft = 136 StaticRange* staticRangeInnerLeft =
137 StaticRange::create(document(), innerLeft, 0, innerLeft, 1); 137 StaticRange::create(document(), innerLeft, 0u, innerLeft, 1u);
138 StaticRange* staticRangeInnerRight = 138 StaticRange* staticRangeInnerRight =
139 StaticRange::create(document(), innerRight, 0, innerRight, 1); 139 StaticRange::create(document(), innerRight, 0u, innerRight, 1u);
140 StaticRange* staticRangeFromTextToMiddleOfElement = 140 StaticRange* staticRangeFromTextToMiddleOfElement =
141 StaticRange::create(document(), oldText, 6, outer, 3); 141 StaticRange::create(document(), oldText, 6u, outer, 3u);
142 142
143 Range* rangeOuterOutside = 143 Range* rangeOuterOutside =
144 staticRangeOuterOutside->toRange(ASSERT_NO_EXCEPTION); 144 staticRangeOuterOutside->toRange(ASSERT_NO_EXCEPTION);
145 Range* rangeOuterInside = 145 Range* rangeOuterInside =
146 staticRangeOuterInside->toRange(ASSERT_NO_EXCEPTION); 146 staticRangeOuterInside->toRange(ASSERT_NO_EXCEPTION);
147 Range* rangeOuterSurroundingText = 147 Range* rangeOuterSurroundingText =
148 staticRangeOuterSurroundingText->toRange(ASSERT_NO_EXCEPTION); 148 staticRangeOuterSurroundingText->toRange(ASSERT_NO_EXCEPTION);
149 Range* rangeInnerLeft = staticRangeInnerLeft->toRange(ASSERT_NO_EXCEPTION); 149 Range* rangeInnerLeft = staticRangeInnerLeft->toRange(ASSERT_NO_EXCEPTION);
150 Range* rangeInnerRight = staticRangeInnerRight->toRange(ASSERT_NO_EXCEPTION); 150 Range* rangeInnerRight = staticRangeInnerRight->toRange(ASSERT_NO_EXCEPTION);
151 Range* rangeFromTextToMiddleOfElement = 151 Range* rangeFromTextToMiddleOfElement =
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 EXPECT_EQ(1u, rangeInnerRight->endOffset()); 188 EXPECT_EQ(1u, rangeInnerRight->endOffset());
189 189
190 EXPECT_TRUE(rangeFromTextToMiddleOfElement->boundaryPointsValid()); 190 EXPECT_TRUE(rangeFromTextToMiddleOfElement->boundaryPointsValid());
191 EXPECT_EQ(newText, rangeFromTextToMiddleOfElement->startContainer()); 191 EXPECT_EQ(newText, rangeFromTextToMiddleOfElement->startContainer());
192 EXPECT_EQ(3u, rangeFromTextToMiddleOfElement->startOffset()); 192 EXPECT_EQ(3u, rangeFromTextToMiddleOfElement->startOffset());
193 EXPECT_EQ(outer, rangeFromTextToMiddleOfElement->endContainer()); 193 EXPECT_EQ(outer, rangeFromTextToMiddleOfElement->endContainer());
194 EXPECT_EQ(4u, rangeFromTextToMiddleOfElement->endOffset()); 194 EXPECT_EQ(4u, rangeFromTextToMiddleOfElement->endOffset());
195 195
196 // StaticRange shouldn't mutate. 196 // StaticRange shouldn't mutate.
197 EXPECT_EQ(outer, staticRangeOuterOutside->startContainer()); 197 EXPECT_EQ(outer, staticRangeOuterOutside->startContainer());
198 EXPECT_EQ(0, staticRangeOuterOutside->startOffset()); 198 EXPECT_EQ(0u, staticRangeOuterOutside->startOffset());
199 EXPECT_EQ(outer, staticRangeOuterOutside->endContainer()); 199 EXPECT_EQ(outer, staticRangeOuterOutside->endContainer());
200 EXPECT_EQ(5, staticRangeOuterOutside->endOffset()); 200 EXPECT_EQ(5u, staticRangeOuterOutside->endOffset());
201 201
202 EXPECT_EQ(outer, staticRangeOuterInside->startContainer()); 202 EXPECT_EQ(outer, staticRangeOuterInside->startContainer());
203 EXPECT_EQ(1, staticRangeOuterInside->startOffset()); 203 EXPECT_EQ(1u, staticRangeOuterInside->startOffset());
204 EXPECT_EQ(outer, staticRangeOuterInside->endContainer()); 204 EXPECT_EQ(outer, staticRangeOuterInside->endContainer());
205 EXPECT_EQ(4, staticRangeOuterInside->endOffset()); 205 EXPECT_EQ(4u, staticRangeOuterInside->endOffset());
206 206
207 EXPECT_EQ(outer, staticRangeOuterSurroundingText->startContainer()); 207 EXPECT_EQ(outer, staticRangeOuterSurroundingText->startContainer());
208 EXPECT_EQ(2, staticRangeOuterSurroundingText->startOffset()); 208 EXPECT_EQ(2u, staticRangeOuterSurroundingText->startOffset());
209 EXPECT_EQ(outer, staticRangeOuterSurroundingText->endContainer()); 209 EXPECT_EQ(outer, staticRangeOuterSurroundingText->endContainer());
210 EXPECT_EQ(3, staticRangeOuterSurroundingText->endOffset()); 210 EXPECT_EQ(3u, staticRangeOuterSurroundingText->endOffset());
211 211
212 EXPECT_EQ(innerLeft, staticRangeInnerLeft->startContainer()); 212 EXPECT_EQ(innerLeft, staticRangeInnerLeft->startContainer());
213 EXPECT_EQ(0, staticRangeInnerLeft->startOffset()); 213 EXPECT_EQ(0u, staticRangeInnerLeft->startOffset());
214 EXPECT_EQ(innerLeft, staticRangeInnerLeft->endContainer()); 214 EXPECT_EQ(innerLeft, staticRangeInnerLeft->endContainer());
215 EXPECT_EQ(1, staticRangeInnerLeft->endOffset()); 215 EXPECT_EQ(1u, staticRangeInnerLeft->endOffset());
216 216
217 EXPECT_EQ(innerRight, staticRangeInnerRight->startContainer()); 217 EXPECT_EQ(innerRight, staticRangeInnerRight->startContainer());
218 EXPECT_EQ(0, staticRangeInnerRight->startOffset()); 218 EXPECT_EQ(0u, staticRangeInnerRight->startOffset());
219 EXPECT_EQ(innerRight, staticRangeInnerRight->endContainer()); 219 EXPECT_EQ(innerRight, staticRangeInnerRight->endContainer());
220 EXPECT_EQ(1, staticRangeInnerRight->endOffset()); 220 EXPECT_EQ(1u, staticRangeInnerRight->endOffset());
221 221
222 EXPECT_EQ(oldText, staticRangeFromTextToMiddleOfElement->startContainer()); 222 EXPECT_EQ(oldText, staticRangeFromTextToMiddleOfElement->startContainer());
223 EXPECT_EQ(6, staticRangeFromTextToMiddleOfElement->startOffset()); 223 EXPECT_EQ(6u, staticRangeFromTextToMiddleOfElement->startOffset());
224 EXPECT_EQ(outer, staticRangeFromTextToMiddleOfElement->endContainer()); 224 EXPECT_EQ(outer, staticRangeFromTextToMiddleOfElement->endContainer());
225 EXPECT_EQ(3, staticRangeFromTextToMiddleOfElement->endOffset()); 225 EXPECT_EQ(3u, staticRangeFromTextToMiddleOfElement->endOffset());
226 } 226 }
227 227
228 TEST_F(StaticRangeTest, InvalidToRange) { 228 TEST_F(StaticRangeTest, InvalidToRange) {
229 V8TestingScope scope; 229 V8TestingScope scope;
230 document().body()->setInnerHTML("1234"); 230 document().body()->setInnerHTML("1234");
231 Text* oldText = toText(document().body()->firstChild()); 231 Text* oldText = toText(document().body()->firstChild());
232 232
233 StaticRange* staticRange04 = 233 StaticRange* staticRange04 =
234 StaticRange::create(document(), oldText, 0, oldText, 4); 234 StaticRange::create(document(), oldText, 0u, oldText, 4u);
235 235
236 // Valid StaticRange. 236 // Valid StaticRange.
237 staticRange04->toRange(ASSERT_NO_EXCEPTION); 237 staticRange04->toRange(ASSERT_NO_EXCEPTION);
238 238
239 oldText->splitText(2, ASSERT_NO_EXCEPTION); 239 oldText->splitText(2, ASSERT_NO_EXCEPTION);
240 // StaticRange shouldn't mutate, endOffset() become invalid after splitText(). 240 // StaticRange shouldn't mutate, endOffset() become invalid after splitText().
241 EXPECT_EQ(oldText, staticRange04->startContainer()); 241 EXPECT_EQ(oldText, staticRange04->startContainer());
242 EXPECT_EQ(0, staticRange04->startOffset()); 242 EXPECT_EQ(0u, staticRange04->startOffset());
243 EXPECT_EQ(oldText, staticRange04->endContainer()); 243 EXPECT_EQ(oldText, staticRange04->endContainer());
244 EXPECT_EQ(4, staticRange04->endOffset()); 244 EXPECT_EQ(4u, staticRange04->endOffset());
245 245
246 // Invalid StaticRange. 246 // Invalid StaticRange.
247 DummyExceptionStateForTesting exceptionState; 247 DummyExceptionStateForTesting exceptionState;
248 staticRange04->toRange(exceptionState); 248 staticRange04->toRange(exceptionState);
249 EXPECT_TRUE(exceptionState.hadException()); 249 EXPECT_TRUE(exceptionState.hadException());
250 } 250 }
251 251
252 } // namespace blink 252 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698