@@ -35,11 +35,15 @@ static OFString *module = @"OFString"; static OFString* whitespace[] = { @" \r \t\n\t \tasd \t \t\t\r\n", @" \t\t \t\t \t \t" }; -static of_unichar_t ucstr[] = { 'f', 0xF6, 0xF6, 'b', 0xE4, 'r', 0 }; +static of_unichar_t ucstr[] = { 'f', 0xF6, 0xF6, 'b', 0xE4, 'r', 0x1F03A, 0 }; +static of_unichar_t sucstr[] = { + 0xFFFE0000, 0x66000000, 0xF6000000, 0xF6000000, 0x62000000, 0xE4000000, + 0x72000000, 0x3AF00100, 0 +}; @interface EntityHandler: OFObject @end @implementation EntityHandler @@ -126,13 +130,19 @@ TEST(@"-[lowercaseString]", R([s[0] upper]) && [[s[0] lowercaseString] isEqual: @"3𝄞1€sät"]) TEST(@"+[stringWithCString:length:]", (s[0] = [OFMutableString stringWithCString: "\xEF\xBB\xBF" "foobar" - length: 6]) && + length: 6]) && [s[0] isEqual: @"foo"]) + TEST(@"+[stringWithUnicodeString:]", + (s[1] = [OFString stringWithUnicodeString: ucstr]) && + [s[1] isEqual: @"fööbär🀺"] && + (s[1] = [OFString stringWithUnicodeString: sucstr]) && + [s[1] isEqual: @"fööbär🀺"]) + TEST(@"+[stringWithContentsOfFile:encoding]", (s[1] = [OFString stringWithContentsOfFile: @"testfile.txt" encoding: OF_STRING_ENCODING_ISO_8859_1]) && [s[1] isEqual: @"testäöü"]) @@ -357,12 +367,12 @@ OFOutOfRangeException, [@"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" @"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" hexadecimalValue]) - TEST(@"-[unicodeString]", (ua = [@"fööbär" unicodeString]) && - !memcmp(ua, ucstr, 7 * sizeof(of_unichar_t)) && R(free(ua))) + TEST(@"-[unicodeString]", (ua = [@"fööbär🀺" unicodeString]) && + !memcmp(ua, ucstr, 8 * sizeof(of_unichar_t)) && R(free(ua))) TEST(@"-[MD5Hash]", [[@"asdfoobar" MD5Hash] isEqual: @"184dce2ec49b5422c7cfd8728864db4c"]) TEST(@"-[SHA1Hash]", [[@"asdfoobar" SHA1Hash]