| Index: third_party/WebKit/Source/core/editing/PositionIteratorTest.cpp
|
| diff --git a/third_party/WebKit/Source/core/editing/PositionIteratorTest.cpp b/third_party/WebKit/Source/core/editing/PositionIteratorTest.cpp
|
| index 5f22d8c32940cad160ab9e218f8245eaaf2ce8d9..3a3dc221edb85a21b210937f51fa35683e9b5aed 100644
|
| --- a/third_party/WebKit/Source/core/editing/PositionIteratorTest.cpp
|
| +++ b/third_party/WebKit/Source/core/editing/PositionIteratorTest.cpp
|
| @@ -15,7 +15,6 @@ class PositionIteratorTest : public EditingTestBase {};
|
| TEST_F(PositionIteratorTest, decrementWithInputElement) {
|
| setBodyContent("123<input value='abc'>");
|
| Element* const input = document().querySelector("input");
|
| - Node* const innerEditor = FlatTreeTraversal::firstChild(*input);
|
| Node* const text = input->previousSibling();
|
|
|
| // Decrement until start of "123" from INPUT on DOM tree
|
| @@ -39,27 +38,10 @@ TEST_F(PositionIteratorTest, decrementWithInputElement) {
|
| flatIterator.decrement();
|
| EXPECT_EQ(PositionInFlatTree::afterNode(input),
|
| flatIterator.computePosition());
|
| - // TODO(yosin): We should not traverse inside INPUT
|
| flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree::lastPositionInNode(innerEditor),
|
| + EXPECT_EQ(PositionInFlatTree::beforeNode(input),
|
| flatIterator.computePosition());
|
| flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree(innerEditor->firstChild(), 3),
|
| - flatIterator.computePosition());
|
| - flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree(innerEditor->firstChild(), 2),
|
| - flatIterator.computePosition());
|
| - flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree(innerEditor->firstChild(), 1),
|
| - flatIterator.computePosition());
|
| - flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree(innerEditor->firstChild(), 0),
|
| - flatIterator.computePosition());
|
| - flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree(innerEditor, 0), flatIterator.computePosition());
|
| - flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree(input, 0), flatIterator.computePosition());
|
| - flatIterator.decrement();
|
| EXPECT_EQ(PositionInFlatTree(document().body(), 1),
|
| flatIterator.computePosition());
|
| flatIterator.decrement();
|
| @@ -69,8 +51,6 @@ TEST_F(PositionIteratorTest, decrementWithInputElement) {
|
| TEST_F(PositionIteratorTest, decrementWithSelectElement) {
|
| setBodyContent("123<select><option>1</option><option>2</option></select>");
|
| Element* const select = document().querySelector("select");
|
| - Node* const option1 = select->firstChild();
|
| - Node* const option2 = select->lastChild();
|
| Node* text = select->previousSibling();
|
|
|
| // Decrement until start of "123" from SELECT on DOM tree
|
| @@ -79,25 +59,12 @@ TEST_F(PositionIteratorTest, decrementWithSelectElement) {
|
| domIterator.computePosition());
|
| domIterator.decrement();
|
| EXPECT_EQ(Position::afterNode(select), domIterator.computePosition());
|
| - // TODO(yosin): We should not traverse inside SELECT and OPTION
|
| domIterator.decrement();
|
| - EXPECT_EQ(Position::lastPositionInNode(option2),
|
| - domIterator.computePosition());
|
| + EXPECT_EQ(Position::afterNode(select), domIterator.computePosition())
|
| + << "This is redundant result, we should not have. see "
|
| + "http://crbug.com/697283";
|
| domIterator.decrement();
|
| - EXPECT_EQ(Position(option2->firstChild(), 1), domIterator.computePosition());
|
| - domIterator.decrement();
|
| - EXPECT_EQ(Position(option2, 0), domIterator.computePosition());
|
| - domIterator.decrement();
|
| - EXPECT_EQ(Position(select, 1), domIterator.computePosition());
|
| - domIterator.decrement();
|
| - EXPECT_EQ(Position::lastPositionInNode(option1),
|
| - domIterator.computePosition());
|
| - domIterator.decrement();
|
| - EXPECT_EQ(Position(option1->firstChild(), 1), domIterator.computePosition());
|
| - domIterator.decrement();
|
| - EXPECT_EQ(Position(option1, 0), domIterator.computePosition());
|
| - domIterator.decrement();
|
| - EXPECT_EQ(Position(select, 0), domIterator.computePosition());
|
| + EXPECT_EQ(Position::beforeNode(select), domIterator.computePosition());
|
| domIterator.decrement();
|
| EXPECT_EQ(Position(document().body(), 1), domIterator.computePosition());
|
| domIterator.decrement();
|
| @@ -111,30 +78,15 @@ TEST_F(PositionIteratorTest, decrementWithSelectElement) {
|
| flatIterator.decrement();
|
| EXPECT_EQ(PositionInFlatTree::afterNode(select),
|
| flatIterator.computePosition());
|
| - // TODO(yosin): We should not traverse inside SELECT and OPTION
|
| - // Traverse |option2|
|
| flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree::lastPositionInNode(option2),
|
| - flatIterator.computePosition());
|
| - flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree(FlatTreeTraversal::firstChild(*option2), 1),
|
| - flatIterator.computePosition());
|
| - flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree(option2, 0), flatIterator.computePosition());
|
| - flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree(select, 1), flatIterator.computePosition());
|
| - // Traverse |option1|
|
| - flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree::lastPositionInNode(option1),
|
| - flatIterator.computePosition());
|
| + EXPECT_EQ(PositionInFlatTree::afterNode(select),
|
| + flatIterator.computePosition())
|
| + << "This is redundant result, we should not have. see "
|
| + "http://crbug.com/697283";
|
| flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree(FlatTreeTraversal::firstChild(*option1), 1),
|
| + EXPECT_EQ(PositionInFlatTree::beforeNode(select),
|
| flatIterator.computePosition());
|
| flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree(option1, 0), flatIterator.computePosition());
|
| - flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree(select, 0), flatIterator.computePosition());
|
| - flatIterator.decrement();
|
| EXPECT_EQ(PositionInFlatTree(document().body(), 1),
|
| flatIterator.computePosition());
|
| flatIterator.decrement();
|
| @@ -145,7 +97,6 @@ TEST_F(PositionIteratorTest, decrementWithSelectElement) {
|
| TEST_F(PositionIteratorTest, decrementWithTextAreaElement) {
|
| setBodyContent("123<textarea>456</textarea>");
|
| Element* const textarea = document().querySelector("textarea");
|
| - Node* const innerEditor = FlatTreeTraversal::firstChild(*textarea);
|
| Node* const text = textarea->previousSibling();
|
|
|
| // Decrement until end of "123" from after TEXTAREA on DOM tree
|
| @@ -154,11 +105,8 @@ TEST_F(PositionIteratorTest, decrementWithTextAreaElement) {
|
| domIterator.computePosition());
|
| domIterator.decrement();
|
| EXPECT_EQ(Position::afterNode(textarea), domIterator.computePosition());
|
| - // TODO(yosin): We should not traverse inside TEXTAREA
|
| domIterator.decrement();
|
| - EXPECT_EQ(Position(textarea->firstChild(), 3), domIterator.computePosition());
|
| - domIterator.decrement();
|
| - EXPECT_EQ(Position(textarea, 0), domIterator.computePosition());
|
| + EXPECT_EQ(Position::beforeNode(textarea), domIterator.computePosition());
|
| domIterator.decrement();
|
| EXPECT_EQ(Position(document().body(), 1), domIterator.computePosition());
|
| domIterator.decrement();
|
| @@ -172,28 +120,10 @@ TEST_F(PositionIteratorTest, decrementWithTextAreaElement) {
|
| flatIterator.decrement();
|
| EXPECT_EQ(PositionInFlatTree::afterNode(textarea),
|
| flatIterator.computePosition());
|
| - // TODO(yosin): We should not traverse inside TEXTAREA
|
| - // Traverse |innerEditor|
|
| - flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree::lastPositionInNode(innerEditor),
|
| - flatIterator.computePosition());
|
| - flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree(innerEditor->firstChild(), 3),
|
| - flatIterator.computePosition());
|
| - flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree(innerEditor->firstChild(), 2),
|
| - flatIterator.computePosition());
|
| - flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree(innerEditor->firstChild(), 1),
|
| - flatIterator.computePosition());
|
| flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree(innerEditor->firstChild(), 0),
|
| + EXPECT_EQ(PositionInFlatTree::beforeNode(textarea),
|
| flatIterator.computePosition());
|
| flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree(innerEditor, 0), flatIterator.computePosition());
|
| - flatIterator.decrement();
|
| - EXPECT_EQ(PositionInFlatTree(textarea, 0), flatIterator.computePosition());
|
| - flatIterator.decrement();
|
| EXPECT_EQ(PositionInFlatTree(document().body(), 1),
|
| flatIterator.computePosition());
|
| flatIterator.decrement();
|
| @@ -204,7 +134,6 @@ TEST_F(PositionIteratorTest, decrementWithTextAreaElement) {
|
| TEST_F(PositionIteratorTest, incrementWithInputElement) {
|
| setBodyContent("<input value='abc'>123");
|
| Element* const input = document().querySelector("input");
|
| - Node* const innerEditor = FlatTreeTraversal::firstChild(*input);
|
| Node* const text = input->nextSibling();
|
|
|
| // Increment until start of "123" from INPUT on DOM tree
|
| @@ -225,25 +154,8 @@ TEST_F(PositionIteratorTest, incrementWithInputElement) {
|
| PositionInFlatTree::firstPositionInNode(document().body()));
|
| EXPECT_EQ(PositionInFlatTree(document().body(), 0),
|
| flatIterator.computePosition());
|
| - // TODO(yosin): We should not traverse inside INPUT
|
| flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree(input, 0), flatIterator.computePosition());
|
| - flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree(innerEditor, 0), flatIterator.computePosition());
|
| - flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree(innerEditor->firstChild(), 0),
|
| - flatIterator.computePosition());
|
| - flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree(innerEditor->firstChild(), 1),
|
| - flatIterator.computePosition());
|
| - flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree(innerEditor->firstChild(), 2),
|
| - flatIterator.computePosition());
|
| - flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree(innerEditor->firstChild(), 3),
|
| - flatIterator.computePosition());
|
| - flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree::lastPositionInNode(innerEditor),
|
| + EXPECT_EQ(PositionInFlatTree::beforeNode(input),
|
| flatIterator.computePosition());
|
| flatIterator.increment();
|
| EXPECT_EQ(PositionInFlatTree::afterNode(input),
|
| @@ -258,36 +170,21 @@ TEST_F(PositionIteratorTest, incrementWithInputElement) {
|
| TEST_F(PositionIteratorTest, incrementWithSelectElement) {
|
| setBodyContent("<select><option>1</option><option>2</option></select>123");
|
| Element* const select = document().querySelector("select");
|
| - Node* const option1 = select->firstChild();
|
| - Node* const option2 = select->lastChild();
|
| Node* const text = select->nextSibling();
|
|
|
| // Increment until start of "123" from SELECT on DOM tree
|
| PositionIterator domIterator(
|
| Position::firstPositionInNode(document().body()));
|
| EXPECT_EQ(Position(document().body(), 0), domIterator.computePosition());
|
| - // TODO(yosin): We should not traverse inside SELECT
|
| - domIterator.increment();
|
| - EXPECT_EQ(Position(select, 0), domIterator.computePosition());
|
| domIterator.increment();
|
| - EXPECT_EQ(Position(option1, 0), domIterator.computePosition());
|
| - domIterator.increment();
|
| - EXPECT_EQ(Position(option1->firstChild(), 0), domIterator.computePosition());
|
| - domIterator.increment();
|
| - EXPECT_EQ(Position::lastPositionInNode(option1),
|
| - domIterator.computePosition());
|
| - domIterator.increment();
|
| - EXPECT_EQ(Position(select, 1), domIterator.computePosition());
|
| - domIterator.increment();
|
| - EXPECT_EQ(Position(option2, 0), domIterator.computePosition());
|
| - domIterator.increment();
|
| - EXPECT_EQ(Position(option2->firstChild(), 0), domIterator.computePosition());
|
| - domIterator.increment();
|
| - EXPECT_EQ(Position::lastPositionInNode(option2),
|
| - domIterator.computePosition());
|
| + EXPECT_EQ(Position::beforeNode(select), domIterator.computePosition());
|
| domIterator.increment();
|
| EXPECT_EQ(Position::afterNode(select), domIterator.computePosition());
|
| domIterator.increment();
|
| + EXPECT_EQ(Position::afterNode(select), domIterator.computePosition())
|
| + << "This is redundant result, we should not have. see "
|
| + "http://crbug.com/697283";
|
| + domIterator.increment();
|
| EXPECT_EQ(Position(document().body(), 1), domIterator.computePosition());
|
| domIterator.increment();
|
| EXPECT_EQ(Position(text, 0), domIterator.computePosition());
|
| @@ -297,32 +194,17 @@ TEST_F(PositionIteratorTest, incrementWithSelectElement) {
|
| PositionInFlatTree::firstPositionInNode(document().body()));
|
| EXPECT_EQ(PositionInFlatTree(document().body(), 0),
|
| flatIterator.computePosition());
|
| - // TODO(yosin): We should not traverse inside SELECT
|
| - flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree(select, 0), flatIterator.computePosition());
|
| flatIterator.increment();
|
| - // Traverse |option2|
|
| - EXPECT_EQ(PositionInFlatTree(option1, 0), flatIterator.computePosition());
|
| - flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree(FlatTreeTraversal::firstChild(*option1), 0),
|
| - flatIterator.computePosition());
|
| - flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree::lastPositionInNode(option1),
|
| - flatIterator.computePosition());
|
| - flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree(select, 1), flatIterator.computePosition());
|
| - // Traverse |option2|
|
| - flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree(option2, 0), flatIterator.computePosition());
|
| - flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree(FlatTreeTraversal::firstChild(*option2), 0),
|
| + EXPECT_EQ(PositionInFlatTree::beforeNode(select),
|
| flatIterator.computePosition());
|
| flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree::lastPositionInNode(option2),
|
| + EXPECT_EQ(PositionInFlatTree::afterNode(select),
|
| flatIterator.computePosition());
|
| flatIterator.increment();
|
| EXPECT_EQ(PositionInFlatTree::afterNode(select),
|
| - flatIterator.computePosition());
|
| + flatIterator.computePosition())
|
| + << "This is redundant result, we should not have. see "
|
| + "http://crbug.com/697283";
|
| flatIterator.increment();
|
| EXPECT_EQ(PositionInFlatTree(document().body(), 1),
|
| flatIterator.computePosition());
|
| @@ -335,16 +217,13 @@ TEST_F(PositionIteratorTest, incrementWithTextAreaElement) {
|
| setBodyContent("<textarea>123</textarea>456");
|
| Element* const textarea = document().querySelector("textarea");
|
| Node* const text = textarea->nextSibling();
|
| - Node* const innerEditor = FlatTreeTraversal::firstChild(*textarea);
|
|
|
| // Increment until start of "123" from TEXTAREA on DOM tree
|
| PositionIterator domIterator(
|
| Position::firstPositionInNode(document().body()));
|
| EXPECT_EQ(Position(document().body(), 0), domIterator.computePosition());
|
| domIterator.increment();
|
| - EXPECT_EQ(Position(textarea, 0), domIterator.computePosition());
|
| - domIterator.increment();
|
| - EXPECT_EQ(Position(textarea->firstChild(), 0), domIterator.computePosition());
|
| + EXPECT_EQ(Position::beforeNode(textarea), domIterator.computePosition());
|
| domIterator.increment();
|
| EXPECT_EQ(Position::afterNode(textarea), domIterator.computePosition());
|
| domIterator.increment();
|
| @@ -359,24 +238,7 @@ TEST_F(PositionIteratorTest, incrementWithTextAreaElement) {
|
| flatIterator.computePosition());
|
| // TODO(yosin): We should not traverse inside TEXTAREA
|
| flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree(textarea, 0), flatIterator.computePosition());
|
| - // Traverse |innerEditor|
|
| - flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree(innerEditor, 0), flatIterator.computePosition());
|
| - flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree(innerEditor->firstChild(), 0),
|
| - flatIterator.computePosition());
|
| - flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree(innerEditor->firstChild(), 1),
|
| - flatIterator.computePosition());
|
| - flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree(innerEditor->firstChild(), 2),
|
| - flatIterator.computePosition());
|
| - flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree(innerEditor->firstChild(), 3),
|
| - flatIterator.computePosition());
|
| - flatIterator.increment();
|
| - EXPECT_EQ(PositionInFlatTree::lastPositionInNode(innerEditor),
|
| + EXPECT_EQ(PositionInFlatTree::beforeNode(textarea),
|
| flatIterator.computePosition());
|
| flatIterator.increment();
|
| EXPECT_EQ(PositionInFlatTree::afterNode(textarea),
|
|
|