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 "platform/fonts/GlyphPageTreeNode.h" | 5 #include "platform/fonts/GlyphPageTreeNode.h" |
6 | 6 |
7 #include "platform/fonts/SegmentedFontData.h" | 7 #include "platform/fonts/SegmentedFontData.h" |
8 #include "platform/fonts/SimpleFontData.h" | 8 #include "platform/fonts/SimpleFontData.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 | 10 |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 } | 100 } |
101 | 101 |
102 TEST(GlyphPageTreeNodeTest, segmentedData) | 102 TEST(GlyphPageTreeNodeTest, segmentedData) |
103 { | 103 { |
104 const unsigned kPageNumber = 0; | 104 const unsigned kPageNumber = 0; |
105 size_t pageCountBeforeTest = GlyphPageTreeNode::treeGlyphPageCount(); | 105 size_t pageCountBeforeTest = GlyphPageTreeNode::treeGlyphPageCount(); |
106 { | 106 { |
107 RefPtr<TestSimpleFontData> dataBtoC = TestSimpleFontData::create('B', 'C
'); | 107 RefPtr<TestSimpleFontData> dataBtoC = TestSimpleFontData::create('B', 'C
'); |
108 RefPtr<TestSimpleFontData> dataCtoE = TestSimpleFontData::create('C', 'E
'); | 108 RefPtr<TestSimpleFontData> dataCtoE = TestSimpleFontData::create('C', 'E
'); |
109 RefPtr<SegmentedFontData> segmentedData = SegmentedFontData::create(); | 109 RefPtr<SegmentedFontData> segmentedData = SegmentedFontData::create(); |
110 segmentedData->appendRange(FontDataRange('A', 'C', dataBtoC)); | 110 segmentedData->appendFace(FontDataForRangeSet(dataBtoC, 'A', 'C')); |
111 segmentedData->appendRange(FontDataRange('C', 'D', dataCtoE)); | 111 segmentedData->appendFace(FontDataForRangeSet(dataCtoE, 'C', 'D')); |
112 GlyphPageTreeNode* node = GlyphPageTreeNode::getNormalRootChild(segmente
dData.get(), kPageNumber); | 112 GlyphPageTreeNode* node = GlyphPageTreeNode::getNormalRootChild(segmente
dData.get(), kPageNumber); |
113 | 113 |
114 EXPECT_EQ(0, node->page()->glyphDataForCharacter('A').fontData); | 114 EXPECT_EQ(0, node->page()->glyphDataForCharacter('A').fontData); |
115 EXPECT_EQ(dataBtoC, node->page()->glyphDataForCharacter('B').fontData); | 115 EXPECT_EQ(dataBtoC, node->page()->glyphDataForCharacter('B').fontData); |
116 EXPECT_EQ(dataBtoC, node->page()->glyphDataForCharacter('C').fontData); | 116 EXPECT_EQ(dataBtoC, node->page()->glyphDataForCharacter('C').fontData); |
117 EXPECT_EQ(dataCtoE, node->page()->glyphDataForCharacter('D').fontData); | 117 EXPECT_EQ(dataCtoE, node->page()->glyphDataForCharacter('D').fontData); |
118 EXPECT_EQ(0, node->page()->glyphDataForCharacter('E').fontData); | 118 EXPECT_EQ(0, node->page()->glyphDataForCharacter('E').fontData); |
119 } | 119 } |
120 EXPECT_EQ(pageCountBeforeTest, GlyphPageTreeNode::treeGlyphPageCount()); | 120 EXPECT_EQ(pageCountBeforeTest, GlyphPageTreeNode::treeGlyphPageCount()); |
121 } | 121 } |
(...skipping 16 matching lines...) Expand all Loading... |
138 | 138 |
139 TEST(GlyphPageTreeNodeTest, customData) | 139 TEST(GlyphPageTreeNodeTest, customData) |
140 { | 140 { |
141 const unsigned kPageNumber = 0; | 141 const unsigned kPageNumber = 0; |
142 size_t pageCountBeforeTest = GlyphPageTreeNode::treeGlyphPageCount(); | 142 size_t pageCountBeforeTest = GlyphPageTreeNode::treeGlyphPageCount(); |
143 { | 143 { |
144 RefPtr<TestSimpleFontData> dataAtoC = TestSimpleFontData::createUnloaded
('A', 'C'); | 144 RefPtr<TestSimpleFontData> dataAtoC = TestSimpleFontData::createUnloaded
('A', 'C'); |
145 RefPtr<TestSimpleFontData> dataBtoD = TestSimpleFontData::create('B', 'D
'); | 145 RefPtr<TestSimpleFontData> dataBtoD = TestSimpleFontData::create('B', 'D
'); |
146 RefPtr<TestSimpleFontData> dataCtoE = TestSimpleFontData::createUnloaded
('C', 'E'); | 146 RefPtr<TestSimpleFontData> dataCtoE = TestSimpleFontData::createUnloaded
('C', 'E'); |
147 RefPtr<SegmentedFontData> segmentedData = SegmentedFontData::create(); | 147 RefPtr<SegmentedFontData> segmentedData = SegmentedFontData::create(); |
148 segmentedData->appendRange(FontDataRange('A', 'C', dataAtoC)); | 148 segmentedData->appendFace(FontDataForRangeSet(dataAtoC, 'A', 'C')); |
149 segmentedData->appendRange(FontDataRange('B', 'D', dataBtoD)); | 149 segmentedData->appendFace(FontDataForRangeSet(dataBtoD, 'B', 'D')); |
150 segmentedData->appendRange(FontDataRange('C', 'E', dataCtoE)); | 150 segmentedData->appendFace(FontDataForRangeSet(dataCtoE, 'C', 'E')); |
151 GlyphPageTreeNode* node = GlyphPageTreeNode::getNormalRootChild(segmente
dData.get(), kPageNumber); | 151 GlyphPageTreeNode* node = GlyphPageTreeNode::getNormalRootChild(segmente
dData.get(), kPageNumber); |
152 | 152 |
153 EXPECT_EQ(0, node->page()->glyphDataForCharacter('A').fontData); | 153 EXPECT_EQ(0, node->page()->glyphDataForCharacter('A').fontData); |
154 EXPECT_EQ(dataBtoD, node->page()->glyphDataForCharacter('B').fontData); | 154 EXPECT_EQ(dataBtoD, node->page()->glyphDataForCharacter('B').fontData); |
155 EXPECT_EQ(dataBtoD, node->page()->glyphDataForCharacter('C').fontData); | 155 EXPECT_EQ(dataBtoD, node->page()->glyphDataForCharacter('C').fontData); |
156 EXPECT_EQ(dataBtoD, node->page()->glyphDataForCharacter('D').fontData); | 156 EXPECT_EQ(dataBtoD, node->page()->glyphDataForCharacter('D').fontData); |
157 EXPECT_EQ(0, node->page()->glyphDataForCharacter('E').fontData); | 157 EXPECT_EQ(0, node->page()->glyphDataForCharacter('E').fontData); |
158 | 158 |
159 EXPECT_EQ(dataAtoC->customFontData(), node->page()->customFontToLoadAt('
A')); | 159 EXPECT_EQ(dataAtoC->customFontData(), node->page()->customFontToLoadAt('
A')); |
160 EXPECT_EQ(dataAtoC->customFontData(), node->page()->customFontToLoadAt('
B')); | 160 EXPECT_EQ(dataAtoC->customFontData(), node->page()->customFontToLoadAt('
B')); |
161 EXPECT_EQ(dataAtoC->customFontData(), node->page()->customFontToLoadAt('
C')); | 161 EXPECT_EQ(dataAtoC->customFontData(), node->page()->customFontToLoadAt('
C')); |
162 EXPECT_EQ(0, node->page()->customFontToLoadAt('D')); | 162 EXPECT_EQ(0, node->page()->customFontToLoadAt('D')); |
163 EXPECT_EQ(dataCtoE->customFontData(), node->page()->customFontToLoadAt('
E')); | 163 EXPECT_EQ(dataCtoE->customFontData(), node->page()->customFontToLoadAt('
E')); |
164 } | 164 } |
165 EXPECT_EQ(pageCountBeforeTest, GlyphPageTreeNode::treeGlyphPageCount()); | 165 EXPECT_EQ(pageCountBeforeTest, GlyphPageTreeNode::treeGlyphPageCount()); |
166 } | 166 } |
167 | 167 |
168 TEST(GlyphPageTreeNodeTest, customDataWithMultiplePages) | 168 TEST(GlyphPageTreeNodeTest, customDataWithMultiplePages) |
169 { | 169 { |
170 const unsigned kPageNumber = 0; | 170 const unsigned kPageNumber = 0; |
171 size_t pageCountBeforeTest = GlyphPageTreeNode::treeGlyphPageCount(); | 171 size_t pageCountBeforeTest = GlyphPageTreeNode::treeGlyphPageCount(); |
172 { | 172 { |
173 RefPtr<TestSimpleFontData> dataAtoC = TestSimpleFontData::createUnloaded
('A', 'C'); | 173 RefPtr<TestSimpleFontData> dataAtoC = TestSimpleFontData::createUnloaded
('A', 'C'); |
174 RefPtr<TestSimpleFontData> dataBtoD = TestSimpleFontData::create('B', 'D
'); | 174 RefPtr<TestSimpleFontData> dataBtoD = TestSimpleFontData::create('B', 'D
'); |
175 RefPtr<TestSimpleFontData> dataCtoE = TestSimpleFontData::createUnloaded
('C', 'E'); | 175 RefPtr<TestSimpleFontData> dataCtoE = TestSimpleFontData::createUnloaded
('C', 'E'); |
176 RefPtr<SegmentedFontData> segmentedData1 = SegmentedFontData::create(); | 176 RefPtr<SegmentedFontData> segmentedData1 = SegmentedFontData::create(); |
177 RefPtr<SegmentedFontData> segmentedData2 = SegmentedFontData::create(); | 177 RefPtr<SegmentedFontData> segmentedData2 = SegmentedFontData::create(); |
178 RefPtr<SegmentedFontData> segmentedData3 = SegmentedFontData::create(); | 178 RefPtr<SegmentedFontData> segmentedData3 = SegmentedFontData::create(); |
179 segmentedData1->appendRange(FontDataRange('A', 'C', dataAtoC)); | 179 segmentedData1->appendFace(FontDataForRangeSet(dataAtoC, 'A', 'C')); |
180 segmentedData2->appendRange(FontDataRange('B', 'D', dataBtoD)); | 180 segmentedData2->appendFace(FontDataForRangeSet(dataBtoD, 'B', 'D')); |
181 segmentedData3->appendRange(FontDataRange('C', 'E', dataCtoE)); | 181 segmentedData3->appendFace(FontDataForRangeSet(dataCtoE, 'C', 'E')); |
182 GlyphPageTreeNode* node1 = GlyphPageTreeNode::getNormalRootChild(segment
edData1.get(), kPageNumber); | 182 GlyphPageTreeNode* node1 = GlyphPageTreeNode::getNormalRootChild(segment
edData1.get(), kPageNumber); |
183 GlyphPageTreeNode* node2 = node1->getNormalChild(segmentedData2.get(), k
PageNumber); | 183 GlyphPageTreeNode* node2 = node1->getNormalChild(segmentedData2.get(), k
PageNumber); |
184 GlyphPageTreeNode* node3 = node2->getNormalChild(segmentedData3.get(), k
PageNumber); | 184 GlyphPageTreeNode* node3 = node2->getNormalChild(segmentedData3.get(), k
PageNumber); |
185 | 185 |
186 EXPECT_EQ(0, node3->page()->glyphDataForCharacter('A').fontData); | 186 EXPECT_EQ(0, node3->page()->glyphDataForCharacter('A').fontData); |
187 EXPECT_EQ(dataBtoD, node3->page()->glyphDataForCharacter('B').fontData); | 187 EXPECT_EQ(dataBtoD, node3->page()->glyphDataForCharacter('B').fontData); |
188 EXPECT_EQ(dataBtoD, node3->page()->glyphDataForCharacter('C').fontData); | 188 EXPECT_EQ(dataBtoD, node3->page()->glyphDataForCharacter('C').fontData); |
189 EXPECT_EQ(dataBtoD, node3->page()->glyphDataForCharacter('D').fontData); | 189 EXPECT_EQ(dataBtoD, node3->page()->glyphDataForCharacter('D').fontData); |
190 EXPECT_EQ(0, node3->page()->glyphDataForCharacter('E').fontData); | 190 EXPECT_EQ(0, node3->page()->glyphDataForCharacter('E').fontData); |
191 | 191 |
192 EXPECT_EQ(dataAtoC->customFontData(), node3->page()->customFontToLoadAt(
'A')); | 192 EXPECT_EQ(dataAtoC->customFontData(), node3->page()->customFontToLoadAt(
'A')); |
193 EXPECT_EQ(dataAtoC->customFontData(), node3->page()->customFontToLoadAt(
'B')); | 193 EXPECT_EQ(dataAtoC->customFontData(), node3->page()->customFontToLoadAt(
'B')); |
194 EXPECT_EQ(dataAtoC->customFontData(), node3->page()->customFontToLoadAt(
'C')); | 194 EXPECT_EQ(dataAtoC->customFontData(), node3->page()->customFontToLoadAt(
'C')); |
195 EXPECT_EQ(0, node3->page()->customFontToLoadAt('D')); | 195 EXPECT_EQ(0, node3->page()->customFontToLoadAt('D')); |
196 EXPECT_EQ(dataCtoE->customFontData(), node3->page()->customFontToLoadAt(
'E')); | 196 EXPECT_EQ(dataCtoE->customFontData(), node3->page()->customFontToLoadAt(
'E')); |
197 } | 197 } |
198 EXPECT_EQ(pageCountBeforeTest, GlyphPageTreeNode::treeGlyphPageCount()); | 198 EXPECT_EQ(pageCountBeforeTest, GlyphPageTreeNode::treeGlyphPageCount()); |
199 } | 199 } |
200 | 200 |
201 TEST(GlyphPageTreeNodeTest, systemFallback) | 201 TEST(GlyphPageTreeNodeTest, systemFallback) |
202 { | 202 { |
203 const unsigned kPageNumber = 0; | 203 const unsigned kPageNumber = 0; |
204 size_t pageCountBeforeTest = GlyphPageTreeNode::treeGlyphPageCount(); | 204 size_t pageCountBeforeTest = GlyphPageTreeNode::treeGlyphPageCount(); |
205 { | 205 { |
206 RefPtr<TestSimpleFontData> dataAtoC = TestSimpleFontData::createUnloaded
('A', 'C'); | 206 RefPtr<TestSimpleFontData> dataAtoC = TestSimpleFontData::createUnloaded
('A', 'C'); |
207 RefPtr<TestSimpleFontData> dataBtoD = TestSimpleFontData::create('B', 'D
'); | 207 RefPtr<TestSimpleFontData> dataBtoD = TestSimpleFontData::create('B', 'D
'); |
208 RefPtr<SegmentedFontData> segmentedData = SegmentedFontData::create(); | 208 RefPtr<SegmentedFontData> segmentedData = SegmentedFontData::create(); |
209 segmentedData->appendRange(FontDataRange('A', 'C', dataAtoC)); | 209 segmentedData->appendFace(FontDataForRangeSet(dataAtoC, 'A', 'C')); |
210 GlyphPageTreeNode* node1 = GlyphPageTreeNode::getNormalRootChild(segment
edData.get(), kPageNumber); | 210 GlyphPageTreeNode* node1 = GlyphPageTreeNode::getNormalRootChild(segment
edData.get(), kPageNumber); |
211 GlyphPageTreeNode* node2 = node1->getNormalChild(dataBtoD.get(), kPageNu
mber); | 211 GlyphPageTreeNode* node2 = node1->getNormalChild(dataBtoD.get(), kPageNu
mber); |
212 SystemFallbackGlyphPageTreeNode* node3 = node2->getSystemFallbackChild(k
PageNumber); | 212 SystemFallbackGlyphPageTreeNode* node3 = node2->getSystemFallbackChild(k
PageNumber); |
213 | 213 |
214 EXPECT_TRUE(node3->isSystemFallback()); | 214 EXPECT_TRUE(node3->isSystemFallback()); |
215 | 215 |
216 EXPECT_EQ(0, node3->page()->glyphDataForCharacter('A').fontData); | 216 EXPECT_EQ(0, node3->page()->glyphDataForCharacter('A').fontData); |
217 EXPECT_EQ(dataBtoD, node3->page()->glyphDataForCharacter('B').fontData); | 217 EXPECT_EQ(dataBtoD, node3->page()->glyphDataForCharacter('B').fontData); |
218 EXPECT_EQ(dataBtoD, node3->page()->glyphDataForCharacter('C').fontData); | 218 EXPECT_EQ(dataBtoD, node3->page()->glyphDataForCharacter('C').fontData); |
219 EXPECT_EQ(dataBtoD, node3->page()->glyphDataForCharacter('D').fontData); | 219 EXPECT_EQ(dataBtoD, node3->page()->glyphDataForCharacter('D').fontData); |
(...skipping 23 matching lines...) Expand all Loading... |
243 EXPECT_NE(commonPage, latinPage); | 243 EXPECT_NE(commonPage, latinPage); |
244 EXPECT_NE(commonPage, simplifiedChinesePage); | 244 EXPECT_NE(commonPage, simplifiedChinesePage); |
245 EXPECT_NE(commonPage, traditionalChinesePage); | 245 EXPECT_NE(commonPage, traditionalChinesePage); |
246 EXPECT_NE(simplifiedChinesePage, traditionalChinesePage); | 246 EXPECT_NE(simplifiedChinesePage, traditionalChinesePage); |
247 EXPECT_NE(commonPage, japanesePage); | 247 EXPECT_NE(commonPage, japanesePage); |
248 EXPECT_NE(japanesePage, simplifiedChinesePage); | 248 EXPECT_NE(japanesePage, simplifiedChinesePage); |
249 EXPECT_NE(japanesePage, traditionalChinesePage); | 249 EXPECT_NE(japanesePage, traditionalChinesePage); |
250 } | 250 } |
251 | 251 |
252 } // namespace blink | 252 } // namespace blink |
OLD | NEW |