| 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/Position.h" | 5 #include "core/editing/Position.h" |
| 6 | 6 |
| 7 #include "core/editing/EditingTestBase.h" | 7 #include "core/editing/EditingTestBase.h" |
| 8 | 8 |
| 9 namespace blink { | 9 namespace blink { |
| 10 | 10 |
| 11 class PositionTest : public EditingTestBase {}; | 11 class PositionTest : public EditingTestBase {}; |
| 12 | 12 |
| 13 TEST_F(PositionTest, IsEquivalent) { | 13 TEST_F(PositionTest, IsEquivalent) { |
| 14 SetBodyContent("<a id=sample>0<b>1</b>2</a>"); | 14 SetBodyContent("<a id=sample>0<b>1</b>2</a>"); |
| 15 | 15 |
| 16 Element* sample = GetDocument().getElementById("sample"); | 16 Element* sample = GetDocument().getElementById("sample"); |
| 17 | 17 |
| 18 EXPECT_TRUE(Position(sample, 0).IsEquivalent(Position(sample, 0))); | 18 EXPECT_TRUE(Position(sample, 0).IsEquivalent(Position(sample, 0))); |
| 19 | 19 |
| 20 EXPECT_TRUE( | 20 EXPECT_TRUE( |
| 21 Position(sample, 0).IsEquivalent(Position::FirstPositionInNode(sample))); | 21 Position(sample, 0).IsEquivalent(Position::FirstPositionInNode(sample))); |
| 22 EXPECT_TRUE(Position(sample, 0).IsEquivalent( | 22 EXPECT_TRUE(Position(sample, 0).IsEquivalent( |
| 23 Position::BeforeNode(sample->firstChild()))); | 23 Position::BeforeNode(*sample->firstChild()))); |
| 24 EXPECT_TRUE(Position(sample, 1).IsEquivalent( | 24 EXPECT_TRUE(Position(sample, 1).IsEquivalent( |
| 25 Position::AfterNode(sample->firstChild()))); | 25 Position::AfterNode(sample->firstChild()))); |
| 26 EXPECT_TRUE(Position(sample, 1).IsEquivalent( | 26 EXPECT_TRUE(Position(sample, 1).IsEquivalent( |
| 27 Position::BeforeNode(sample->firstChild()->nextSibling()))); | 27 Position::BeforeNode(*sample->firstChild()->nextSibling()))); |
| 28 EXPECT_TRUE(Position(sample, 2).IsEquivalent( | 28 EXPECT_TRUE(Position(sample, 2).IsEquivalent( |
| 29 Position::BeforeNode(sample->lastChild()))); | 29 Position::BeforeNode(*sample->lastChild()))); |
| 30 EXPECT_TRUE(Position(sample, 3).IsEquivalent( | 30 EXPECT_TRUE(Position(sample, 3).IsEquivalent( |
| 31 Position::AfterNode(sample->lastChild()))); | 31 Position::AfterNode(sample->lastChild()))); |
| 32 EXPECT_TRUE( | 32 EXPECT_TRUE( |
| 33 Position(sample, 3).IsEquivalent(Position::LastPositionInNode(sample))); | 33 Position(sample, 3).IsEquivalent(Position::LastPositionInNode(sample))); |
| 34 | 34 |
| 35 EXPECT_FALSE(Position(sample, 0).IsEquivalent(Position(sample, 1))); | 35 EXPECT_FALSE(Position(sample, 0).IsEquivalent(Position(sample, 1))); |
| 36 EXPECT_FALSE( | 36 EXPECT_FALSE( |
| 37 Position(sample, 0).IsEquivalent(Position::LastPositionInNode(sample))); | 37 Position(sample, 0).IsEquivalent(Position::LastPositionInNode(sample))); |
| 38 } | 38 } |
| 39 | 39 |
| 40 TEST_F(PositionTest, NodeAsRangeLastNodeNull) { | 40 TEST_F(PositionTest, NodeAsRangeLastNodeNull) { |
| 41 EXPECT_EQ(nullptr, Position().NodeAsRangeLastNode()); | 41 EXPECT_EQ(nullptr, Position().NodeAsRangeLastNode()); |
| 42 EXPECT_EQ(nullptr, PositionInFlatTree().NodeAsRangeLastNode()); | 42 EXPECT_EQ(nullptr, PositionInFlatTree().NodeAsRangeLastNode()); |
| 43 } | 43 } |
| 44 | 44 |
| 45 TEST_F(PositionTest, editingPositionOfWithEditingIgnoresContent) { | 45 TEST_F(PositionTest, editingPositionOfWithEditingIgnoresContent) { |
| 46 const char* body_content = | 46 const char* body_content = |
| 47 "<textarea id=textarea></textarea><a id=child1>1</a><b id=child2>2</b>"; | 47 "<textarea id=textarea></textarea><a id=child1>1</a><b id=child2>2</b>"; |
| 48 SetBodyContent(body_content); | 48 SetBodyContent(body_content); |
| 49 Node* textarea = GetDocument().getElementById("textarea"); | 49 Node* textarea = GetDocument().getElementById("textarea"); |
| 50 | 50 |
| 51 EXPECT_EQ(Position::BeforeNode(textarea), | 51 EXPECT_EQ(Position::BeforeNode(*textarea), |
| 52 Position::EditingPositionOf(textarea, 0)); | 52 Position::EditingPositionOf(textarea, 0)); |
| 53 EXPECT_EQ(Position::AfterNode(textarea), | 53 EXPECT_EQ(Position::AfterNode(textarea), |
| 54 Position::EditingPositionOf(textarea, 1)); | 54 Position::EditingPositionOf(textarea, 1)); |
| 55 EXPECT_EQ(Position::AfterNode(textarea), | 55 EXPECT_EQ(Position::AfterNode(textarea), |
| 56 Position::EditingPositionOf(textarea, 2)); | 56 Position::EditingPositionOf(textarea, 2)); |
| 57 | 57 |
| 58 // Change DOM tree to | 58 // Change DOM tree to |
| 59 // <textarea id=textarea><a id=child1>1</a><b id=child2>2</b></textarea> | 59 // <textarea id=textarea><a id=child1>1</a><b id=child2>2</b></textarea> |
| 60 Node* child1 = GetDocument().getElementById("child1"); | 60 Node* child1 = GetDocument().getElementById("child1"); |
| 61 Node* child2 = GetDocument().getElementById("child2"); | 61 Node* child2 = GetDocument().getElementById("child2"); |
| 62 textarea->appendChild(child1); | 62 textarea->appendChild(child1); |
| 63 textarea->appendChild(child2); | 63 textarea->appendChild(child2); |
| 64 | 64 |
| 65 EXPECT_EQ(Position::BeforeNode(textarea), | 65 EXPECT_EQ(Position::BeforeNode(*textarea), |
| 66 Position::EditingPositionOf(textarea, 0)); | 66 Position::EditingPositionOf(textarea, 0)); |
| 67 EXPECT_EQ(Position::AfterNode(textarea), | 67 EXPECT_EQ(Position::AfterNode(textarea), |
| 68 Position::EditingPositionOf(textarea, 1)); | 68 Position::EditingPositionOf(textarea, 1)); |
| 69 EXPECT_EQ(Position::AfterNode(textarea), | 69 EXPECT_EQ(Position::AfterNode(textarea), |
| 70 Position::EditingPositionOf(textarea, 2)); | 70 Position::EditingPositionOf(textarea, 2)); |
| 71 EXPECT_EQ(Position::AfterNode(textarea), | 71 EXPECT_EQ(Position::AfterNode(textarea), |
| 72 Position::EditingPositionOf(textarea, 3)); | 72 Position::EditingPositionOf(textarea, 3)); |
| 73 } | 73 } |
| 74 | 74 |
| 75 TEST_F(PositionTest, NodeAsRangeLastNode) { | 75 TEST_F(PositionTest, NodeAsRangeLastNode) { |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 const char* shadow_content = ""; | 222 const char* shadow_content = ""; |
| 223 SetBodyContent(body_content); | 223 SetBodyContent(body_content); |
| 224 ShadowRoot* shadow_root = SetShadowContent(shadow_content, "host"); | 224 ShadowRoot* shadow_root = SetShadowContent(shadow_content, "host"); |
| 225 Element* host = GetDocument().getElementById("host"); | 225 Element* host = GetDocument().getElementById("host"); |
| 226 | 226 |
| 227 EXPECT_EQ(PositionInFlatTree(host, PositionAnchorType::kAfterChildren), | 227 EXPECT_EQ(PositionInFlatTree(host, PositionAnchorType::kAfterChildren), |
| 228 ToPositionInFlatTree(Position(shadow_root, 0))); | 228 ToPositionInFlatTree(Position(shadow_root, 0))); |
| 229 } | 229 } |
| 230 | 230 |
| 231 } // namespace blink | 231 } // namespace blink |
| OLD | NEW |