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