Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Side by Side Diff: third_party/WebKit/Source/platform/fonts/GlyphPageTreeNodeTest.cpp

Issue 1806653002: Shape unicode-range: font faces in only one iteration (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update UnicodeRangeSetTests to RefPtrtr, rm copy constructor and test Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698