1from PyObjCTools.TestSupport import * 2import array 3from CoreFoundation import * 4import CoreFoundation 5from Foundation import NSCFString 6 7 8class TestString (TestCase): 9 def testType(self): 10 self.failUnless(CFStringRef is NSCFString) 11 12 def testTypeID(self): 13 v = CFStringGetTypeID() 14 self.failUnless(isinstance(v, (int, long))) 15 16 def testNoPascalStrings(self): 17 self.failIf(hasattr(CoreFoundation, 'CFStringCreateWithPascalString')) 18 self.failIf(hasattr(CoreFoundation, 'CFStringCreateWithPascalStringNoCopy')) 19 self.failIf(hasattr(CoreFoundation, 'CFStringGetPascalString')) 20 self.failIf(hasattr(CoreFoundation, 'CFStringGetPascalStringPtr')) 21 self.failIf(hasattr(CoreFoundation, 'CFStringAppendPascalString')) 22 23 def testCreation(self): 24 s = CFStringCreateWithCString(None, "hello world", kCFStringEncodingASCII) 25 self.failUnless(isinstance(s, objc.pyobjc_unicode)) 26 self.failUnless(isinstance(s, unicode)) 27 self.assertEquals(s, u"hello world") 28 29 s = CFStringCreateWithBytes(None, "hello world", 5, kCFStringEncodingASCII, False) 30 self.failUnless(isinstance(s, objc.pyobjc_unicode)) 31 self.failUnless(isinstance(s, unicode)) 32 self.assertEquals(s, u"hello") 33 34 s = CFStringCreateWithCharacters(None, u"HELLO", 5) 35 self.failUnless(isinstance(s, objc.pyobjc_unicode)) 36 self.failUnless(isinstance(s, unicode)) 37 self.assertEquals(s, u"HELLO") 38 39 # NOTE: the deallocator must be kCFAllocatorNull 40 s = CFStringCreateWithCStringNoCopy(None, "hello world", 41 kCFStringEncodingASCII, kCFAllocatorNull) 42 self.failUnless(isinstance(s, objc.pyobjc_unicode)) 43 self.failUnless(isinstance(s, unicode)) 44 self.assertEquals(s, u"hello world") 45 46 47 s = CFStringCreateWithBytesNoCopy(None, "hello world", 5, kCFStringEncodingASCII, False, kCFAllocatorNull) 48 self.failUnless(isinstance(s, objc.pyobjc_unicode)) 49 self.failUnless(isinstance(s, unicode)) 50 self.assertEquals(s, u"hello") 51 52 s = CFStringCreateWithCharactersNoCopy(None, u"HELLO", 5, kCFAllocatorNull) 53 self.failUnless(isinstance(s, objc.pyobjc_unicode)) 54 self.failUnless(isinstance(s, unicode)) 55 self.assertEquals(s, u"HELLO") 56 57 del s 58 59 s = CFStringCreateWithSubstring(None, 60 u"Hello world", CFRange(2, 4)) 61 self.failUnless(isinstance(s, objc.pyobjc_unicode)) 62 self.assertEquals(s, u"Hello world"[2:6]) 63 64 s = CFStringCreateCopy(None, u"foo the bar") 65 self.failUnless(isinstance(s, objc.pyobjc_unicode)) 66 self.assertEquals(s, u"foo the bar") 67 68 s = CFStringCreateWithFormat(None, None, "hello %s = %d", 69 "foo", 52) 70 self.failUnless(isinstance(s, objc.pyobjc_unicode)) 71 self.assertEquals(s, u"hello foo = 52") 72 73 self.failIf(hasattr(CoreFoundation, 74 "CFStringCreateWithFormatAndArguments")) 75 76 def testCreateMutable(self): 77 s = CFStringCreateMutable(None, 0) 78 self.failUnless(isinstance(s, objc.pyobjc_unicode)) 79 self.assertEquals(s, u"") 80 81 s = CFStringCreateMutableCopy(None, 0, u"foobar") 82 self.failUnless(isinstance(s, objc.pyobjc_unicode)) 83 self.assertEquals(s, u"foobar") 84 85 b = array.array('u', u"hello world") 86 s = CFStringCreateMutableWithExternalCharactersNoCopy( 87 None, b, len(b), len(b), kCFAllocatorNull) 88 self.failUnless(isinstance(s, objc.pyobjc_unicode)) 89 self.assertEquals(s, u"hello world") 90 91 b[0] = u'H' 92 93 94 # The objc_unicode proxy is immutable 95 self.assertEquals(s, u"hello world") 96 97 # The changed string can be accessed directly though: 98 s = s.nsstring() 99 self.assertEquals(s, u"Hello world") 100 101 b2 = array.array('u', u" " * 40) 102 CFStringSetExternalCharactersNoCopy(s, b2, len(s), 40) 103 self.assertEquals(s, ' ' * len(b)) 104 b2[0] = u'X' 105 self.assertEquals(s, 'X' + (' ' * (len(b)-1))) 106 107 def testFunctions(self): 108 v = CFStringGetLength(u"bla bla") 109 self.assertEquals(v, 7) 110 111 v = CFStringGetCharacterAtIndex(u"zing", 2) 112 self.failUnless(isinstance(v, unicode)) 113 self.failIf(isinstance(v, objc.pyobjc_unicode)) 114 self.assertEquals(v, u'n') 115 116 v = CFStringGetCharacters(u"foo", CFRange(0, 3), None) 117 self.failUnless(isinstance(v, unicode)) 118 self.failIf(isinstance(v, objc.pyobjc_unicode)) 119 self.assertEquals(v, u'foo') 120 121 ok, buf = CFStringGetCString(u"sing along", None, 100, kCFStringEncodingUTF8) 122 self.failUnless(ok) 123 124 # Annoyingly metadata cannot represent the exact interface 125 if '\0' in buf: 126 buf = buf[:buf.index('\0')] 127 self.assertEquals(buf, 'sing along') 128 self.failUnless(isinstance(buf, str)) 129 130 s = CFStringGetCStringPtr(u"apenootjes", kCFStringEncodingASCII) 131 if s is not objc.NULL: 132 self.assertEquals(s, "apenootjes") 133 self.failUnless(isinstance(s, str)) 134 135 s = CFStringGetCharactersPtr(u"apenootjes") 136 if s is not objc.NULL: 137 self.assertEquals(s, "apenootjes") 138 self.failUnless(isinstance(s, unicode)) 139 140 idx, buf, used = CFStringGetBytes(u"apenootjes", 141 CFRange(1, 4), kCFStringEncodingASCII, 142 chr(0), True, None, 50, None) 143 self.assertEquals(idx, 4) 144 self.failUnless(isinstance(buf, str)) 145 self.assertEquals(buf, 'peno') 146 self.assertEquals(used, 4) 147 148 s = CFStringCreateFromExternalRepresentation(None, 149 buffer('hello world'), kCFStringEncodingUTF8) 150 self.failUnless(isinstance(s, objc.pyobjc_unicode)) 151 self.assertEquals(s, u"hello world") 152 153 data = CFStringCreateExternalRepresentation(None, s, 154 kCFStringEncodingUTF16BE, chr(0)) 155 self.failUnless(isinstance(data, CFDataRef)) 156 val = CFDataGetBytes(data, (0, CFDataGetLength(data)), None) 157 self.assertEquals(val, 158 '\0h\0e\0l\0l\0o\0 \0w\0o\0r\0l\0d') 159 160 v = CFStringGetSmallestEncoding(s) 161 self.failUnless(isinstance(v, (int, long))) 162 v = CFStringGetFastestEncoding(s) 163 self.failUnless(isinstance(v, (int, long))) 164 v = CFStringGetSystemEncoding() 165 self.failUnless(isinstance(v, (int, long))) 166 v = CFStringGetMaximumSizeForEncoding(100, kCFStringEncodingUTF8) 167 self.failUnless(isinstance(v, (int, long))) 168 169 ok, buf = CFStringGetFileSystemRepresentation(u"/path/to/nowhere.txt", 170 None, 100) 171 self.failUnless(ok) 172 if '\0' in buf: 173 buf = buf[:buf.index('\0')] 174 self.assertEquals(buf, '/path/to/nowhere.txt') 175 self.failUnless(isinstance(buf, str)) 176 177 idx = CFStringGetMaximumSizeOfFileSystemRepresentation(u"/tmp") 178 self.failUnless(isinstance(idx, (int, long))) 179 180 s = CFStringCreateWithFileSystemRepresentation(None, "/tmp") 181 self.failUnless(isinstance(s, objc.pyobjc_unicode)) 182 self.assertEquals(s, u"/tmp") 183 self.assertRaises((TypeError, ValueError), 184 CFStringCreateWithFileSystemRepresentation, None, u"/tmp") 185 186 187 r = CFStringCompareWithOptionsAndLocale( 188 u"aas", u"noot", 189 CFRange(0, 3), 190 kCFCompareBackwards, CFLocaleCopyCurrent()) 191 self.assertEquals(r, kCFCompareLessThan) 192 193 r = CFStringCompareWithOptions(u"aap", u"noot", CFRange(0, 3), 0) 194 self.assertEquals(r, kCFCompareLessThan) 195 196 r = CFStringCompare(u"aap", u"AAP", kCFCompareCaseInsensitive) 197 self.assertEquals(r, kCFCompareEqualTo) 198 199 found, rng = CFStringFindWithOptionsAndLocale( 200 u"the longer string", u"longer", 201 CFRange(0, 17), 0, CFLocaleCopyCurrent(), None) 202 self.failUnless(found is True) 203 self.failUnless(isinstance(rng, CFRange)) 204 self.assertEquals(rng, CFRange(4, 6)) 205 206 found, rng = CFStringFindWithOptions( 207 u"the longer string", u"longer", 208 CFRange(0, 17), 0, None) 209 self.failUnless(found is True) 210 self.failUnless(isinstance(rng, CFRange)) 211 self.assertEquals(rng, CFRange(4, 6)) 212 213 arr = CFStringCreateArrayWithFindResults( 214 None, u"word a world a world", 215 u"world", CFRange(0, 20), 0) 216 self.failUnless(isinstance(arr, CFArrayRef)) 217 self.assertEquals(len(arr), 2) 218 219 rng = CFStringFind("hello world", "world", 0) 220 self.assertEquals(rng, CFRange(6, 5)) 221 222 ok = CFStringHasPrefix(u"hello", u"he") 223 self.failUnless(ok is True) 224 ok = CFStringHasPrefix(u"hello", u"ge") 225 self.failUnless(ok is False) 226 227 ok = CFStringHasSuffix(u"hello", "lo") 228 self.failUnless(ok is True) 229 230 rng = CFStringGetRangeOfComposedCharactersAtIndex( 231 u"hello world", 5) 232 self.failUnless(isinstance(rng, CFRange)) 233 234 found, rng = CFStringFindCharacterFromSet("hello world", 235 CFCharacterSetGetPredefined(kCFCharacterSetWhitespace), 236 CFRange(0, 12), 0, None) 237 self.failUnless(found is True) 238 self.failUnless(isinstance(rng, CFRange)) 239 240 lineBeginIndex, lineEndIndex, contentsEndIndex = CFStringGetLineBounds( 241 u"hello\n\nworld", CFRange(0, 12), None, None, None) 242 self.assertEquals(lineBeginIndex, 0) 243 self.assertEquals(lineEndIndex, 12) 244 self.assertEquals(contentsEndIndex, 12) 245 246 paraBeginIndex, paraEndIndex, contentsEndIndex = CFStringGetParagraphBounds( 247 u"hello\n\nworld", CFRange(0, 12), None, None, None) 248 self.assertEquals(paraBeginIndex, 0) 249 self.assertEquals(paraEndIndex, 12) 250 self.assertEquals(contentsEndIndex, 12) 251 252 result = CFStringCreateByCombiningStrings(None, 253 [u"hello", u"world"], "//") 254 self.assertEquals(result, u"hello//world") 255 256 result = CFStringCreateArrayBySeparatingStrings(None, 257 "hello world", " ") 258 self.assertEquals(result, ["hello", "world"]) 259 260 v = CFStringGetIntValue(u"1000") 261 self.assertEquals(v, 1000) 262 263 v = CFStringGetDoubleValue(u"1000") 264 self.assertEquals(v, 1000.0) 265 266 v = CFStringGetDoubleValue(u"1000.5") 267 self.assertEquals(v, 1000.5) 268 269 def testMutableFunctions(self): 270 s = CFStringCreateMutable(None, 0) 271 # Ensure that we actually see updates: 272 s = s.nsstring() 273 274 CFStringAppendCharacters(s, u"hel", 3) 275 self.assertEquals(s, u"hel") 276 277 CFStringAppendCString(s, "lo world", kCFStringEncodingUTF8) 278 self.assertEquals(s, u"hello world") 279 280 CFStringAppendFormat(s, None, ": %s = %d", "x", 99) 281 self.assertEquals(s, u"hello world: x = 99") 282 283 self.failIf(hasattr(CoreFoundation, 'CFStringAppendFormatAndArguments')) 284 285 CFStringInsert(s, 2, "--") 286 self.assertEquals(s, u"he--llo world: x = 99") 287 288 CFStringDelete(s, CFRange(0, 8)) 289 self.assertEquals(s, u"world: x = 99") 290 291 CFStringReplace(s, CFRange(0, 4), "WOR") 292 self.assertEquals(s, u"WORd: x = 99") 293 294 CFStringReplaceAll(s, "WHOOPS") 295 self.assertEquals(s, u"WHOOPS") 296 297 CFStringReplaceAll(s, u"BLAblaBLAblaBLA") 298 self.assertEquals(s, u"BLAblaBLAblaBLA") 299 300 CFStringFindAndReplace(s, "BL", " fo ", CFRange(0, 15), 0) 301 self.assertEquals(s, " fo Abla fo Abla fo A") 302 303 CFStringReplaceAll(s, u"abc") 304 CFStringPad(s, " ", 9, 0) 305 self.assertEquals(s, u"abc ") 306 307 CFStringReplaceAll(s, u"abc") 308 CFStringPad(s, ". ", 9, 1) 309 self.assertEquals(s, u"abc . . .") 310 311 CFStringReplaceAll(s, u"abcdef") 312 CFStringPad(s, ". ", 3, 0) 313 self.assertEquals(s, u"abc") 314 315 CFStringReplaceAll(s, u"aHelloaaa") 316 CFStringTrim(s, u'a') 317 self.assertEquals(s, u"Hello") 318 319 CFStringReplaceAll(s, u"* * * *abc * ") 320 CFStringTrim(s, u'* ') 321 self.assertEquals(s, u"*abc ") 322 323 324 CFStringReplaceAll(s, u" \tHello world \t ") 325 CFStringTrimWhitespace(s) 326 self.assertEquals(s, u"Hello world") 327 328 329 CFStringReplaceAll(s, u"AbC") 330 CFStringLowercase(s, CFLocaleCopyCurrent()) 331 self.assertEquals(s, u'abc') 332 333 CFStringReplaceAll(s, u"AbC") 334 CFStringUppercase(s, CFLocaleCopyCurrent()) 335 self.assertEquals(s, u'ABC') 336 337 CFStringReplaceAll(s, u"hello world") 338 CFStringCapitalize(s, CFLocaleCopyCurrent()) 339 self.assertEquals(s, u'Hello World') 340 341 CFStringNormalize(s, kCFStringNormalizationFormKD) 342 self.assertEquals(s, u'Hello World') 343 344 CFStringFold(s, kCFCompareCaseInsensitive, CFLocaleCopyCurrent()) 345 self.assertEquals(s, u'hello world') 346 347 CFStringReplaceAll(s, u"A C") 348 ok, rng = CFStringTransform(s, CFRange(0, 3), kCFStringTransformToXMLHex, 349 False) 350 self.assertEquals(s, 'A C') 351 self.failUnless(ok is True) 352 self.assertEquals(rng, CFRange(0, 3)) 353 354 def testStringEncoding(self): 355 ok = CFStringIsEncodingAvailable(kCFStringEncodingUTF8) 356 self.failUnless(ok is True) 357 358 encodings = CFStringGetListOfAvailableEncodings() 359 self.failUnless(isinstance(encodings, objc.varlist)) 360 for e in encodings: 361 if e == kCFStringEncodingInvalidId: 362 break 363 self.failUnless(isinstance(e, (int, long))) 364 365 s = CFStringGetNameOfEncoding(kCFStringEncodingUTF8) 366 self.assertEquals(s, 'Unicode (UTF-8)') 367 368 v = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingUTF8) 369 self.failUnless(isinstance(v, (int, long))) 370 371 t = CFStringConvertNSStringEncodingToEncoding(v) 372 self.assertEquals(t, kCFStringEncodingUTF8) 373 374 v = CFStringConvertEncodingToWindowsCodepage(kCFStringEncodingISOLatin1) 375 self.failUnless(isinstance(v, (int, long))) 376 377 t = CFStringConvertWindowsCodepageToEncoding(v) 378 self.assertEquals(t, kCFStringEncodingISOLatin1) 379 380 v = CFStringConvertEncodingToIANACharSetName(kCFStringEncodingUTF8) 381 self.failUnless(isinstance(v, unicode)) 382 self.assertEquals(v, 'UTF-8') 383 384 t = CFStringConvertIANACharSetNameToEncoding(v) 385 self.assertEquals(t, kCFStringEncodingUTF8) 386 387 v = CFStringGetMostCompatibleMacStringEncoding(kCFStringEncodingWindowsLatin1) 388 self.assertEquals(v, kCFStringEncodingMacRoman) 389 390 391 392 393 394 395 396 397 398 399 def testNoInlineBuffer(self): 400 self.failIf(hasattr(CoreFoundation, 'CFStringInlineBuffer')) 401 self.failIf(hasattr(CoreFoundation, 'CFStringInitInlineBuffer')) 402 self.failIf(hasattr(CoreFoundation, 'CFStringGetCharacterFromInlineBuffer')) 403 404 405 def testConstants(self): 406 self.failUnless(kCFStringEncodingInvalidId == 0xffffffff) 407 self.failUnless(kCFStringEncodingMacRoman == 0) 408 self.failUnless(kCFStringEncodingWindowsLatin1 == 0x0500) 409 self.failUnless(kCFStringEncodingISOLatin1 == 0x0201) 410 self.failUnless(kCFStringEncodingNextStepLatin == 0x0B01) 411 self.failUnless(kCFStringEncodingASCII == 0x0600) 412 self.failUnless(kCFStringEncodingUnicode == 0x0100) 413 self.failUnless(kCFStringEncodingUTF8 == 0x08000100) 414 self.failUnless(kCFStringEncodingNonLossyASCII == 0x0BFF) 415 self.failUnless(kCFStringEncodingUTF16 == 0x0100) 416 self.failUnless(kCFStringEncodingUTF16BE == 0x10000100) 417 self.failUnless(kCFStringEncodingUTF16LE == 0x14000100) 418 self.failUnless(kCFStringEncodingUTF32 == 0x0c000100) 419 self.failUnless(kCFStringEncodingUTF32BE == 0x18000100) 420 self.failUnless(kCFStringEncodingUTF32LE == 0x1c000100) 421 422 self.failUnless(kCFCompareCaseInsensitive == 1) 423 self.failUnless(kCFCompareBackwards == 4) 424 self.failUnless(kCFCompareAnchored == 8) 425 self.failUnless(kCFCompareNonliteral == 16) 426 self.failUnless(kCFCompareLocalized == 32) 427 self.failUnless(kCFCompareNumerically == 64) 428 self.failUnless(kCFCompareDiacriticInsensitive == 128) 429 self.failUnless(kCFCompareWidthInsensitive == 256) 430 self.failUnless(kCFCompareForcedOrdering == 512) 431 432 self.failUnless(kCFStringNormalizationFormD == 0) 433 self.failUnless(kCFStringNormalizationFormKD == 1) 434 self.failUnless(kCFStringNormalizationFormC == 2) 435 self.failUnless(kCFStringNormalizationFormKC == 3) 436 437 438 self.failUnless(isinstance(kCFStringTransformStripCombiningMarks, unicode)) 439 self.failUnless(isinstance(kCFStringTransformToLatin, unicode)) 440 self.failUnless(isinstance(kCFStringTransformFullwidthHalfwidth, unicode)) 441 self.failUnless(isinstance(kCFStringTransformLatinKatakana, unicode)) 442 self.failUnless(isinstance(kCFStringTransformLatinHiragana, unicode)) 443 self.failUnless(isinstance(kCFStringTransformHiraganaKatakana, unicode)) 444 self.failUnless(isinstance(kCFStringTransformMandarinLatin, unicode)) 445 self.failUnless(isinstance(kCFStringTransformLatinHangul, unicode)) 446 self.failUnless(isinstance(kCFStringTransformLatinArabic, unicode)) 447 self.failUnless(isinstance(kCFStringTransformLatinHebrew, unicode)) 448 self.failUnless(isinstance(kCFStringTransformLatinThai, unicode)) 449 self.failUnless(isinstance(kCFStringTransformLatinCyrillic, unicode)) 450 self.failUnless(isinstance(kCFStringTransformLatinGreek, unicode)) 451 self.failUnless(isinstance(kCFStringTransformToXMLHex, unicode)) 452 self.failUnless(isinstance(kCFStringTransformToUnicodeName, unicode)) 453 self.failUnless(isinstance(kCFStringTransformStripDiacritics, unicode)) 454 455 456 def testNoPrivate(self): 457 self.failIf(hasattr(CoreFoundation, 'CFShow')) 458 self.failIf(hasattr(CoreFoundation, 'CFShowStr')) 459 self.failIf(hasattr(CoreFoundation, '__CFStringMakeConstantString')) 460 461 def testCFSTR(self): 462 v = CFSTR(u"hello") 463 self.failUnless(isinstance(v, unicode)) 464 465 466 467class TestStringEncodingExt (TestCase): 468 def testConstants(self): 469 self.failUnless( kCFStringEncodingMacJapanese == 1 ) 470 self.failUnless( kCFStringEncodingMacChineseTrad == 2 ) 471 self.failUnless( kCFStringEncodingMacKorean == 3 ) 472 self.failUnless( kCFStringEncodingMacArabic == 4 ) 473 self.failUnless( kCFStringEncodingMacHebrew == 5 ) 474 self.failUnless( kCFStringEncodingMacGreek == 6 ) 475 self.failUnless( kCFStringEncodingMacCyrillic == 7 ) 476 self.failUnless( kCFStringEncodingMacDevanagari == 9 ) 477 self.failUnless( kCFStringEncodingMacGurmukhi == 10 ) 478 self.failUnless( kCFStringEncodingMacGujarati == 11 ) 479 self.failUnless( kCFStringEncodingMacOriya == 12 ) 480 self.failUnless( kCFStringEncodingMacBengali == 13 ) 481 self.failUnless( kCFStringEncodingMacTamil == 14 ) 482 self.failUnless( kCFStringEncodingMacTelugu == 15 ) 483 self.failUnless( kCFStringEncodingMacKannada == 16 ) 484 self.failUnless( kCFStringEncodingMacMalayalam == 17 ) 485 self.failUnless( kCFStringEncodingMacSinhalese == 18 ) 486 self.failUnless( kCFStringEncodingMacBurmese == 19 ) 487 self.failUnless( kCFStringEncodingMacKhmer == 20 ) 488 self.failUnless( kCFStringEncodingMacThai == 21 ) 489 self.failUnless( kCFStringEncodingMacLaotian == 22 ) 490 self.failUnless( kCFStringEncodingMacGeorgian == 23 ) 491 self.failUnless( kCFStringEncodingMacArmenian == 24 ) 492 self.failUnless( kCFStringEncodingMacChineseSimp == 25 ) 493 self.failUnless( kCFStringEncodingMacTibetan == 26 ) 494 self.failUnless( kCFStringEncodingMacMongolian == 27 ) 495 self.failUnless( kCFStringEncodingMacEthiopic == 28 ) 496 self.failUnless( kCFStringEncodingMacCentralEurRoman == 29 ) 497 self.failUnless( kCFStringEncodingMacVietnamese == 30 ) 498 self.failUnless( kCFStringEncodingMacExtArabic == 31 ) 499 self.failUnless( kCFStringEncodingMacSymbol == 33 ) 500 self.failUnless( kCFStringEncodingMacDingbats == 34 ) 501 self.failUnless( kCFStringEncodingMacTurkish == 35 ) 502 self.failUnless( kCFStringEncodingMacCroatian == 36 ) 503 self.failUnless( kCFStringEncodingMacIcelandic == 37 ) 504 self.failUnless( kCFStringEncodingMacRomanian == 38 ) 505 self.failUnless( kCFStringEncodingMacCeltic == 39 ) 506 self.failUnless( kCFStringEncodingMacGaelic == 40, ) 507 self.failUnless( kCFStringEncodingMacFarsi == 0x8C ) 508 self.failUnless( kCFStringEncodingMacUkrainian == 0x98 ) 509 self.failUnless( kCFStringEncodingMacInuit == 0xEC ) 510 self.failUnless( kCFStringEncodingMacVT100 == 0xFC ) 511 self.failUnless( kCFStringEncodingMacHFS == 0xFF ) 512 self.failUnless( kCFStringEncodingISOLatin2 == 0x0202 ) 513 self.failUnless( kCFStringEncodingISOLatin3 == 0x0203 ) 514 self.failUnless( kCFStringEncodingISOLatin4 == 0x0204 ) 515 self.failUnless( kCFStringEncodingISOLatinCyrillic == 0x0205 ) 516 self.failUnless( kCFStringEncodingISOLatinArabic == 0x0206 ) 517 self.failUnless( kCFStringEncodingISOLatinGreek == 0x0207 ) 518 self.failUnless( kCFStringEncodingISOLatinHebrew == 0x0208 ) 519 self.failUnless( kCFStringEncodingISOLatin5 == 0x0209 ) 520 self.failUnless( kCFStringEncodingISOLatin6 == 0x020A ) 521 self.failUnless( kCFStringEncodingISOLatinThai == 0x020B ) 522 self.failUnless( kCFStringEncodingISOLatin7 == 0x020D ) 523 self.failUnless( kCFStringEncodingISOLatin8 == 0x020E ) 524 self.failUnless( kCFStringEncodingISOLatin9 == 0x020F ) 525 self.failUnless( kCFStringEncodingISOLatin10 == 0x0210 ) 526 self.failUnless( kCFStringEncodingDOSLatinUS == 0x0400 ) 527 self.failUnless( kCFStringEncodingDOSGreek == 0x0405 ) 528 self.failUnless( kCFStringEncodingDOSBalticRim == 0x0406 ) 529 self.failUnless( kCFStringEncodingDOSLatin1 == 0x0410 ) 530 self.failUnless( kCFStringEncodingDOSGreek1 == 0x0411 ) 531 self.failUnless( kCFStringEncodingDOSLatin2 == 0x0412 ) 532 self.failUnless( kCFStringEncodingDOSCyrillic == 0x0413 ) 533 self.failUnless( kCFStringEncodingDOSTurkish == 0x0414 ) 534 self.failUnless( kCFStringEncodingDOSPortuguese == 0x0415 ) 535 self.failUnless( kCFStringEncodingDOSIcelandic == 0x0416 ) 536 self.failUnless( kCFStringEncodingDOSHebrew == 0x0417 ) 537 self.failUnless( kCFStringEncodingDOSCanadianFrench == 0x0418 ) 538 self.failUnless( kCFStringEncodingDOSArabic == 0x0419 ) 539 self.failUnless( kCFStringEncodingDOSNordic == 0x041A ) 540 self.failUnless( kCFStringEncodingDOSRussian == 0x041B ) 541 self.failUnless( kCFStringEncodingDOSGreek2 == 0x041C ) 542 self.failUnless( kCFStringEncodingDOSThai == 0x041D ) 543 self.failUnless( kCFStringEncodingDOSJapanese == 0x0420 ) 544 self.failUnless( kCFStringEncodingDOSChineseSimplif == 0x0421 ) 545 self.failUnless( kCFStringEncodingDOSKorean == 0x0422 ) 546 self.failUnless( kCFStringEncodingDOSChineseTrad == 0x0423 ) 547 self.failUnless( kCFStringEncodingWindowsLatin2 == 0x0501 ) 548 self.failUnless( kCFStringEncodingWindowsCyrillic == 0x0502 ) 549 self.failUnless( kCFStringEncodingWindowsGreek == 0x0503 ) 550 self.failUnless( kCFStringEncodingWindowsLatin5 == 0x0504 ) 551 self.failUnless( kCFStringEncodingWindowsHebrew == 0x0505 ) 552 self.failUnless( kCFStringEncodingWindowsArabic == 0x0506 ) 553 self.failUnless( kCFStringEncodingWindowsBalticRim == 0x0507 ) 554 self.failUnless( kCFStringEncodingWindowsVietnamese == 0x0508 ) 555 self.failUnless( kCFStringEncodingWindowsKoreanJohab == 0x0510 ) 556 self.failUnless( kCFStringEncodingANSEL == 0x0601 ) 557 self.failUnless( kCFStringEncodingJIS_X0201_76 == 0x0620 ) 558 self.failUnless( kCFStringEncodingJIS_X0208_83 == 0x0621 ) 559 self.failUnless( kCFStringEncodingJIS_X0208_90 == 0x0622 ) 560 self.failUnless( kCFStringEncodingJIS_X0212_90 == 0x0623 ) 561 self.failUnless( kCFStringEncodingJIS_C6226_78 == 0x0624 ) 562 self.failUnless( kCFStringEncodingShiftJIS_X0213 == 0x0628 ) 563 self.failUnless( kCFStringEncodingShiftJIS_X0213_MenKuTen == 0x0629 ) 564 self.failUnless( kCFStringEncodingGB_2312_80 == 0x0630 ) 565 self.failUnless( kCFStringEncodingGBK_95 == 0x0631 ) 566 self.failUnless( kCFStringEncodingGB_18030_2000 == 0x0632 ) 567 self.failUnless( kCFStringEncodingKSC_5601_87 == 0x0640 ) 568 self.failUnless( kCFStringEncodingKSC_5601_92_Johab == 0x0641 ) 569 self.failUnless( kCFStringEncodingCNS_11643_92_P1 == 0x0651 ) 570 self.failUnless( kCFStringEncodingCNS_11643_92_P2 == 0x0652 ) 571 self.failUnless( kCFStringEncodingCNS_11643_92_P3 == 0x0653 ) 572 self.failUnless( kCFStringEncodingISO_2022_JP == 0x0820 ) 573 self.failUnless( kCFStringEncodingISO_2022_JP_2 == 0x0821 ) 574 self.failUnless( kCFStringEncodingISO_2022_JP_1 == 0x0822 ) 575 self.failUnless( kCFStringEncodingISO_2022_JP_3 == 0x0823 ) 576 self.failUnless( kCFStringEncodingISO_2022_CN == 0x0830 ) 577 self.failUnless( kCFStringEncodingISO_2022_CN_EXT == 0x0831 ) 578 self.failUnless( kCFStringEncodingISO_2022_KR == 0x0840 ) 579 self.failUnless( kCFStringEncodingEUC_JP == 0x0920 ) 580 self.failUnless( kCFStringEncodingEUC_CN == 0x0930 ) 581 self.failUnless( kCFStringEncodingEUC_TW == 0x0931 ) 582 self.failUnless( kCFStringEncodingEUC_KR == 0x0940 ) 583 self.failUnless( kCFStringEncodingShiftJIS == 0x0A01 ) 584 self.failUnless( kCFStringEncodingKOI8_R == 0x0A02 ) 585 self.failUnless( kCFStringEncodingBig5 == 0x0A03 ) 586 self.failUnless( kCFStringEncodingMacRomanLatin1 == 0x0A04 ) 587 self.failUnless( kCFStringEncodingHZ_GB_2312 == 0x0A05 ) 588 self.failUnless( kCFStringEncodingBig5_HKSCS_1999 == 0x0A06 ) 589 self.failUnless( kCFStringEncodingVISCII == 0x0A07 ) 590 self.failUnless( kCFStringEncodingKOI8_U == 0x0A08 ) 591 self.failUnless( kCFStringEncodingBig5_E == 0x0A09 ) 592 self.failUnless( kCFStringEncodingNextStepJapanese == 0x0B02 ) 593 self.failUnless( kCFStringEncodingEBCDIC_US == 0x0C01 ) 594 self.failUnless( kCFStringEncodingEBCDIC_CP037 == 0x0C02 ) 595 self.failUnless( kCFStringEncodingShiftJIS_X0213_00 == 0x0628 ) 596 597if __name__ == "__main__": 598 main() 599