| 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/editing/VisibleUnits.h" | 5 #include "core/editing/VisibleUnits.h" |
| 6 | 6 |
| 7 #include <ostream> // NOLINT | 7 #include <ostream> // NOLINT |
| 8 #include "bindings/core/v8/V8BindingForTesting.h" | 8 #include "bindings/core/v8/V8BindingForTesting.h" |
| 9 #include "core/dom/Text.h" | 9 #include "core/dom/Text.h" |
| 10 #include "core/editing/EditingTestBase.h" | 10 #include "core/editing/EditingTestBase.h" |
| (...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 239 CanonicalPositionOf(Position(two, 1))); | 239 CanonicalPositionOf(Position(two, 1))); |
| 240 } | 240 } |
| 241 | 241 |
| 242 // For http://crbug.com/695317 | 242 // For http://crbug.com/695317 |
| 243 TEST_F(VisibleUnitsTest, canonicalPositionOfWithInputElement) { | 243 TEST_F(VisibleUnitsTest, canonicalPositionOfWithInputElement) { |
| 244 SetBodyContent("<input>123"); | 244 SetBodyContent("<input>123"); |
| 245 Element* const input = GetDocument().QuerySelector("input"); | 245 Element* const input = GetDocument().QuerySelector("input"); |
| 246 | 246 |
| 247 EXPECT_EQ(Position::BeforeNode(*input), | 247 EXPECT_EQ(Position::BeforeNode(*input), |
| 248 CanonicalPositionOf(Position::FirstPositionInNode( | 248 CanonicalPositionOf(Position::FirstPositionInNode( |
| 249 GetDocument().documentElement()))); | 249 *GetDocument().documentElement()))); |
| 250 | 250 |
| 251 EXPECT_EQ(PositionInFlatTree::BeforeNode(*input), | 251 EXPECT_EQ(PositionInFlatTree::BeforeNode(*input), |
| 252 CanonicalPositionOf(PositionInFlatTree::FirstPositionInNode( | 252 CanonicalPositionOf(PositionInFlatTree::FirstPositionInNode( |
| 253 GetDocument().documentElement()))); | 253 *GetDocument().documentElement()))); |
| 254 } | 254 } |
| 255 | 255 |
| 256 TEST_F(VisibleUnitsTest, characterBefore) { | 256 TEST_F(VisibleUnitsTest, characterBefore) { |
| 257 const char* body_content = | 257 const char* body_content = |
| 258 "<p id=host><b id=one>1</b><b id=two>22</b></p><b id=three>333</b>"; | 258 "<p id=host><b id=one>1</b><b id=two>22</b></p><b id=three>333</b>"; |
| 259 const char* shadow_content = | 259 const char* shadow_content = |
| 260 "<b id=four>4444</b><content select=#two></content><content " | 260 "<b id=four>4444</b><content select=#two></content><content " |
| 261 "select=#one></content><b id=five>5555</b>"; | 261 "select=#one></content><b id=five>5555</b>"; |
| 262 SetBodyContent(body_content); | 262 SetBodyContent(body_content); |
| 263 ShadowRoot* shadow_root = SetShadowContent(shadow_content, "host"); | 263 ShadowRoot* shadow_root = SetShadowContent(shadow_content, "host"); |
| (...skipping 1067 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1331 TEST_F(VisibleUnitsTest, mostForwardCaretPositionFirstLetter) { | 1331 TEST_F(VisibleUnitsTest, mostForwardCaretPositionFirstLetter) { |
| 1332 // Note: first-letter pseudo element contains letter and punctuations. | 1332 // Note: first-letter pseudo element contains letter and punctuations. |
| 1333 const char* body_content = | 1333 const char* body_content = |
| 1334 "<style>p:first-letter {color:red;}</style><p id=sample> (2)45 </p>"; | 1334 "<style>p:first-letter {color:red;}</style><p id=sample> (2)45 </p>"; |
| 1335 SetBodyContent(body_content); | 1335 SetBodyContent(body_content); |
| 1336 | 1336 |
| 1337 Node* sample = GetDocument().getElementById("sample")->firstChild(); | 1337 Node* sample = GetDocument().getElementById("sample")->firstChild(); |
| 1338 | 1338 |
| 1339 EXPECT_EQ(Position(GetDocument().body(), 0), | 1339 EXPECT_EQ(Position(GetDocument().body(), 0), |
| 1340 MostForwardCaretPosition( | 1340 MostForwardCaretPosition( |
| 1341 Position::FirstPositionInNode(GetDocument().body()))); | 1341 Position::FirstPositionInNode(*GetDocument().body()))); |
| 1342 EXPECT_EQ( | 1342 EXPECT_EQ( |
| 1343 Position(sample, 1), | 1343 Position(sample, 1), |
| 1344 MostForwardCaretPosition(Position::BeforeNode(*sample->parentNode()))); | 1344 MostForwardCaretPosition(Position::BeforeNode(*sample->parentNode()))); |
| 1345 EXPECT_EQ(Position(sample, 1), | 1345 EXPECT_EQ(Position(sample, 1), |
| 1346 MostForwardCaretPosition( | 1346 MostForwardCaretPosition( |
| 1347 Position::FirstPositionInNode(sample->parentNode()))); | 1347 Position::FirstPositionInNode(*sample->parentNode()))); |
| 1348 EXPECT_EQ(Position(sample, 1), MostForwardCaretPosition(Position(sample, 0))); | 1348 EXPECT_EQ(Position(sample, 1), MostForwardCaretPosition(Position(sample, 0))); |
| 1349 EXPECT_EQ(Position(sample, 1), MostForwardCaretPosition(Position(sample, 1))); | 1349 EXPECT_EQ(Position(sample, 1), MostForwardCaretPosition(Position(sample, 1))); |
| 1350 EXPECT_EQ(Position(sample, 2), MostForwardCaretPosition(Position(sample, 2))); | 1350 EXPECT_EQ(Position(sample, 2), MostForwardCaretPosition(Position(sample, 2))); |
| 1351 EXPECT_EQ(Position(sample, 3), MostForwardCaretPosition(Position(sample, 3))); | 1351 EXPECT_EQ(Position(sample, 3), MostForwardCaretPosition(Position(sample, 3))); |
| 1352 EXPECT_EQ(Position(sample, 4), MostForwardCaretPosition(Position(sample, 4))); | 1352 EXPECT_EQ(Position(sample, 4), MostForwardCaretPosition(Position(sample, 4))); |
| 1353 EXPECT_EQ(Position(sample, 5), MostForwardCaretPosition(Position(sample, 5))); | 1353 EXPECT_EQ(Position(sample, 5), MostForwardCaretPosition(Position(sample, 5))); |
| 1354 EXPECT_EQ(Position(sample, 7), MostForwardCaretPosition(Position(sample, 6))); | 1354 EXPECT_EQ(Position(sample, 7), MostForwardCaretPosition(Position(sample, 6))); |
| 1355 EXPECT_EQ(Position(sample, 7), MostForwardCaretPosition(Position(sample, 7))); | 1355 EXPECT_EQ(Position(sample, 7), MostForwardCaretPosition(Position(sample, 7))); |
| 1356 } | 1356 } |
| 1357 | 1357 |
| (...skipping 561 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1919 Element* const one = GetDocument().getElementById("one"); | 1919 Element* const one = GetDocument().getElementById("one"); |
| 1920 Element* const two = GetDocument().getElementById("two"); | 1920 Element* const two = GetDocument().getElementById("two"); |
| 1921 const VisiblePosition& visible_position = | 1921 const VisiblePosition& visible_position = |
| 1922 CreateVisiblePosition(Position::LastPositionInNode(two)); | 1922 CreateVisiblePosition(Position::LastPositionInNode(two)); |
| 1923 EXPECT_EQ(Position(one->firstChild(), 7), | 1923 EXPECT_EQ(Position(one->firstChild(), 7), |
| 1924 PreviousRootInlineBoxCandidatePosition( | 1924 PreviousRootInlineBoxCandidatePosition( |
| 1925 two->lastChild(), visible_position, kContentIsEditable)); | 1925 two->lastChild(), visible_position, kContentIsEditable)); |
| 1926 } | 1926 } |
| 1927 | 1927 |
| 1928 } // namespace blink | 1928 } // namespace blink |
| OLD | NEW |