| Index: third_party/WebKit/Source/core/editing/iterators/TextIteratorTest.cpp
|
| diff --git a/third_party/WebKit/Source/core/editing/iterators/TextIteratorTest.cpp b/third_party/WebKit/Source/core/editing/iterators/TextIteratorTest.cpp
|
| index 3134ba15cf30b9e2211bf171e9a6c0de4697f363..0587b2dbf673f1a95299a32a01f4fe995805d344 100644
|
| --- a/third_party/WebKit/Source/core/editing/iterators/TextIteratorTest.cpp
|
| +++ b/third_party/WebKit/Source/core/editing/iterators/TextIteratorTest.cpp
|
| @@ -40,9 +40,9 @@ struct DOMTree : NodeTraversal {
|
| using TextIteratorType = TextIterator;
|
| };
|
|
|
| -struct ComposedTree : ComposedTreeTraversal {
|
| - using PositionType = PositionInComposedTree;
|
| - using TextIteratorType = TextIteratorInComposedTree;
|
| +struct FlatTree : FlatTreeTraversal {
|
| + using PositionType = PositionInFlatTree;
|
| + using TextIteratorType = TextIteratorInFlatTree;
|
| };
|
|
|
| class TextIteratorTest : public EditingTestBase {
|
| @@ -115,7 +115,7 @@ TEST_F(TextIteratorTest, BasicIteration)
|
| static const char* input = "<p>Hello, \ntext</p><p>iterator.</p>";
|
| setBodyContent(input);
|
| EXPECT_EQ("[Hello, ][text][\n][\n][iterator.]", iterate<DOMTree>());
|
| - EXPECT_EQ("[Hello, ][text][\n][\n][iterator.]", iterate<ComposedTree>());
|
| + EXPECT_EQ("[Hello, ][text][\n][\n][iterator.]", iterate<FlatTree>());
|
| }
|
|
|
| TEST_F(TextIteratorTest, IgnoreAltTextInTextControls)
|
| @@ -123,7 +123,7 @@ TEST_F(TextIteratorTest, IgnoreAltTextInTextControls)
|
| static const char* input = "<p>Hello <input type='text' value='value'>!</p>";
|
| setBodyContent(input);
|
| EXPECT_EQ("[Hello ][][!]", iterate<DOMTree>(TextIteratorEmitsImageAltText));
|
| - EXPECT_EQ("[Hello ][][\n][value][\n][!]", iterate<ComposedTree>(TextIteratorEmitsImageAltText));
|
| + EXPECT_EQ("[Hello ][][\n][value][\n][!]", iterate<FlatTree>(TextIteratorEmitsImageAltText));
|
| }
|
|
|
| TEST_F(TextIteratorTest, DisplayAltTextInImageControls)
|
| @@ -131,7 +131,7 @@ TEST_F(TextIteratorTest, DisplayAltTextInImageControls)
|
| static const char* input = "<p>Hello <input type='image' alt='alt'>!</p>";
|
| setBodyContent(input);
|
| EXPECT_EQ("[Hello ][alt][!]", iterate<DOMTree>(TextIteratorEmitsImageAltText));
|
| - EXPECT_EQ("[Hello ][alt][!]", iterate<ComposedTree>(TextIteratorEmitsImageAltText));
|
| + EXPECT_EQ("[Hello ][alt][!]", iterate<FlatTree>(TextIteratorEmitsImageAltText));
|
| }
|
|
|
| TEST_F(TextIteratorTest, NotEnteringTextControls)
|
| @@ -139,7 +139,7 @@ TEST_F(TextIteratorTest, NotEnteringTextControls)
|
| static const char* input = "<p>Hello <input type='text' value='input'>!</p>";
|
| setBodyContent(input);
|
| EXPECT_EQ("[Hello ][][!]", iterate<DOMTree>());
|
| - EXPECT_EQ("[Hello ][][\n][input][\n][!]", iterate<ComposedTree>());
|
| + EXPECT_EQ("[Hello ][][\n][input][\n][!]", iterate<FlatTree>());
|
| }
|
|
|
| TEST_F(TextIteratorTest, EnteringTextControlsWithOption)
|
| @@ -147,7 +147,7 @@ TEST_F(TextIteratorTest, EnteringTextControlsWithOption)
|
| static const char* input = "<p>Hello <input type='text' value='input'>!</p>";
|
| setBodyContent(input);
|
| EXPECT_EQ("[Hello ][\n][input][!]", iterate<DOMTree>(TextIteratorEntersTextControls));
|
| - EXPECT_EQ("[Hello ][][\n][input][\n][!]", iterate<ComposedTree>(TextIteratorEntersTextControls));
|
| + EXPECT_EQ("[Hello ][][\n][input][\n][!]", iterate<FlatTree>(TextIteratorEntersTextControls));
|
| }
|
|
|
| TEST_F(TextIteratorTest, EnteringTextControlsWithOptionComplex)
|
| @@ -155,7 +155,7 @@ TEST_F(TextIteratorTest, EnteringTextControlsWithOptionComplex)
|
| static const char* input = "<input type='text' value='Beginning of range'><div><div><input type='text' value='Under DOM nodes'></div></div><input type='text' value='End of range'>";
|
| setBodyContent(input);
|
| EXPECT_EQ("[\n][Beginning of range][\n][Under DOM nodes][\n][End of range]", iterate<DOMTree>(TextIteratorEntersTextControls));
|
| - EXPECT_EQ("[][\n][Beginning of range][\n][][\n][Under DOM nodes][\n][][\n][End of range]", iterate<ComposedTree>(TextIteratorEntersTextControls));
|
| + EXPECT_EQ("[][\n][Beginning of range][\n][][\n][Under DOM nodes][\n][][\n][End of range]", iterate<FlatTree>(TextIteratorEntersTextControls));
|
| }
|
|
|
| TEST_F(TextIteratorTest, NotEnteringTextControlHostingShadowTreeEvenWithOption)
|
| @@ -168,7 +168,7 @@ TEST_F(TextIteratorTest, NotEnteringTextControlHostingShadowTreeEvenWithOption)
|
| createShadowRootForElementWithIDAndSetInnerHTML(document(), "input", shadowContent);
|
| // FIXME: Why is an empty string emitted here?
|
| EXPECT_EQ("[Hello, ][][ iterator.]", iterate<DOMTree>());
|
| - EXPECT_EQ("[Hello, ][][shadow][ iterator.]", iterate<ComposedTree>());
|
| + EXPECT_EQ("[Hello, ][][shadow][ iterator.]", iterate<FlatTree>());
|
| }
|
|
|
| TEST_F(TextIteratorTest, NotEnteringShadowTree)
|
| @@ -179,7 +179,7 @@ TEST_F(TextIteratorTest, NotEnteringShadowTree)
|
| createShadowRootForElementWithIDAndSetInnerHTML(document(), "host", shadowContent);
|
| // TextIterator doesn't emit "text" since its layoutObject is not created. The shadow tree is ignored.
|
| EXPECT_EQ("[Hello, ][ iterator.]", iterate<DOMTree>());
|
| - EXPECT_EQ("[Hello, ][shadow][ iterator.]", iterate<ComposedTree>());
|
| + EXPECT_EQ("[Hello, ][shadow][ iterator.]", iterate<FlatTree>());
|
| }
|
|
|
| TEST_F(TextIteratorTest, NotEnteringShadowTreeWithMultipleShadowTrees)
|
| @@ -191,7 +191,7 @@ TEST_F(TextIteratorTest, NotEnteringShadowTreeWithMultipleShadowTrees)
|
| createShadowRootForElementWithIDAndSetInnerHTML(document(), "host", shadowContent1);
|
| createShadowRootForElementWithIDAndSetInnerHTML(document(), "host", shadowContent2);
|
| EXPECT_EQ("[Hello, ][ iterator.]", iterate<DOMTree>());
|
| - EXPECT_EQ("[Hello, ][second shadow][ iterator.]", iterate<ComposedTree>());
|
| + EXPECT_EQ("[Hello, ][second shadow][ iterator.]", iterate<FlatTree>());
|
| }
|
|
|
| TEST_F(TextIteratorTest, NotEnteringShadowTreeWithNestedShadowTrees)
|
| @@ -203,7 +203,7 @@ TEST_F(TextIteratorTest, NotEnteringShadowTreeWithNestedShadowTrees)
|
| RefPtrWillBeRawPtr<ShadowRoot> shadowRoot1 = createShadowRootForElementWithIDAndSetInnerHTML(document(), "host-in-document", shadowContent1);
|
| createShadowRootForElementWithIDAndSetInnerHTML(*shadowRoot1, "host-in-shadow", shadowContent2);
|
| EXPECT_EQ("[Hello, ][ iterator.]", iterate<DOMTree>());
|
| - EXPECT_EQ("[Hello, ][first ][second shadow][ iterator.]", iterate<ComposedTree>());
|
| + EXPECT_EQ("[Hello, ][first ][second shadow][ iterator.]", iterate<FlatTree>());
|
| }
|
|
|
| TEST_F(TextIteratorTest, NotEnteringShadowTreeWithContentInsertionPoint)
|
| @@ -214,7 +214,7 @@ TEST_F(TextIteratorTest, NotEnteringShadowTreeWithContentInsertionPoint)
|
| createShadowRootForElementWithIDAndSetInnerHTML(document(), "host", shadowContent);
|
| // In this case a layoutObject for "text" is created, so it shows up here.
|
| EXPECT_EQ("[Hello, ][text][ iterator.]", iterate<DOMTree>());
|
| - EXPECT_EQ("[Hello, ][shadow ][text][ iterator.]", iterate<ComposedTree>());
|
| + EXPECT_EQ("[Hello, ][shadow ][text][ iterator.]", iterate<FlatTree>());
|
| }
|
|
|
| TEST_F(TextIteratorTest, EnteringShadowTreeWithOption)
|
| @@ -225,7 +225,7 @@ TEST_F(TextIteratorTest, EnteringShadowTreeWithOption)
|
| createShadowRootForElementWithIDAndSetInnerHTML(document(), "host", shadowContent);
|
| // TextIterator emits "shadow" since TextIteratorEntersOpenShadowRoots is specified.
|
| EXPECT_EQ("[Hello, ][shadow][ iterator.]", iterate<DOMTree>(TextIteratorEntersOpenShadowRoots));
|
| - EXPECT_EQ("[Hello, ][shadow][ iterator.]", iterate<ComposedTree>(TextIteratorEntersOpenShadowRoots));
|
| + EXPECT_EQ("[Hello, ][shadow][ iterator.]", iterate<FlatTree>(TextIteratorEntersOpenShadowRoots));
|
| }
|
|
|
| TEST_F(TextIteratorTest, EnteringShadowTreeWithMultipleShadowTreesWithOption)
|
| @@ -238,7 +238,7 @@ TEST_F(TextIteratorTest, EnteringShadowTreeWithMultipleShadowTreesWithOption)
|
| createShadowRootForElementWithIDAndSetInnerHTML(document(), "host", shadowContent2);
|
| // The first isn't emitted because a layoutObject for the first is not created.
|
| EXPECT_EQ("[Hello, ][second shadow][ iterator.]", iterate<DOMTree>(TextIteratorEntersOpenShadowRoots));
|
| - EXPECT_EQ("[Hello, ][second shadow][ iterator.]", iterate<ComposedTree>(TextIteratorEntersOpenShadowRoots));
|
| + EXPECT_EQ("[Hello, ][second shadow][ iterator.]", iterate<FlatTree>(TextIteratorEntersOpenShadowRoots));
|
| }
|
|
|
| TEST_F(TextIteratorTest, EnteringShadowTreeWithNestedShadowTreesWithOption)
|
| @@ -250,7 +250,7 @@ TEST_F(TextIteratorTest, EnteringShadowTreeWithNestedShadowTreesWithOption)
|
| RefPtrWillBeRawPtr<ShadowRoot> shadowRoot1 = createShadowRootForElementWithIDAndSetInnerHTML(document(), "host-in-document", shadowContent1);
|
| createShadowRootForElementWithIDAndSetInnerHTML(*shadowRoot1, "host-in-shadow", shadowContent2);
|
| EXPECT_EQ("[Hello, ][first ][second shadow][ iterator.]", iterate<DOMTree>(TextIteratorEntersOpenShadowRoots));
|
| - EXPECT_EQ("[Hello, ][first ][second shadow][ iterator.]", iterate<ComposedTree>(TextIteratorEntersOpenShadowRoots));
|
| + EXPECT_EQ("[Hello, ][first ][second shadow][ iterator.]", iterate<FlatTree>(TextIteratorEntersOpenShadowRoots));
|
| }
|
|
|
| TEST_F(TextIteratorTest, EnteringShadowTreeWithContentInsertionPointWithOption)
|
| @@ -263,7 +263,7 @@ TEST_F(TextIteratorTest, EnteringShadowTreeWithContentInsertionPointWithOption)
|
| setBodyContent(bodyContent);
|
| createShadowRootForElementWithIDAndSetInnerHTML(document(), "host", shadowContent);
|
| EXPECT_EQ("[Hello, ][ shadow][text][ iterator.]", iterate<DOMTree>(TextIteratorEntersOpenShadowRoots));
|
| - EXPECT_EQ("[Hello, ][text][ shadow][ iterator.]", iterate<ComposedTree>(TextIteratorEntersOpenShadowRoots));
|
| + EXPECT_EQ("[Hello, ][text][ shadow][ iterator.]", iterate<FlatTree>(TextIteratorEntersOpenShadowRoots));
|
| }
|
|
|
| TEST_F(TextIteratorTest, StartingAtNodeInShadowRoot)
|
| @@ -278,9 +278,9 @@ TEST_F(TextIteratorTest, StartingAtNodeInShadowRoot)
|
| Position end(outerDiv, PositionAnchorType::AfterChildren);
|
| EXPECT_EQ("[ shadow][text][ iterator.]", iteratePartial<DOMTree>(start, end, TextIteratorEntersOpenShadowRoots));
|
|
|
| - PositionInComposedTree startInComposedTree(spanInShadow, PositionAnchorType::BeforeChildren);
|
| - PositionInComposedTree endInComposedTree(outerDiv, PositionAnchorType::AfterChildren);
|
| - EXPECT_EQ("[text][ shadow][ iterator.]", iteratePartial<ComposedTree>(startInComposedTree, endInComposedTree, TextIteratorEntersOpenShadowRoots));
|
| + PositionInFlatTree startInFlatTree(spanInShadow, PositionAnchorType::BeforeChildren);
|
| + PositionInFlatTree endInFlatTree(outerDiv, PositionAnchorType::AfterChildren);
|
| + EXPECT_EQ("[text][ shadow][ iterator.]", iteratePartial<FlatTree>(startInFlatTree, endInFlatTree, TextIteratorEntersOpenShadowRoots));
|
| }
|
|
|
| TEST_F(TextIteratorTest, FinishingAtNodeInShadowRoot)
|
| @@ -295,9 +295,9 @@ TEST_F(TextIteratorTest, FinishingAtNodeInShadowRoot)
|
| Position end(spanInShadow, PositionAnchorType::AfterChildren);
|
| EXPECT_EQ("[Hello, ][ shadow]", iteratePartial<DOMTree>(start, end, TextIteratorEntersOpenShadowRoots));
|
|
|
| - PositionInComposedTree startInComposedTree(outerDiv, PositionAnchorType::BeforeChildren);
|
| - PositionInComposedTree endInComposedTree(spanInShadow, PositionAnchorType::AfterChildren);
|
| - EXPECT_EQ("[Hello, ][text][ shadow]", iteratePartial<ComposedTree>(startInComposedTree, endInComposedTree, TextIteratorEntersOpenShadowRoots));
|
| + PositionInFlatTree startInFlatTree(outerDiv, PositionAnchorType::BeforeChildren);
|
| + PositionInFlatTree endInFlatTree(spanInShadow, PositionAnchorType::AfterChildren);
|
| + EXPECT_EQ("[Hello, ][text][ shadow]", iteratePartial<FlatTree>(startInFlatTree, endInFlatTree, TextIteratorEntersOpenShadowRoots));
|
| }
|
|
|
| TEST_F(TextIteratorTest, FullyClipsContents)
|
| @@ -308,7 +308,7 @@ TEST_F(TextIteratorTest, FullyClipsContents)
|
| "</div>";
|
| setBodyContent(bodyContent);
|
| EXPECT_EQ("", iterate<DOMTree>());
|
| - EXPECT_EQ("", iterate<ComposedTree>());
|
| + EXPECT_EQ("", iterate<FlatTree>());
|
| }
|
|
|
| TEST_F(TextIteratorTest, IgnoresContainerClip)
|
| @@ -322,7 +322,7 @@ TEST_F(TextIteratorTest, IgnoresContainerClip)
|
| "</div>";
|
| setBodyContent(bodyContent);
|
| EXPECT_EQ("[but I am!]", iterate<DOMTree>());
|
| - EXPECT_EQ("[but I am!]", iterate<ComposedTree>());
|
| + EXPECT_EQ("[but I am!]", iterate<FlatTree>());
|
| }
|
|
|
| TEST_F(TextIteratorTest, FullyClippedContentsDistributed)
|
| @@ -339,7 +339,7 @@ TEST_F(TextIteratorTest, FullyClippedContentsDistributed)
|
| createShadowRootForElementWithIDAndSetInnerHTML(document(), "host", shadowContent);
|
| // FIXME: The text below is actually invisible but TextIterator currently thinks it's visible.
|
| EXPECT_EQ("[\n][Am I visible?]", iterate<DOMTree>(TextIteratorEntersOpenShadowRoots));
|
| - EXPECT_EQ("", iterate<ComposedTree>(TextIteratorEntersOpenShadowRoots));
|
| + EXPECT_EQ("", iterate<FlatTree>(TextIteratorEntersOpenShadowRoots));
|
| }
|
|
|
| TEST_F(TextIteratorTest, IgnoresContainersClipDistributed)
|
| @@ -357,7 +357,7 @@ TEST_F(TextIteratorTest, IgnoresContainersClipDistributed)
|
| // FIXME: The text below is actually visible but TextIterator currently thinks it's invisible.
|
| // [\n][Nobody can find me!]
|
| EXPECT_EQ("", iterate<DOMTree>(TextIteratorEntersOpenShadowRoots));
|
| - EXPECT_EQ("[Nobody can find me!]", iterate<ComposedTree>(TextIteratorEntersOpenShadowRoots));
|
| + EXPECT_EQ("[Nobody can find me!]", iterate<FlatTree>(TextIteratorEntersOpenShadowRoots));
|
| }
|
|
|
| TEST_F(TextIteratorTest, EmitsReplacementCharForInput)
|
| @@ -370,7 +370,7 @@ TEST_F(TextIteratorTest, EmitsReplacementCharForInput)
|
| "</div>";
|
| setBodyContent(bodyContent);
|
| EXPECT_EQ("[Before][\xEF\xBF\xBC][After]", iterate<DOMTree>(TextIteratorEmitsObjectReplacementCharacter));
|
| - EXPECT_EQ("[Before][\xEF\xBF\xBC][After]", iterate<ComposedTree>(TextIteratorEmitsObjectReplacementCharacter));
|
| + EXPECT_EQ("[Before][\xEF\xBF\xBC][After]", iterate<FlatTree>(TextIteratorEmitsObjectReplacementCharacter));
|
| }
|
|
|
| TEST_F(TextIteratorTest, RangeLengthWithReplacedElements)
|
| @@ -391,7 +391,7 @@ TEST_F(TextIteratorTest, WhitespaceCollapseForReplacedElements)
|
| static const char* bodyContent = "<span>Some text </span> <input type='button' value='Button text'/><span>Some more text</span>";
|
| setBodyContent(bodyContent);
|
| EXPECT_EQ("[Some text ][][Some more text]", iterate<DOMTree>(TextIteratorCollapseTrailingSpace));
|
| - EXPECT_EQ("[Some text ][][Button text][Some more text]", iterate<ComposedTree>(TextIteratorCollapseTrailingSpace));
|
| + EXPECT_EQ("[Some text ][][Button text][Some more text]", iterate<FlatTree>(TextIteratorCollapseTrailingSpace));
|
| }
|
|
|
| TEST_F(TextIteratorTest, copyTextTo)
|
| @@ -418,8 +418,8 @@ TEST_F(TextIteratorTest, copyTextTo)
|
| iter1.copyTextTo(&output1, 1, 2);
|
| EXPECT_EQ("onetwo", String(output1.data(), output1.size())) << String::format(message, 1, "onetwo").utf8().data();
|
|
|
| - EphemeralRangeTemplate<EditingInComposedTreeStrategy> range2(EphemeralRangeTemplate<EditingInComposedTreeStrategy>::rangeOfContents(*host));
|
| - TextIteratorAlgorithm<EditingInComposedTreeStrategy> iter2(range2.startPosition(), range2.endPosition());
|
| + EphemeralRangeTemplate<EditingInFlatTreeStrategy> range2(EphemeralRangeTemplate<EditingInFlatTreeStrategy>::rangeOfContents(*host));
|
| + TextIteratorAlgorithm<EditingInFlatTreeStrategy> iter2(range2.startPosition(), range2.endPosition());
|
| ForwardsTextBuffer output2;
|
| iter2.copyTextTo(&output2, 0, 3);
|
| EXPECT_EQ("thr", String(output2.data(), output2.size())) << String::format(message, 2, "thr").utf8().data();
|
| @@ -466,8 +466,8 @@ TEST_F(TextIteratorTest, characterAt)
|
| EXPECT_EQ('w', iter1.characterAt(1)) << message1;
|
| EXPECT_EQ('o', iter1.characterAt(2)) << message1;
|
|
|
| - EphemeralRangeTemplate<EditingInComposedTreeStrategy> range2(EphemeralRangeTemplate<EditingInComposedTreeStrategy>::rangeOfContents(*host));
|
| - TextIteratorAlgorithm<EditingInComposedTreeStrategy> iter2(range2.startPosition(), range2.endPosition());
|
| + EphemeralRangeTemplate<EditingInFlatTreeStrategy> range2(EphemeralRangeTemplate<EditingInFlatTreeStrategy>::rangeOfContents(*host));
|
| + TextIteratorAlgorithm<EditingInFlatTreeStrategy> iter2(range2.startPosition(), range2.endPosition());
|
| const char* message2 = "|iter2| should emit 'three ', 'two', ' ', 'one' and ' zero'.";
|
| EXPECT_EQ('t', iter2.characterAt(0)) << message2;
|
| EXPECT_EQ('h', iter2.characterAt(1)) << message2;
|
|
|