OLD | NEW |
| (Empty) |
1 /* | |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | |
3 * | |
4 * Redistribution and use in source and binary forms, with or without | |
5 * modification, are permitted provided that the following conditions | |
6 * are met: | |
7 * | |
8 * 1. Redistributions of source code must retain the above copyright | |
9 * notice, this list of conditions and the following disclaimer. | |
10 * 2. Redistributions in binary form must reproduce the above copyright | |
11 * notice, this list of conditions and the following disclaimer in the | |
12 * documentation and/or other materials provided with the distribution. | |
13 * | |
14 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY | |
15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |
16 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |
17 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY | |
18 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | |
19 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |
20 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |
21 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | |
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
24 */ | |
25 | |
26 // Tests for the Font class. | |
27 | |
28 #include "config.h" | |
29 | |
30 #include "core/platform/graphics/Font.h" | |
31 | |
32 #include <gtest/gtest.h> | |
33 | |
34 namespace WebCore { | |
35 | |
36 static void TestSpecificUCharRange(UChar rangeStart, UChar rangeEnd) | |
37 { | |
38 UChar below[1]; | |
39 UChar start[1]; | |
40 UChar midway[1]; | |
41 UChar end[1]; | |
42 UChar above[1]; | |
43 | |
44 below[0] = rangeStart - 1; | |
45 start[0] = rangeStart; | |
46 midway[0] = ((int)rangeStart + (int)rangeEnd) / 2; | |
47 end[0] = rangeEnd; | |
48 above[0] = rangeEnd + 1; | |
49 | |
50 EXPECT_EQ(Font::Simple, Font::characterRangeCodePath(below, 1)); | |
51 EXPECT_EQ(Font::Complex, Font::characterRangeCodePath(start, 1)); | |
52 EXPECT_EQ(Font::Complex, Font::characterRangeCodePath(midway, 1)); | |
53 EXPECT_EQ(Font::Complex, Font::characterRangeCodePath(end, 1)); | |
54 EXPECT_EQ(Font::Simple, Font::characterRangeCodePath(above, 1)); | |
55 } | |
56 | |
57 TEST(FontTest, TestCharacterRangeCodePath) | |
58 { | |
59 static UChar c1[] = { 0x0 }; | |
60 EXPECT_EQ(Font::Simple, Font::characterRangeCodePath(c1, 1)); | |
61 | |
62 TestSpecificUCharRange(0x2E5, 0x2E9); | |
63 TestSpecificUCharRange(0x300, 0x36F); | |
64 TestSpecificUCharRange(0x0591, 0x05BD); | |
65 TestSpecificUCharRange(0x05BF, 0x05CF); | |
66 TestSpecificUCharRange(0x0600, 0x109F); | |
67 TestSpecificUCharRange(0x1100, 0x11FF); | |
68 TestSpecificUCharRange(0x135D, 0x135F); | |
69 TestSpecificUCharRange(0x1700, 0x18AF); | |
70 TestSpecificUCharRange(0x1900, 0x194F); | |
71 TestSpecificUCharRange(0x1980, 0x19DF); | |
72 TestSpecificUCharRange(0x1A00, 0x1CFF); | |
73 | |
74 static UChar c2[] = { 0x1DBF }; | |
75 EXPECT_EQ(Font::Simple, Font::characterRangeCodePath(c2, 1)); | |
76 static UChar c3[] = { 0x1DC0 }; | |
77 EXPECT_EQ(Font::Complex, Font::characterRangeCodePath(c3, 1)); | |
78 static UChar c4[] = { 0x1DD0 }; | |
79 EXPECT_EQ(Font::Complex, Font::characterRangeCodePath(c4, 1)); | |
80 static UChar c5[] = { 0x1DFF }; | |
81 EXPECT_EQ(Font::Complex, Font::characterRangeCodePath(c5, 1)); | |
82 static UChar c6[] = { 0x1E00 }; | |
83 EXPECT_EQ(Font::SimpleWithGlyphOverflow, Font::characterRangeCodePath(c6, 1)
); | |
84 static UChar c7[] = { 0x2000 }; | |
85 EXPECT_EQ(Font::SimpleWithGlyphOverflow, Font::characterRangeCodePath(c7, 1)
); | |
86 static UChar c8[] = { 0x2001 }; | |
87 EXPECT_EQ(Font::Simple, Font::characterRangeCodePath(c8, 1)); | |
88 | |
89 TestSpecificUCharRange(0x20D0, 0x20FF); | |
90 TestSpecificUCharRange(0x2CEF, 0x2CF1); | |
91 TestSpecificUCharRange(0x302A, 0x302F); | |
92 | |
93 TestSpecificUCharRange(0xA67C, 0xA67D); | |
94 TestSpecificUCharRange(0xA6F0, 0xA6F1); | |
95 TestSpecificUCharRange(0xA800, 0xABFF); | |
96 | |
97 TestSpecificUCharRange(0xD7B0, 0xD7FF); | |
98 TestSpecificUCharRange(0xFE00, 0xFE0F); | |
99 TestSpecificUCharRange(0xFE20, 0xFE2F); | |
100 } | |
101 | |
102 TEST(FontTest, TestCharacterRangeCodePathSurrogate1) | |
103 { | |
104 /* To be surrogate ... */ | |
105 /* 1st character must be 0xD800 .. 0xDBFF */ | |
106 /* 2nd character must be 0xdc00 .. 0xdfff */ | |
107 | |
108 /* The following 5 should all be Simple because they are not surrogate. */ | |
109 static UChar c1[] = { 0xD800, 0xDBFE }; | |
110 EXPECT_EQ(Font::Simple, Font::characterRangeCodePath(c1, 2)); | |
111 static UChar c2[] = { 0xD800, 0xE000 }; | |
112 EXPECT_EQ(Font::Simple, Font::characterRangeCodePath(c2, 2)); | |
113 static UChar c3[] = { 0xDBFF, 0xDBFE }; | |
114 EXPECT_EQ(Font::Simple, Font::characterRangeCodePath(c3, 2)); | |
115 static UChar c4[] = { 0xDBFF, 0xE000 }; | |
116 EXPECT_EQ(Font::Simple, Font::characterRangeCodePath(c4, 2)); | |
117 static UChar c5[] = { 0xDC00, 0xDBFF }; | |
118 EXPECT_EQ(Font::Simple, Font::characterRangeCodePath(c5, 2)); | |
119 | |
120 /* To be Complex, the Supplementary Character must be in either */ | |
121 /* U+1F1E6 through U+1F1FF or U+E0100 through U+E01EF. */ | |
122 /* That is, a lead of 0xD83C with trail 0xDDE6 .. 0xDDFF or */ | |
123 /* a lead of 0xDB40 with trail 0xDD00 .. 0xDDEF. */ | |
124 static UChar c6[] = { 0xD83C, 0xDDE5 }; | |
125 EXPECT_EQ(Font::Simple, Font::characterRangeCodePath(c6, 2)); | |
126 static UChar c7[] = { 0xD83C, 0xDDE6 }; | |
127 EXPECT_EQ(Font::Complex, Font::characterRangeCodePath(c7, 2)); | |
128 static UChar c8[] = { 0xD83C, 0xDDF0 }; | |
129 EXPECT_EQ(Font::Complex, Font::characterRangeCodePath(c8, 2)); | |
130 static UChar c9[] = { 0xD83C, 0xDDFF }; | |
131 EXPECT_EQ(Font::Complex, Font::characterRangeCodePath(c9, 2)); | |
132 static UChar c10[] = { 0xD83C, 0xDE00 }; | |
133 EXPECT_EQ(Font::Simple, Font::characterRangeCodePath(c10, 2)); | |
134 | |
135 static UChar c11[] = { 0xDB40, 0xDCFF }; | |
136 EXPECT_EQ(Font::Simple, Font::characterRangeCodePath(c11, 2)); | |
137 static UChar c12[] = { 0xDB40, 0xDD00 }; | |
138 EXPECT_EQ(Font::Complex, Font::characterRangeCodePath(c12, 2)); | |
139 static UChar c13[] = { 0xDB40, 0xDDED }; | |
140 EXPECT_EQ(Font::Complex, Font::characterRangeCodePath(c13, 2)); | |
141 static UChar c14[] = { 0xDB40, 0xDDEF }; | |
142 EXPECT_EQ(Font::Complex, Font::characterRangeCodePath(c14, 2)); | |
143 static UChar c15[] = { 0xDB40, 0xDDF0 }; | |
144 EXPECT_EQ(Font::Simple, Font::characterRangeCodePath(c15, 2)); | |
145 } | |
146 | |
147 TEST(FontTest, TestCharacterRangeCodePathString) | |
148 { | |
149 // Simple-Simple is still simple | |
150 static UChar c1[] = { 0x2FF, 0x2FF }; | |
151 EXPECT_EQ(Font::Simple, Font::characterRangeCodePath(c1, 2)); | |
152 // Complex-Simple is Complex | |
153 static UChar c2[] = { 0x300, 0x2FF }; | |
154 EXPECT_EQ(Font::Complex, Font::characterRangeCodePath(c2, 2)); | |
155 // Simple-Complex is Complex | |
156 static UChar c3[] = { 0x2FF, 0x330 }; | |
157 EXPECT_EQ(Font::Complex, Font::characterRangeCodePath(c3, 2)); | |
158 // Complex-Complex is Complex | |
159 static UChar c4[] = { 0x36F, 0x330 }; | |
160 EXPECT_EQ(Font::Complex, Font::characterRangeCodePath(c4, 2)); | |
161 // SimpleWithGlyphOverflow-Simple is SimpleWithGlyphOverflow | |
162 static UChar c5[] = { 0x1E00, 0x2FF }; | |
163 EXPECT_EQ(Font::SimpleWithGlyphOverflow, Font::characterRangeCodePath(c5, 2)
); | |
164 // Simple-SimpleWithGlyphOverflow is SimpleWithGlyphOverflow | |
165 static UChar c6[] = { 0x2FF, 0x2000 }; | |
166 EXPECT_EQ(Font::SimpleWithGlyphOverflow, Font::characterRangeCodePath(c6, 2)
); | |
167 // SimpleWithGlyphOverflow-Complex is Complex | |
168 static UChar c7[] = { 0x1E00, 0x330 }; | |
169 EXPECT_EQ(Font::Complex, Font::characterRangeCodePath(c7, 2)); | |
170 // Complex-SimpleWithGlyphOverflow is Complex | |
171 static UChar c8[] = { 0x330, 0x2000 }; | |
172 EXPECT_EQ(Font::Complex, Font::characterRangeCodePath(c8, 2)); | |
173 // Surrogate-Complex is Complex | |
174 static UChar c9[] = { 0xD83C, 0xDDE5, 0x330 }; | |
175 EXPECT_EQ(Font::Complex, Font::characterRangeCodePath(c9, 3)); | |
176 // Complex-Surrogate is Complex | |
177 static UChar c10[] = { 0x330, 0xD83C, 0xDDE5 }; | |
178 EXPECT_EQ(Font::Complex, Font::characterRangeCodePath(c10, 3)); | |
179 } | |
180 | |
181 static void TestSpecificUChar32RangeIdeograph(UChar32 rangeStart, UChar32 rangeE
nd) | |
182 { | |
183 EXPECT_FALSE(Font::isCJKIdeograph(rangeStart - 1)); | |
184 EXPECT_TRUE(Font::isCJKIdeograph(rangeStart)); | |
185 EXPECT_TRUE(Font::isCJKIdeograph((UChar32)((uint64_t)rangeStart + (uint64_t)
rangeEnd) / 2)); | |
186 EXPECT_TRUE(Font::isCJKIdeograph(rangeEnd)); | |
187 EXPECT_FALSE(Font::isCJKIdeograph(rangeEnd + 1)); | |
188 } | |
189 | |
190 TEST(FontTest, TestIsCJKIdeograph) | |
191 { | |
192 // The basic CJK Unified Ideographs block. | |
193 TestSpecificUChar32RangeIdeograph(0x4E00, 0x9FFF); | |
194 // CJK Unified Ideographs Extension A. | |
195 TestSpecificUChar32RangeIdeograph(0x3400, 0x4DBF); | |
196 // CJK Unified Ideographs Extension A and Kangxi Radicals. | |
197 TestSpecificUChar32RangeIdeograph(0x2E80, 0x2FDF); | |
198 // CJK Strokes. | |
199 TestSpecificUChar32RangeIdeograph(0x31C0, 0x31EF); | |
200 // CJK Compatibility Ideographs. | |
201 TestSpecificUChar32RangeIdeograph(0xF900, 0xFAFF); | |
202 // CJK Unified Ideographs Extension B. | |
203 TestSpecificUChar32RangeIdeograph(0x20000, 0x2A6DF); | |
204 // CJK Unified Ideographs Extension C. | |
205 // CJK Unified Ideographs Extension D. | |
206 TestSpecificUChar32RangeIdeograph(0x2A700, 0x2B81F); | |
207 // CJK Compatibility Ideographs Supplement. | |
208 TestSpecificUChar32RangeIdeograph(0x2F800, 0x2FA1F); | |
209 } | |
210 | |
211 static void TestSpecificUChar32RangeIdeographSymbol(UChar32 rangeStart, UChar32
rangeEnd) | |
212 { | |
213 EXPECT_FALSE(Font::isCJKIdeographOrSymbol(rangeStart - 1)); | |
214 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(rangeStart)); | |
215 EXPECT_TRUE(Font::isCJKIdeographOrSymbol((UChar32)((uint64_t)rangeStart + (u
int64_t)rangeEnd) / 2)); | |
216 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(rangeEnd)); | |
217 EXPECT_FALSE(Font::isCJKIdeographOrSymbol(rangeEnd + 1)); | |
218 } | |
219 | |
220 TEST(FontTest, TestIsCJKIdeographOrSymbol) | |
221 { | |
222 // CJK Compatibility Ideographs Supplement. | |
223 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2C7)); | |
224 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2CA)); | |
225 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2CB)); | |
226 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2D9)); | |
227 | |
228 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2020)); | |
229 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2021)); | |
230 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2030)); | |
231 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x203B)); | |
232 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x203C)); | |
233 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2042)); | |
234 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2047)); | |
235 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2048)); | |
236 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2049)); | |
237 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2051)); | |
238 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x20DD)); | |
239 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x20DE)); | |
240 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2100)); | |
241 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2103)); | |
242 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2105)); | |
243 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2109)); | |
244 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x210A)); | |
245 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2113)); | |
246 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2116)); | |
247 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2121)); | |
248 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x212B)); | |
249 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x213B)); | |
250 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2150)); | |
251 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2151)); | |
252 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2152)); | |
253 | |
254 TestSpecificUChar32RangeIdeographSymbol(0x2156, 0x215A); | |
255 TestSpecificUChar32RangeIdeographSymbol(0x2160, 0x216B); | |
256 TestSpecificUChar32RangeIdeographSymbol(0x2170, 0x217B); | |
257 | |
258 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x217F)); | |
259 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2189)); | |
260 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2307)); | |
261 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2312)); | |
262 | |
263 EXPECT_FALSE(Font::isCJKIdeographOrSymbol(0x23BD)); | |
264 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x23BE)); | |
265 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x23C4)); | |
266 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x23CC)); | |
267 EXPECT_FALSE(Font::isCJKIdeographOrSymbol(0x23CD)); | |
268 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x23CE)); | |
269 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2423)); | |
270 | |
271 TestSpecificUChar32RangeIdeographSymbol(0x2460, 0x2492); | |
272 TestSpecificUChar32RangeIdeographSymbol(0x249C, 0x24FF); | |
273 | |
274 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x25A0)); | |
275 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x25A1)); | |
276 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x25A2)); | |
277 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x25AA)); | |
278 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x25AB)); | |
279 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x25B1)); | |
280 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x25B2)); | |
281 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x25B3)); | |
282 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x25B6)); | |
283 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x25B7)); | |
284 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x25BC)); | |
285 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x25BD)); | |
286 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x25C0)); | |
287 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x25C1)); | |
288 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x25C6)); | |
289 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x25C7)); | |
290 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x25C9)); | |
291 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x25CB)); | |
292 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x25CC)); | |
293 | |
294 TestSpecificUChar32RangeIdeographSymbol(0x25CE, 0x25D3); | |
295 TestSpecificUChar32RangeIdeographSymbol(0x25E2, 0x25E6); | |
296 | |
297 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x25EF)); | |
298 | |
299 TestSpecificUChar32RangeIdeographSymbol(0x2600, 0x2603); | |
300 | |
301 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2605)); | |
302 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2606)); | |
303 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x260E)); | |
304 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2616)); | |
305 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2617)); | |
306 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2640)); | |
307 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2642)); | |
308 | |
309 TestSpecificUChar32RangeIdeographSymbol(0x2660, 0x266F); | |
310 TestSpecificUChar32RangeIdeographSymbol(0x2672, 0x267D); | |
311 | |
312 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x26A0)); | |
313 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x26BD)); | |
314 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x26BE)); | |
315 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2713)); | |
316 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x271A)); | |
317 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x273F)); | |
318 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2740)); | |
319 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2756)); | |
320 | |
321 TestSpecificUChar32RangeIdeographSymbol(0x2776, 0x277F); | |
322 | |
323 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x2B1A)); | |
324 | |
325 TestSpecificUChar32RangeIdeographSymbol(0x2FF0, 0x302F); | |
326 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x3031)); | |
327 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x312F)); | |
328 EXPECT_FALSE(Font::isCJKIdeographOrSymbol(0x3130)); | |
329 | |
330 EXPECT_FALSE(Font::isCJKIdeographOrSymbol(0x318F)); | |
331 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x3190)); | |
332 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x319F)); | |
333 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x31BF)); | |
334 | |
335 EXPECT_FALSE(Font::isCJKIdeographOrSymbol(0x31FF)); | |
336 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x3200)); | |
337 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x3300)); | |
338 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x33FF)); | |
339 | |
340 TestSpecificUChar32RangeIdeographSymbol(0xF860, 0xF862); | |
341 TestSpecificUChar32RangeIdeographSymbol(0xFE30, 0xFE4F); | |
342 | |
343 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0xFE10)); | |
344 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0xFE11)); | |
345 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0xFE12)); | |
346 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0xFE19)); | |
347 | |
348 EXPECT_FALSE(Font::isCJKIdeographOrSymbol(0xFF0D)); | |
349 EXPECT_FALSE(Font::isCJKIdeographOrSymbol(0xFF1B)); | |
350 EXPECT_FALSE(Font::isCJKIdeographOrSymbol(0xFF1C)); | |
351 EXPECT_FALSE(Font::isCJKIdeographOrSymbol(0xFF1E)); | |
352 | |
353 TestSpecificUChar32RangeIdeographSymbol(0xFF00, 0xFFEF); | |
354 | |
355 EXPECT_TRUE(Font::isCJKIdeographOrSymbol(0x1F100)); | |
356 | |
357 TestSpecificUChar32RangeIdeographSymbol(0x1F110, 0x1F129); | |
358 TestSpecificUChar32RangeIdeographSymbol(0x1F130, 0x1F149); | |
359 TestSpecificUChar32RangeIdeographSymbol(0x1F150, 0x1F169); | |
360 TestSpecificUChar32RangeIdeographSymbol(0x1F170, 0x1F189); | |
361 TestSpecificUChar32RangeIdeographSymbol(0x1F200, 0x1F6FF); | |
362 } | |
363 | |
364 } // namespace WebCore | |
365 | |
OLD | NEW |