| 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 |