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 |