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

Side by Side Diff: Source/core/editing/VisibleSelectionTest.cpp

Issue 1213483003: Get rid of redundant parameter PositionIsOffsetInAnchor from PositionAlgorithm constructor (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 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
« no previous file with comments | « Source/core/editing/TypingCommand.cpp ('k') | Source/core/editing/VisibleUnits.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "config.h" 5 #include "config.h"
6 #include "core/editing/VisibleSelection.h" 6 #include "core/editing/VisibleSelection.h"
7 7
8 #include "core/dom/Range.h" 8 #include "core/dom/Range.h"
9 #include "core/editing/EditingTestBase.h" 9 #include "core/editing/EditingTestBase.h"
10 10
11 #define LOREM_IPSUM \ 11 #define LOREM_IPSUM \
12 "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod te mpor " \ 12 "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod te mpor " \
13 "incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud " \ 13 "incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud " \
14 "exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure " \ 14 "exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure " \
15 "dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat null a pariatur." \ 15 "dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat null a pariatur." \
16 "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia d eserunt " \ 16 "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia d eserunt " \
17 "mollit anim id est laborum." 17 "mollit anim id est laborum."
18 18
19 namespace blink { 19 namespace blink {
20 20
21 class VisibleSelectionTest : public EditingTestBase { 21 class VisibleSelectionTest : public EditingTestBase {
22 protected: 22 protected:
23 // Helper function to set the VisibleSelection base/extent. 23 // Helper function to set the VisibleSelection base/extent.
24 void setSelection(VisibleSelection& selection, int base) { setSelection(sele ction, base, base); } 24 void setSelection(VisibleSelection& selection, int base) { setSelection(sele ction, base, base); }
25 25
26 // Helper function to set the VisibleSelection base/extent. 26 // Helper function to set the VisibleSelection base/extent.
27 void setSelection(VisibleSelection& selection, int base, int extend) 27 void setSelection(VisibleSelection& selection, int base, int extend)
28 { 28 {
29 Node* node = document().body()->firstChild(); 29 Node* node = document().body()->firstChild();
30 selection.setBase(Position(node, base, Position::PositionIsOffsetInAncho r)); 30 selection.setBase(Position(node, base));
31 selection.setExtent(Position(node, extend, Position::PositionIsOffsetInA nchor)); 31 selection.setExtent(Position(node, extend));
32 } 32 }
33 33
34 static bool equalPositions(const Position&, const PositionInComposedTree&); 34 static bool equalPositions(const Position&, const PositionInComposedTree&);
35 static void testComposedTreePositionsToEqualToDOMTreePositions(const Visible Selection&); 35 static void testComposedTreePositionsToEqualToDOMTreePositions(const Visible Selection&);
36 }; 36 };
37 37
38 bool VisibleSelectionTest::equalPositions(const Position& positionInDOMTree, con st PositionInComposedTree& positionInComposedTree) 38 bool VisibleSelectionTest::equalPositions(const Position& positionInDOMTree, con st PositionInComposedTree& positionInComposedTree)
39 { 39 {
40 // Since DOM tree positions can't be map to composed tree version, e.g. 40 // Since DOM tree positions can't be map to composed tree version, e.g.
41 // shadow root, not distributed node, we map a position in composed tree 41 // shadow root, not distributed node, we map a position in composed tree
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = setShadowContent(shadowContent); 76 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = setShadowContent(shadowContent);
77 77
78 RefPtrWillBeRawPtr<Element> body = document().body(); 78 RefPtrWillBeRawPtr<Element> body = document().body();
79 RefPtrWillBeRawPtr<Element> host = body->querySelector("#host", ASSERT_NO_EX CEPTION); 79 RefPtrWillBeRawPtr<Element> host = body->querySelector("#host", ASSERT_NO_EX CEPTION);
80 RefPtrWillBeRawPtr<Element> one = body->querySelector("#one", ASSERT_NO_EXCE PTION); 80 RefPtrWillBeRawPtr<Element> one = body->querySelector("#one", ASSERT_NO_EXCE PTION);
81 RefPtrWillBeRawPtr<Element> six = shadowRoot->querySelector("#s6", ASSERT_NO _EXCEPTION); 81 RefPtrWillBeRawPtr<Element> six = shadowRoot->querySelector("#s6", ASSERT_NO _EXCEPTION);
82 82
83 VisibleSelection selection(Position::firstPositionInNode(one.get()), Positio n::lastPositionInNode(shadowRoot.get())); 83 VisibleSelection selection(Position::firstPositionInNode(one.get()), Positio n::lastPositionInNode(shadowRoot.get()));
84 84
85 EXPECT_EQ(Position(host.get(), Position::PositionIsBeforeAnchor), selection. start()); 85 EXPECT_EQ(Position(host.get(), Position::PositionIsBeforeAnchor), selection. start());
86 EXPECT_EQ(Position(one->firstChild(), 0, Position::PositionIsOffsetInAnchor) , selection.end()); 86 EXPECT_EQ(Position(one->firstChild(), 0), selection.end());
87 EXPECT_EQ(PositionInComposedTree(one->firstChild(), 0, PositionInComposedTre e::PositionIsOffsetInAnchor), selection.startInComposedTree()); 87 EXPECT_EQ(PositionInComposedTree(one->firstChild(), 0), selection.startInCom posedTree());
88 EXPECT_EQ(PositionInComposedTree(six->firstChild(), 2, PositionInComposedTre e::PositionIsOffsetInAnchor), selection.endInComposedTree()); 88 EXPECT_EQ(PositionInComposedTree(six->firstChild(), 2), selection.endInCompo sedTree());
89 } 89 }
90 90
91 TEST_F(VisibleSelectionTest, ShadowDistributedNodes) 91 TEST_F(VisibleSelectionTest, ShadowDistributedNodes)
92 { 92 {
93 const char* bodyContent = "<p id='host'>00<b id='one'>11</b><b id='two'>22</ b>33</p>"; 93 const char* bodyContent = "<p id='host'>00<b id='one'>11</b><b id='two'>22</ b>33</p>";
94 const char* shadowContent = "<a><span id='s4'>44</span><content select=#two> </content><span id='s5'>55</span><content select=#one></content><span id='s6'>66 </span></a>"; 94 const char* shadowContent = "<a><span id='s4'>44</span><content select=#two> </content><span id='s5'>55</span><content select=#one></content><span id='s6'>66 </span></a>";
95 setBodyContent(bodyContent); 95 setBodyContent(bodyContent);
96 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = setShadowContent(shadowContent); 96 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = setShadowContent(shadowContent);
97 97
98 RefPtrWillBeRawPtr<Element> body = document().body(); 98 RefPtrWillBeRawPtr<Element> body = document().body();
99 RefPtrWillBeRawPtr<Element> one = body->querySelector("#one", ASSERT_NO_EXCE PTION); 99 RefPtrWillBeRawPtr<Element> one = body->querySelector("#one", ASSERT_NO_EXCE PTION);
100 RefPtrWillBeRawPtr<Element> two = body->querySelector("#two", ASSERT_NO_EXCE PTION); 100 RefPtrWillBeRawPtr<Element> two = body->querySelector("#two", ASSERT_NO_EXCE PTION);
101 RefPtrWillBeRawPtr<Element> five = shadowRoot->querySelector("#s5", ASSERT_N O_EXCEPTION); 101 RefPtrWillBeRawPtr<Element> five = shadowRoot->querySelector("#s5", ASSERT_N O_EXCEPTION);
102 102
103 VisibleSelection selection(Position::firstPositionInNode(one.get()), Positio n::lastPositionInNode(two.get())); 103 VisibleSelection selection(Position::firstPositionInNode(one.get()), Positio n::lastPositionInNode(two.get()));
104 104
105 EXPECT_EQ(Position(one->firstChild(), 0, Position::PositionIsOffsetInAnchor) , selection.start()); 105 EXPECT_EQ(Position(one->firstChild(), 0), selection.start());
106 EXPECT_EQ(Position(two->firstChild(), 2, Position::PositionIsOffsetInAnchor) , selection.end()); 106 EXPECT_EQ(Position(two->firstChild(), 2), selection.end());
107 EXPECT_EQ(PositionInComposedTree(five->firstChild(), 0, PositionInComposedTr ee::PositionIsOffsetInAnchor), selection.startInComposedTree()); 107 EXPECT_EQ(PositionInComposedTree(five->firstChild(), 0), selection.startInCo mposedTree());
108 EXPECT_EQ(PositionInComposedTree(five->firstChild(), 2, PositionInComposedTr ee::PositionIsOffsetInAnchor), selection.endInComposedTree()); 108 EXPECT_EQ(PositionInComposedTree(five->firstChild(), 2), selection.endInComp osedTree());
109 } 109 }
110 110
111 TEST_F(VisibleSelectionTest, ShadowNested) 111 TEST_F(VisibleSelectionTest, ShadowNested)
112 { 112 {
113 const char* bodyContent = "<p id='host'>00<b id='one'>11</b><b id='two'>22</ b>33</p>"; 113 const char* bodyContent = "<p id='host'>00<b id='one'>11</b><b id='two'>22</ b>33</p>";
114 const char* shadowContent = "<a><span id='s4'>44</span><content select=#two> </content><span id='s5'>55</span><content select=#one></content><span id='s6'>66 </span></a>"; 114 const char* shadowContent = "<a><span id='s4'>44</span><content select=#two> </content><span id='s5'>55</span><content select=#one></content><span id='s6'>66 </span></a>";
115 const char* shadowContent2 = "<span id='s7'>77</span><content></content><spa n id='s8'>88</span>"; 115 const char* shadowContent2 = "<span id='s7'>77</span><content></content><spa n id='s8'>88</span>";
116 setBodyContent(bodyContent); 116 setBodyContent(bodyContent);
117 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = setShadowContent(shadowContent); 117 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot = setShadowContent(shadowContent);
118 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot2 = createShadowRootForElementWithI DAndSetInnerHTML(*shadowRoot, "s5", shadowContent2); 118 RefPtrWillBeRawPtr<ShadowRoot> shadowRoot2 = createShadowRootForElementWithI DAndSetInnerHTML(*shadowRoot, "s5", shadowContent2);
119 119
120 RefPtrWillBeRawPtr<Element> body = document().body(); 120 RefPtrWillBeRawPtr<Element> body = document().body();
121 RefPtrWillBeRawPtr<Element> host = body->querySelector("#host", ASSERT_NO_EX CEPTION); 121 RefPtrWillBeRawPtr<Element> host = body->querySelector("#host", ASSERT_NO_EX CEPTION);
122 RefPtrWillBeRawPtr<Element> one = body->querySelector("#one", ASSERT_NO_EXCE PTION); 122 RefPtrWillBeRawPtr<Element> one = body->querySelector("#one", ASSERT_NO_EXCE PTION);
123 RefPtrWillBeRawPtr<Element> eight = shadowRoot2->querySelector("#s8", ASSERT _NO_EXCEPTION); 123 RefPtrWillBeRawPtr<Element> eight = shadowRoot2->querySelector("#s8", ASSERT _NO_EXCEPTION);
124 124
125 VisibleSelection selection(Position::firstPositionInNode(one.get()), Positio n::lastPositionInNode(shadowRoot2.get())); 125 VisibleSelection selection(Position::firstPositionInNode(one.get()), Positio n::lastPositionInNode(shadowRoot2.get()));
126 126
127 EXPECT_EQ(Position(host.get(), Position::PositionIsBeforeAnchor), selection. start()); 127 EXPECT_EQ(Position(host.get(), Position::PositionIsBeforeAnchor), selection. start());
128 EXPECT_EQ(Position(one->firstChild(), 0, Position::PositionIsOffsetInAnchor) , selection.end()); 128 EXPECT_EQ(Position(one->firstChild(), 0), selection.end());
129 EXPECT_EQ(PositionInComposedTree(eight->firstChild(), 2, PositionInComposedT ree::PositionIsOffsetInAnchor), selection.startInComposedTree()); 129 EXPECT_EQ(PositionInComposedTree(eight->firstChild(), 2), selection.startInC omposedTree());
130 EXPECT_EQ(PositionInComposedTree(one->firstChild(), 0, PositionInComposedTre e::PositionIsOffsetInAnchor), selection.endInComposedTree()); 130 EXPECT_EQ(PositionInComposedTree(one->firstChild(), 0), selection.endInCompo sedTree());
131 } 131 }
132 132
133 TEST_F(VisibleSelectionTest, WordGranularity) 133 TEST_F(VisibleSelectionTest, WordGranularity)
134 { 134 {
135 setBodyContent(LOREM_IPSUM); 135 setBodyContent(LOREM_IPSUM);
136 136
137 VisibleSelection selection; 137 VisibleSelection selection;
138 138
139 // Beginning of a word. 139 // Beginning of a word.
140 { 140 {
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 221
222 RefPtrWillBeRawPtr<Range> range = selection.firstRange(); 222 RefPtrWillBeRawPtr<Range> range = selection.firstRange();
223 EXPECT_EQ(0, range->startOffset()); 223 EXPECT_EQ(0, range->startOffset());
224 EXPECT_EQ(11, range->endOffset()); 224 EXPECT_EQ(11, range->endOffset());
225 EXPECT_EQ("Lorem ipsum", range->text()); 225 EXPECT_EQ("Lorem ipsum", range->text());
226 testComposedTreePositionsToEqualToDOMTreePositions(selection); 226 testComposedTreePositionsToEqualToDOMTreePositions(selection);
227 } 227 }
228 } 228 }
229 229
230 } // namespace blink 230 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/editing/TypingCommand.cpp ('k') | Source/core/editing/VisibleUnits.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698