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

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

Issue 2701413003: Range: node offsets should be unsigned. (Closed)
Patch Set: Resolve std::numeric_limits<int>::max() leftover Created 3 years, 10 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 "core/dom/Element.h" 8 #include "core/dom/Element.h"
9 #include "core/dom/NodeList.h" 9 #include "core/dom/NodeList.h"
10 #include "core/dom/Range.h" 10 #include "core/dom/Range.h"
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 Range* range02 = staticRange02->toRange(ASSERT_NO_EXCEPTION); 59 Range* range02 = staticRange02->toRange(ASSERT_NO_EXCEPTION);
60 Range* range22 = staticRange22->toRange(ASSERT_NO_EXCEPTION); 60 Range* range22 = staticRange22->toRange(ASSERT_NO_EXCEPTION);
61 Range* range24 = staticRange24->toRange(ASSERT_NO_EXCEPTION); 61 Range* range24 = staticRange24->toRange(ASSERT_NO_EXCEPTION);
62 62
63 oldText->splitText(2, ASSERT_NO_EXCEPTION); 63 oldText->splitText(2, ASSERT_NO_EXCEPTION);
64 Text* newText = toText(oldText->nextSibling()); 64 Text* newText = toText(oldText->nextSibling());
65 65
66 // Range should mutate. 66 // Range should mutate.
67 EXPECT_TRUE(range04->boundaryPointsValid()); 67 EXPECT_TRUE(range04->boundaryPointsValid());
68 EXPECT_EQ(oldText, range04->startContainer()); 68 EXPECT_EQ(oldText, range04->startContainer());
69 EXPECT_EQ(0, range04->startOffset()); 69 EXPECT_EQ(0u, range04->startOffset());
70 EXPECT_EQ(newText, range04->endContainer()); 70 EXPECT_EQ(newText, range04->endContainer());
71 EXPECT_EQ(2, range04->endOffset()); 71 EXPECT_EQ(2u, range04->endOffset());
72 72
73 EXPECT_TRUE(range02->boundaryPointsValid()); 73 EXPECT_TRUE(range02->boundaryPointsValid());
74 EXPECT_EQ(oldText, range02->startContainer()); 74 EXPECT_EQ(oldText, range02->startContainer());
75 EXPECT_EQ(0, range02->startOffset()); 75 EXPECT_EQ(0u, range02->startOffset());
76 EXPECT_EQ(oldText, range02->endContainer()); 76 EXPECT_EQ(oldText, range02->endContainer());
77 EXPECT_EQ(2, range02->endOffset()); 77 EXPECT_EQ(2u, range02->endOffset());
78 78
79 // Our implementation always moves the boundary point at the separation point 79 // Our implementation always moves the boundary point at the separation point
80 // to the end of the original text node. 80 // to the end of the original text node.
81 EXPECT_TRUE(range22->boundaryPointsValid()); 81 EXPECT_TRUE(range22->boundaryPointsValid());
82 EXPECT_EQ(oldText, range22->startContainer()); 82 EXPECT_EQ(oldText, range22->startContainer());
83 EXPECT_EQ(2, range22->startOffset()); 83 EXPECT_EQ(2u, range22->startOffset());
84 EXPECT_EQ(oldText, range22->endContainer()); 84 EXPECT_EQ(oldText, range22->endContainer());
85 EXPECT_EQ(2, range22->endOffset()); 85 EXPECT_EQ(2u, range22->endOffset());
86 86
87 EXPECT_TRUE(range24->boundaryPointsValid()); 87 EXPECT_TRUE(range24->boundaryPointsValid());
88 EXPECT_EQ(oldText, range24->startContainer()); 88 EXPECT_EQ(oldText, range24->startContainer());
89 EXPECT_EQ(2, range24->startOffset()); 89 EXPECT_EQ(2u, range24->startOffset());
90 EXPECT_EQ(newText, range24->endContainer()); 90 EXPECT_EQ(newText, range24->endContainer());
91 EXPECT_EQ(2, range24->endOffset()); 91 EXPECT_EQ(2u, range24->endOffset());
92 92
93 // StaticRange shouldn't mutate. 93 // StaticRange shouldn't mutate.
94 EXPECT_EQ(oldText, staticRange04->startContainer()); 94 EXPECT_EQ(oldText, staticRange04->startContainer());
95 EXPECT_EQ(0, staticRange04->startOffset()); 95 EXPECT_EQ(0, staticRange04->startOffset());
96 EXPECT_EQ(oldText, staticRange04->endContainer()); 96 EXPECT_EQ(oldText, staticRange04->endContainer());
97 EXPECT_EQ(4, staticRange04->endOffset()); 97 EXPECT_EQ(4, staticRange04->endOffset());
98 98
99 EXPECT_EQ(oldText, staticRange02->startContainer()); 99 EXPECT_EQ(oldText, staticRange02->startContainer());
100 EXPECT_EQ(0, staticRange02->startOffset()); 100 EXPECT_EQ(0, staticRange02->startOffset());
101 EXPECT_EQ(oldText, staticRange02->endContainer()); 101 EXPECT_EQ(oldText, staticRange02->endContainer());
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 Range* rangeInnerRight = staticRangeInnerRight->toRange(ASSERT_NO_EXCEPTION); 147 Range* rangeInnerRight = staticRangeInnerRight->toRange(ASSERT_NO_EXCEPTION);
148 Range* rangeFromTextToMiddleOfElement = 148 Range* rangeFromTextToMiddleOfElement =
149 staticRangeFromTextToMiddleOfElement->toRange(ASSERT_NO_EXCEPTION); 149 staticRangeFromTextToMiddleOfElement->toRange(ASSERT_NO_EXCEPTION);
150 150
151 oldText->splitText(3, ASSERT_NO_EXCEPTION); 151 oldText->splitText(3, ASSERT_NO_EXCEPTION);
152 Text* newText = toText(oldText->nextSibling()); 152 Text* newText = toText(oldText->nextSibling());
153 153
154 // Range should mutate. 154 // Range should mutate.
155 EXPECT_TRUE(rangeOuterOutside->boundaryPointsValid()); 155 EXPECT_TRUE(rangeOuterOutside->boundaryPointsValid());
156 EXPECT_EQ(outer, rangeOuterOutside->startContainer()); 156 EXPECT_EQ(outer, rangeOuterOutside->startContainer());
157 EXPECT_EQ(0, rangeOuterOutside->startOffset()); 157 EXPECT_EQ(0u, rangeOuterOutside->startOffset());
158 EXPECT_EQ(outer, rangeOuterOutside->endContainer()); 158 EXPECT_EQ(outer, rangeOuterOutside->endContainer());
159 EXPECT_EQ(6, 159 EXPECT_EQ(6u,
160 rangeOuterOutside 160 rangeOuterOutside
161 ->endOffset()); // Increased by 1 since a new node is inserted. 161 ->endOffset()); // Increased by 1 since a new node is inserted.
162 162
163 EXPECT_TRUE(rangeOuterInside->boundaryPointsValid()); 163 EXPECT_TRUE(rangeOuterInside->boundaryPointsValid());
164 EXPECT_EQ(outer, rangeOuterInside->startContainer()); 164 EXPECT_EQ(outer, rangeOuterInside->startContainer());
165 EXPECT_EQ(1, rangeOuterInside->startOffset()); 165 EXPECT_EQ(1u, rangeOuterInside->startOffset());
166 EXPECT_EQ(outer, rangeOuterInside->endContainer()); 166 EXPECT_EQ(outer, rangeOuterInside->endContainer());
167 EXPECT_EQ(5, rangeOuterInside->endOffset()); 167 EXPECT_EQ(5u, rangeOuterInside->endOffset());
168 168
169 EXPECT_TRUE(rangeOuterSurroundingText->boundaryPointsValid()); 169 EXPECT_TRUE(rangeOuterSurroundingText->boundaryPointsValid());
170 EXPECT_EQ(outer, rangeOuterSurroundingText->startContainer()); 170 EXPECT_EQ(outer, rangeOuterSurroundingText->startContainer());
171 EXPECT_EQ(2, rangeOuterSurroundingText->startOffset()); 171 EXPECT_EQ(2u, rangeOuterSurroundingText->startOffset());
172 EXPECT_EQ(outer, rangeOuterSurroundingText->endContainer()); 172 EXPECT_EQ(outer, rangeOuterSurroundingText->endContainer());
173 EXPECT_EQ(4, rangeOuterSurroundingText->endOffset()); 173 EXPECT_EQ(4u, rangeOuterSurroundingText->endOffset());
174 174
175 EXPECT_TRUE(rangeInnerLeft->boundaryPointsValid()); 175 EXPECT_TRUE(rangeInnerLeft->boundaryPointsValid());
176 EXPECT_EQ(innerLeft, rangeInnerLeft->startContainer()); 176 EXPECT_EQ(innerLeft, rangeInnerLeft->startContainer());
177 EXPECT_EQ(0, rangeInnerLeft->startOffset()); 177 EXPECT_EQ(0u, rangeInnerLeft->startOffset());
178 EXPECT_EQ(innerLeft, rangeInnerLeft->endContainer()); 178 EXPECT_EQ(innerLeft, rangeInnerLeft->endContainer());
179 EXPECT_EQ(1, rangeInnerLeft->endOffset()); 179 EXPECT_EQ(1u, rangeInnerLeft->endOffset());
180 180
181 EXPECT_TRUE(rangeInnerRight->boundaryPointsValid()); 181 EXPECT_TRUE(rangeInnerRight->boundaryPointsValid());
182 EXPECT_EQ(innerRight, rangeInnerRight->startContainer()); 182 EXPECT_EQ(innerRight, rangeInnerRight->startContainer());
183 EXPECT_EQ(0, rangeInnerRight->startOffset()); 183 EXPECT_EQ(0u, rangeInnerRight->startOffset());
184 EXPECT_EQ(innerRight, rangeInnerRight->endContainer()); 184 EXPECT_EQ(innerRight, rangeInnerRight->endContainer());
185 EXPECT_EQ(1, rangeInnerRight->endOffset()); 185 EXPECT_EQ(1u, rangeInnerRight->endOffset());
186 186
187 EXPECT_TRUE(rangeFromTextToMiddleOfElement->boundaryPointsValid()); 187 EXPECT_TRUE(rangeFromTextToMiddleOfElement->boundaryPointsValid());
188 EXPECT_EQ(newText, rangeFromTextToMiddleOfElement->startContainer()); 188 EXPECT_EQ(newText, rangeFromTextToMiddleOfElement->startContainer());
189 EXPECT_EQ(3, rangeFromTextToMiddleOfElement->startOffset()); 189 EXPECT_EQ(3u, rangeFromTextToMiddleOfElement->startOffset());
190 EXPECT_EQ(outer, rangeFromTextToMiddleOfElement->endContainer()); 190 EXPECT_EQ(outer, rangeFromTextToMiddleOfElement->endContainer());
191 EXPECT_EQ(4, rangeFromTextToMiddleOfElement->endOffset()); 191 EXPECT_EQ(4u, rangeFromTextToMiddleOfElement->endOffset());
192 192
193 // StaticRange shouldn't mutate. 193 // StaticRange shouldn't mutate.
194 EXPECT_EQ(outer, staticRangeOuterOutside->startContainer()); 194 EXPECT_EQ(outer, staticRangeOuterOutside->startContainer());
195 EXPECT_EQ(0, staticRangeOuterOutside->startOffset()); 195 EXPECT_EQ(0, staticRangeOuterOutside->startOffset());
196 EXPECT_EQ(outer, staticRangeOuterOutside->endContainer()); 196 EXPECT_EQ(outer, staticRangeOuterOutside->endContainer());
197 EXPECT_EQ(5, staticRangeOuterOutside->endOffset()); 197 EXPECT_EQ(5, staticRangeOuterOutside->endOffset());
198 198
199 EXPECT_EQ(outer, staticRangeOuterInside->startContainer()); 199 EXPECT_EQ(outer, staticRangeOuterInside->startContainer());
200 EXPECT_EQ(1, staticRangeOuterInside->startOffset()); 200 EXPECT_EQ(1, staticRangeOuterInside->startOffset());
201 EXPECT_EQ(outer, staticRangeOuterInside->endContainer()); 201 EXPECT_EQ(outer, staticRangeOuterInside->endContainer());
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 EXPECT_EQ(oldText, staticRange04->endContainer()); 239 EXPECT_EQ(oldText, staticRange04->endContainer());
240 EXPECT_EQ(4, staticRange04->endOffset()); 240 EXPECT_EQ(4, staticRange04->endOffset());
241 241
242 // Invalid StaticRange. 242 // Invalid StaticRange.
243 DummyExceptionStateForTesting exceptionState; 243 DummyExceptionStateForTesting exceptionState;
244 staticRange04->toRange(exceptionState); 244 staticRange04->toRange(exceptionState);
245 EXPECT_TRUE(exceptionState.hadException()); 245 EXPECT_TRUE(exceptionState.hadException());
246 } 246 }
247 247
248 } // namespace blink 248 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698