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/VisibleUnits.h" | 5 #include "core/editing/VisibleUnits.h" |
6 | 6 |
7 #include <ostream> // NOLINT | 7 #include <ostream> // NOLINT |
8 #include "bindings/core/v8/V8BindingForTesting.h" | 8 #include "bindings/core/v8/V8BindingForTesting.h" |
9 #include "core/dom/Text.h" | 9 #include "core/dom/Text.h" |
10 #include "core/editing/EditingTestBase.h" | 10 #include "core/editing/EditingTestBase.h" |
(...skipping 2019 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2030 TEST_F(VisibleUnitsTest, | 2030 TEST_F(VisibleUnitsTest, |
2031 canonicalizationWithCollapsedSpaceAndIsolatedCombiningCharacter) { | 2031 canonicalizationWithCollapsedSpaceAndIsolatedCombiningCharacter) { |
2032 setBodyContent("<p> ⃣</p>"); // Leading space is necessary | 2032 setBodyContent("<p> ⃣</p>"); // Leading space is necessary |
2033 | 2033 |
2034 Node* paragraph = document().querySelector("p"); | 2034 Node* paragraph = document().querySelector("p"); |
2035 Node* text = paragraph->firstChild(); | 2035 Node* text = paragraph->firstChild(); |
2036 Position start = canonicalPositionOf(Position::beforeNode(paragraph)); | 2036 Position start = canonicalPositionOf(Position::beforeNode(paragraph)); |
2037 EXPECT_EQ(Position(text, 2), start); | 2037 EXPECT_EQ(Position(text, 2), start); |
2038 } | 2038 } |
2039 | 2039 |
2040 TEST_F(VisibleUnitsTest, textQuadDOM) { | |
2041 const char* bodyContent = | |
2042 "<p id='host'>00" | |
2043 "<b id='one'>11111</b>" | |
2044 "<b id='two'>22</b>" | |
2045 "<b id='three'>33</b>" | |
2046 "</p>"; | |
2047 setBodyContent(bodyContent); | |
2048 | |
2049 const Position startPosition(document().getElementById("host"), 0); | |
2050 const Position midPosition(document().getElementById("two"), 0); | |
2051 const Position endPosition(document().getElementById("three"), 0); | |
2052 const EphemeralRange rangeStartToTwo(startPosition, midPosition); | |
2053 const EphemeralRange rangeStartToThree(startPosition, endPosition); | |
2054 Vector<FloatQuad> quadsStartToTwo; | |
2055 Vector<FloatQuad> quadsStartToThree; | |
2056 textQuad(quadsStartToTwo, rangeStartToTwo); | |
2057 textQuad(quadsStartToThree, rangeStartToThree); | |
2058 | |
2059 EXPECT_EQ(2.0, quadsStartToTwo.size()); | |
2060 EXPECT_EQ(3.0, quadsStartToThree.size()); | |
2061 EXPECT_EQ(quadsStartToThree[0].toString(), quadsStartToTwo[0].toString()); | |
Shanmuga Pandi
2017/03/28 12:02:41
toString() may not needed here
| |
2062 EXPECT_EQ(quadsStartToThree[1].toString(), quadsStartToTwo[1].toString()); | |
2063 EXPECT_EQ("15,8; 17,8; 17,9; 15,9", quadsStartToThree[2].toString()); | |
2064 } | |
2065 | |
2066 TEST_F(VisibleUnitsTest, textQuadFlatTree) { | |
2067 const char* bodyContent = | |
2068 "<b id='zero'>0</b>" | |
2069 "<p id='host'>" | |
2070 "<b id='one'>1</b>" | |
2071 "<b id='two'>22</b>" | |
2072 "</p>" | |
2073 "<b id='three'>333</b>"; | |
2074 const char* shadowContent = | |
2075 "<p id='four'>4444</p>" | |
2076 "<content select=#two></content>" | |
2077 "<content select=#one></content>" | |
2078 "<p id='five'>55555</p>"; | |
2079 setBodyContent(bodyContent); | |
2080 ShadowRoot* shadowRoot = setShadowContent(shadowContent, "host"); | |
2081 | |
2082 const PositionInFlatTree startPosition(document().getElementById("host"), 0); | |
2083 const PositionInFlatTree threePosition(document().getElementById("three"), 0); | |
2084 const PositionInFlatTree fivePosition(shadowRoot->getElementById("five"), 0); | |
2085 const EphemeralRangeInFlatTree rangeStartToThree(startPosition, | |
2086 threePosition); | |
2087 const EphemeralRangeInFlatTree rangeStartToFive(startPosition, fivePosition); | |
2088 Vector<FloatQuad> quadsStartToThree; | |
2089 Vector<FloatQuad> quadsStartToFive; | |
2090 textQuad(quadsStartToThree, rangeStartToThree); | |
2091 textQuad(quadsStartToFive, rangeStartToFive); | |
2092 | |
2093 EXPECT_EQ(4.0, quadsStartToThree.size()); | |
2094 EXPECT_EQ(3.0, quadsStartToFive.size()); | |
2095 EXPECT_EQ(quadsStartToThree[0].toString(), quadsStartToFive[0].toString()); | |
Shanmuga Pandi
2017/03/28 12:02:41
ditto
| |
2096 EXPECT_EQ(quadsStartToThree[1].toString(), quadsStartToFive[1].toString()); | |
2097 EXPECT_EQ("8,10; 12,10; 12,11; 8,11", quadsStartToFive[0].toString()); | |
2098 } | |
2040 } // namespace blink | 2099 } // namespace blink |
OLD | NEW |