OLD | NEW |
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 "core/editing/FrameSelection.h" | 5 #include "core/editing/FrameSelection.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include "bindings/core/v8/ExceptionState.h" | 8 #include "bindings/core/v8/ExceptionState.h" |
9 #include "core/dom/Document.h" | 9 #include "core/dom/Document.h" |
10 #include "core/dom/Element.h" | 10 #include "core/dom/Element.h" |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 private: | 49 private: |
50 Persistent<Text> m_textNode; | 50 Persistent<Text> m_textNode; |
51 }; | 51 }; |
52 | 52 |
53 Text* FrameSelectionTest::appendTextNode(const String& data) { | 53 Text* FrameSelectionTest::appendTextNode(const String& data) { |
54 Text* text = document().createTextNode(data); | 54 Text* text = document().createTextNode(data); |
55 document().body()->appendChild(text); | 55 document().body()->appendChild(text); |
56 return text; | 56 return text; |
57 } | 57 } |
58 | 58 |
59 TEST_F(FrameSelectionTest, FirstRange) { | 59 TEST_F(FrameSelectionTest, FirstEphemeralRangeOf) { |
60 setBodyContent("<div id=sample>0123456789</div>abc"); | 60 setBodyContent("<div id=sample>0123456789</div>abc"); |
61 Element* const sample = document().getElementById("sample"); | 61 Element* const sample = document().getElementById("sample"); |
62 Node* const text = sample->firstChild(); | 62 Node* const text = sample->firstChild(); |
63 selection().setSelectedRange( | 63 selection().setSelectedRange( |
64 EphemeralRange(Position(text, 3), Position(text, 6)), VP_DEFAULT_AFFINITY, | 64 EphemeralRange(Position(text, 3), Position(text, 6)), VP_DEFAULT_AFFINITY, |
65 SelectionDirectionalMode::NonDirectional, 0); | 65 SelectionDirectionalMode::NonDirectional, 0); |
66 sample->setAttribute(HTMLNames::styleAttr, "display:none"); | 66 sample->setAttribute(HTMLNames::styleAttr, "display:none"); |
67 // Move |VisibleSelection| before "abc". | 67 // Move |VisibleSelection| before "abc". |
68 updateAllLifecyclePhases(); | 68 updateAllLifecyclePhases(); |
69 Range* const range = selection().firstRange(); | 69 const EphemeralRange& range = |
70 EXPECT_EQ(Position(sample->nextSibling(), 0), range->startPosition()) | 70 firstEphemeralRangeOf(selection().computeVisibleSelectionInDOMTree()); |
| 71 EXPECT_EQ(Position(sample->nextSibling(), 0), range.startPosition()) |
71 << "firstRagne() should return current selection value"; | 72 << "firstRagne() should return current selection value"; |
72 EXPECT_EQ(Position(sample->nextSibling(), 0), range->endPosition()); | 73 EXPECT_EQ(Position(sample->nextSibling(), 0), range.endPosition()); |
73 } | 74 } |
74 | 75 |
75 TEST_F(FrameSelectionTest, SetValidSelection) { | 76 TEST_F(FrameSelectionTest, SetValidSelection) { |
76 Text* text = appendTextNode("Hello, World!"); | 77 Text* text = appendTextNode("Hello, World!"); |
77 document().view()->updateAllLifecyclePhases(); | 78 document().view()->updateAllLifecyclePhases(); |
78 selection().setSelection( | 79 selection().setSelection( |
79 SelectionInDOMTree::Builder() | 80 SelectionInDOMTree::Builder() |
80 .setBaseAndExtent(Position(text, 0), Position(text, 5)) | 81 .setBaseAndExtent(Position(text, 0), Position(text, 5)) |
81 .build()); | 82 .build()); |
82 EXPECT_FALSE( | 83 EXPECT_FALSE( |
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
319 selection().setSelectedRange( | 320 selection().setSelectedRange( |
320 EphemeralRange(Position(text, 0), Position(text, 12)), | 321 EphemeralRange(Position(text, 0), Position(text, 12)), |
321 VP_DEFAULT_AFFINITY, SelectionDirectionalMode::NonDirectional, 0); | 322 VP_DEFAULT_AFFINITY, SelectionDirectionalMode::NonDirectional, 0); |
322 | 323 |
323 EXPECT_TRUE(selection().isHandleVisible()) | 324 EXPECT_TRUE(selection().isHandleVisible()) |
324 << "If handles were present before" | 325 << "If handles were present before" |
325 "selectSetSelectedRange they should be present after it."; | 326 "selectSetSelectedRange they should be present after it."; |
326 } | 327 } |
327 | 328 |
328 } // namespace blink | 329 } // namespace blink |
OLD | NEW |