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

Side by Side Diff: third_party/WebKit/Source/core/editing/VisibleUnitsTest.cpp

Issue 2953683004: Make Position::AfterNode() to take const Node& instead of Node* (Closed)
Patch Set: 2017-06-22T12:37:16 Created 3 years, 6 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 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 1223 matching lines...) Expand 10 before | Expand all | Expand 10 after
1234 const char* body_content = 1234 const char* body_content =
1235 "<p id='host'><b id='one'>1</b></p><b id='two'>22</b>"; 1235 "<p id='host'><b id='one'>1</b></p><b id='two'>22</b>";
1236 const char* shadow_content = 1236 const char* shadow_content =
1237 "<b id='two'>22</b><content select=#one></content><b id='three'>333</b>"; 1237 "<b id='two'>22</b><content select=#one></content><b id='three'>333</b>";
1238 SetBodyContent(body_content); 1238 SetBodyContent(body_content);
1239 SetShadowContent(shadow_content, "host"); 1239 SetShadowContent(shadow_content, "host");
1240 1240
1241 Element* host = GetDocument().getElementById("host"); 1241 Element* host = GetDocument().getElementById("host");
1242 1242
1243 EXPECT_EQ(Position::LastPositionInNode(host), 1243 EXPECT_EQ(Position::LastPositionInNode(host),
1244 MostForwardCaretPosition(Position::AfterNode(host))); 1244 MostForwardCaretPosition(Position::AfterNode(*host)));
1245 EXPECT_EQ(PositionInFlatTree::LastPositionInNode(host), 1245 EXPECT_EQ(PositionInFlatTree::LastPositionInNode(host),
1246 MostForwardCaretPosition(PositionInFlatTree::AfterNode(host))); 1246 MostForwardCaretPosition(PositionInFlatTree::AfterNode(*host)));
1247 } 1247 }
1248 1248
1249 TEST_F(VisibleUnitsTest, mostBackwardCaretPositionFirstLetter) { 1249 TEST_F(VisibleUnitsTest, mostBackwardCaretPositionFirstLetter) {
1250 // Note: first-letter pseudo element contains letter and punctuations. 1250 // Note: first-letter pseudo element contains letter and punctuations.
1251 const char* body_content = 1251 const char* body_content =
1252 "<style>p:first-letter {color:red;}</style><p id=sample> (2)45 </p>"; 1252 "<style>p:first-letter {color:red;}</style><p id=sample> (2)45 </p>";
1253 SetBodyContent(body_content); 1253 SetBodyContent(body_content);
1254 1254
1255 Node* sample = GetDocument().getElementById("sample")->firstChild(); 1255 Node* sample = GetDocument().getElementById("sample")->firstChild();
1256 1256
(...skipping 11 matching lines...) Expand all
1268 MostBackwardCaretPosition(Position(sample, 5))); 1268 MostBackwardCaretPosition(Position(sample, 5)));
1269 EXPECT_EQ(Position(sample, 6), 1269 EXPECT_EQ(Position(sample, 6),
1270 MostBackwardCaretPosition(Position(sample, 6))); 1270 MostBackwardCaretPosition(Position(sample, 6)));
1271 EXPECT_EQ(Position(sample, 6), 1271 EXPECT_EQ(Position(sample, 6),
1272 MostBackwardCaretPosition(Position(sample, 7))); 1272 MostBackwardCaretPosition(Position(sample, 7)));
1273 EXPECT_EQ(Position(sample, 6), 1273 EXPECT_EQ(Position(sample, 6),
1274 MostBackwardCaretPosition( 1274 MostBackwardCaretPosition(
1275 Position::LastPositionInNode(sample->parentNode()))); 1275 Position::LastPositionInNode(sample->parentNode())));
1276 EXPECT_EQ( 1276 EXPECT_EQ(
1277 Position(sample, 6), 1277 Position(sample, 6),
1278 MostBackwardCaretPosition(Position::AfterNode(sample->parentNode()))); 1278 MostBackwardCaretPosition(Position::AfterNode(*sample->parentNode())));
1279 EXPECT_EQ(Position::LastPositionInNode(GetDocument().body()), 1279 EXPECT_EQ(Position::LastPositionInNode(GetDocument().body()),
1280 MostBackwardCaretPosition( 1280 MostBackwardCaretPosition(
1281 Position::LastPositionInNode(GetDocument().body()))); 1281 Position::LastPositionInNode(GetDocument().body())));
1282 } 1282 }
1283 1283
1284 TEST_F(VisibleUnitsTest, mostBackwardCaretPositionFirstLetterSplit) { 1284 TEST_F(VisibleUnitsTest, mostBackwardCaretPositionFirstLetterSplit) {
1285 V8TestingScope scope; 1285 V8TestingScope scope;
1286 1286
1287 const char* body_content = 1287 const char* body_content =
1288 "<style>p:first-letter {color:red;}</style><p id=sample>abc</p>"; 1288 "<style>p:first-letter {color:red;}</style><p id=sample>abc</p>";
(...skipping 11 matching lines...) Expand all
1300 MostBackwardCaretPosition(Position(first_letter, 1))); 1300 MostBackwardCaretPosition(Position(first_letter, 1)));
1301 EXPECT_EQ(Position(first_letter, 1), 1301 EXPECT_EQ(Position(first_letter, 1),
1302 MostBackwardCaretPosition(Position(remaining, 0))); 1302 MostBackwardCaretPosition(Position(remaining, 0)));
1303 EXPECT_EQ(Position(remaining, 1), 1303 EXPECT_EQ(Position(remaining, 1),
1304 MostBackwardCaretPosition(Position(remaining, 1))); 1304 MostBackwardCaretPosition(Position(remaining, 1)));
1305 EXPECT_EQ(Position(remaining, 2), 1305 EXPECT_EQ(Position(remaining, 2),
1306 MostBackwardCaretPosition(Position(remaining, 2))); 1306 MostBackwardCaretPosition(Position(remaining, 2)));
1307 EXPECT_EQ(Position(remaining, 2), 1307 EXPECT_EQ(Position(remaining, 2),
1308 MostBackwardCaretPosition(Position::LastPositionInNode(sample))); 1308 MostBackwardCaretPosition(Position::LastPositionInNode(sample)));
1309 EXPECT_EQ(Position(remaining, 2), 1309 EXPECT_EQ(Position(remaining, 2),
1310 MostBackwardCaretPosition(Position::AfterNode(sample))); 1310 MostBackwardCaretPosition(Position::AfterNode(*sample)));
1311 } 1311 }
1312 1312
1313 TEST_F(VisibleUnitsTest, mostForwardCaretPositionAfterAnchor) { 1313 TEST_F(VisibleUnitsTest, mostForwardCaretPositionAfterAnchor) {
1314 const char* body_content = "<p id='host'><b id='one'>1</b></p>"; 1314 const char* body_content = "<p id='host'><b id='one'>1</b></p>";
1315 const char* shadow_content = 1315 const char* shadow_content =
1316 "<b id='two'>22</b><content select=#one></content><b id='three'>333</b>"; 1316 "<b id='two'>22</b><content select=#one></content><b id='three'>333</b>";
1317 SetBodyContent(body_content); 1317 SetBodyContent(body_content);
1318 ShadowRoot* shadow_root = SetShadowContent(shadow_content, "host"); 1318 ShadowRoot* shadow_root = SetShadowContent(shadow_content, "host");
1319 UpdateAllLifecyclePhases(); 1319 UpdateAllLifecyclePhases();
1320 1320
1321 Element* host = GetDocument().getElementById("host"); 1321 Element* host = GetDocument().getElementById("host");
1322 Element* one = GetDocument().getElementById("one"); 1322 Element* one = GetDocument().getElementById("one");
1323 Element* three = shadow_root->getElementById("three"); 1323 Element* three = shadow_root->getElementById("three");
1324 1324
1325 EXPECT_EQ(Position(one->firstChild(), 1), 1325 EXPECT_EQ(Position(one->firstChild(), 1),
1326 MostBackwardCaretPosition(Position::AfterNode(host))); 1326 MostBackwardCaretPosition(Position::AfterNode(*host)));
1327 EXPECT_EQ(PositionInFlatTree(three->firstChild(), 3), 1327 EXPECT_EQ(PositionInFlatTree(three->firstChild(), 3),
1328 MostBackwardCaretPosition(PositionInFlatTree::AfterNode(host))); 1328 MostBackwardCaretPosition(PositionInFlatTree::AfterNode(*host)));
1329 } 1329 }
1330 1330
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
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
1514 PreviousPositionOf(CreateVisiblePosition(position)).DeepEquivalent()); 1514 PreviousPositionOf(CreateVisiblePosition(position)).DeepEquivalent());
1515 } 1515 }
1516 1516
1517 TEST_F(VisibleUnitsTest, rendersInDifferentPositionAfterAnchor) { 1517 TEST_F(VisibleUnitsTest, rendersInDifferentPositionAfterAnchor) {
1518 const char* body_content = "<p id='sample'>00</p>"; 1518 const char* body_content = "<p id='sample'>00</p>";
1519 SetBodyContent(body_content); 1519 SetBodyContent(body_content);
1520 Element* sample = GetDocument().getElementById("sample"); 1520 Element* sample = GetDocument().getElementById("sample");
1521 1521
1522 EXPECT_FALSE(RendersInDifferentPosition(Position(), Position())); 1522 EXPECT_FALSE(RendersInDifferentPosition(Position(), Position()));
1523 EXPECT_FALSE( 1523 EXPECT_FALSE(
1524 RendersInDifferentPosition(Position(), Position::AfterNode(sample))) 1524 RendersInDifferentPosition(Position(), Position::AfterNode(*sample)))
1525 << "if one of position is null, the reuslt is false."; 1525 << "if one of position is null, the reuslt is false.";
1526 EXPECT_FALSE(RendersInDifferentPosition(Position::AfterNode(sample), 1526 EXPECT_FALSE(RendersInDifferentPosition(Position::AfterNode(*sample),
1527 Position(sample, 1))); 1527 Position(sample, 1)));
1528 EXPECT_FALSE(RendersInDifferentPosition(Position::LastPositionInNode(sample), 1528 EXPECT_FALSE(RendersInDifferentPosition(Position::LastPositionInNode(sample),
1529 Position(sample, 1))); 1529 Position(sample, 1)));
1530 } 1530 }
1531 1531
1532 TEST_F(VisibleUnitsTest, rendersInDifferentPositionAfterAnchorWithHidden) { 1532 TEST_F(VisibleUnitsTest, rendersInDifferentPositionAfterAnchorWithHidden) {
1533 const char* body_content = 1533 const char* body_content =
1534 "<p><span id=one>11</span><span id=two style='display:none'> " 1534 "<p><span id=one>11</span><span id=two style='display:none'> "
1535 "</span></p>"; 1535 "</span></p>";
1536 SetBodyContent(body_content); 1536 SetBodyContent(body_content);
(...skipping 22 matching lines...) Expand all
1559 1559
1560 TEST_F(VisibleUnitsTest, renderedOffset) { 1560 TEST_F(VisibleUnitsTest, renderedOffset) {
1561 const char* body_content = 1561 const char* body_content =
1562 "<div contenteditable><span id='sample1'>1</span><span " 1562 "<div contenteditable><span id='sample1'>1</span><span "
1563 "id='sample2'>22</span></div>"; 1563 "id='sample2'>22</span></div>";
1564 SetBodyContent(body_content); 1564 SetBodyContent(body_content);
1565 Element* sample1 = GetDocument().getElementById("sample1"); 1565 Element* sample1 = GetDocument().getElementById("sample1");
1566 Element* sample2 = GetDocument().getElementById("sample2"); 1566 Element* sample2 = GetDocument().getElementById("sample2");
1567 1567
1568 EXPECT_FALSE( 1568 EXPECT_FALSE(
1569 RendersInDifferentPosition(Position::AfterNode(sample1->firstChild()), 1569 RendersInDifferentPosition(Position::AfterNode(*sample1->firstChild()),
1570 Position(sample2->firstChild(), 0))); 1570 Position(sample2->firstChild(), 0)));
1571 EXPECT_FALSE(RendersInDifferentPosition( 1571 EXPECT_FALSE(RendersInDifferentPosition(
1572 Position::LastPositionInNode(sample1->firstChild()), 1572 Position::LastPositionInNode(sample1->firstChild()),
1573 Position(sample2->firstChild(), 0))); 1573 Position(sample2->firstChild(), 0)));
1574 } 1574 }
1575 1575
1576 TEST_F(VisibleUnitsTest, startOfDocument) { 1576 TEST_F(VisibleUnitsTest, startOfDocument) {
1577 const char* body_content = "<a id=host><b id=one>1</b><b id=two>22</b></a>"; 1577 const char* body_content = "<a id=host><b id=one>1</b><b id=two>22</b></a>";
1578 const char* shadow_content = 1578 const char* shadow_content =
1579 "<p><content select=#two></content></p><p><content " 1579 "<p><content select=#two></content></p><p><content "
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698