353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
|
#ifdef OF_HAVE_FILES
TEST(@"+[stringWithContentsOfFile:encoding]", (string = [stringClass
stringWithContentsOfFile: @"testfile.txt"
encoding: OFStringEncodingISO8859_1]) &&
[string isEqual: @"testäöü"])
TEST(@"+[stringWithContentsOfURL:encoding]", (string = [stringClass
stringWithContentsOfURL: [OFURL fileURLWithPath: @"testfile.txt"]
encoding: OFStringEncodingISO8859_1]) &&
[string isEqual: @"testäöü"])
#endif
TEST(@"-[appendUTFString:length:]",
R([mutableString1 appendUTF8String: "\xEF\xBB\xBF" "barqux"
length: 6]) &&
|
|
|
|
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
|
#ifdef OF_HAVE_FILES
TEST(@"+[stringWithContentsOfFile:encoding]", (string = [stringClass
stringWithContentsOfFile: @"testfile.txt"
encoding: OFStringEncodingISO8859_1]) &&
[string isEqual: @"testäöü"])
TEST(@"+[stringWithContentsOfURI:encoding]", (string = [stringClass
stringWithContentsOfURI: [OFURI fileURIWithPath: @"testfile.txt"]
encoding: OFStringEncodingISO8859_1]) &&
[string isEqual: @"testäöü"])
#endif
TEST(@"-[appendUTFString:length:]",
R([mutableString1 appendUTF8String: "\xEF\xBB\xBF" "barqux"
length: 6]) &&
|
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
|
TEST(@"-[stringBySHA512Hashing]", [C(@"asdfoobar").stringBySHA512Hashing
isEqual: @"0464c427da158b02161bb44a3090bbfc594611ef6a53603640454b56"
@"412a9247c3579a329e53a5dc74676b106755e3394f9454a2d4227324"
@"2615d32f80437d61"])
characterSet =
[OFCharacterSet characterSetWithCharactersInString: @"abfo'_~$🍏"];
TEST(@"-[stringByURLEncodingWithAllowedCharacters:]",
[[C(@"foo\"ba'_~$]🍏🍌") stringByURLEncodingWithAllowedCharacters:
characterSet] isEqual: @"foo%22ba'_~$%5D🍏%F0%9F%8D%8C"])
TEST(@"-[stringByURLDecoding]",
[C(@"foo%20bar%22+%24%F0%9F%8D%8C").stringByURLDecoding
isEqual: @"foo bar\"+$🍌"])
TEST(@"-[insertString:atIndex:]",
(mutableString1 = [mutableStringClass
stringWithString: @"𝄞öööbä€"]) &&
R([mutableString1 insertString: @"äöü" atIndex: 3]) &&
[mutableString1 isEqual: @"𝄞ööäöüöbä€"])
EXPECT_EXCEPTION(@"Detect invalid format in -[stringByURLDecoding] "
@"#1", OFInvalidFormatException,
[C(@"foo%xbar") stringByURLDecoding])
EXPECT_EXCEPTION(@"Detect invalid encoding in -[stringByURLDecoding] "
@"#2", OFInvalidEncodingException,
[C(@"foo%FFbar") stringByURLDecoding])
TEST(@"-[setCharacter:atIndex:]",
(mutableString1 = [mutableStringClass
stringWithString: @"abäde"]) &&
R([mutableString1 setCharacter: 0xF6 atIndex: 2]) &&
[mutableString1 isEqual: @"aböde"] &&
R([mutableString1 setCharacter: 'c' atIndex: 2]) &&
|
|
|
>
|
|
|
|
>
|
|
|
>
|
|
|
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
|
TEST(@"-[stringBySHA512Hashing]", [C(@"asdfoobar").stringBySHA512Hashing
isEqual: @"0464c427da158b02161bb44a3090bbfc594611ef6a53603640454b56"
@"412a9247c3579a329e53a5dc74676b106755e3394f9454a2d4227324"
@"2615d32f80437d61"])
characterSet =
[OFCharacterSet characterSetWithCharactersInString: @"abfo'_~$🍏"];
TEST(@"-[stringByAddingPercentEncodingWithAllowedCharacters:]",
[[C(@"foo\"ba'_~$]🍏🍌")
stringByAddingPercentEncodingWithAllowedCharacters: characterSet]
isEqual: @"foo%22ba'_~$%5D🍏%F0%9F%8D%8C"])
TEST(@"-[stringByRemovingPercentEncoding]",
[C(@"foo%20bar%22+%24%F0%9F%8D%8C").stringByRemovingPercentEncoding
isEqual: @"foo bar\"+$🍌"])
TEST(@"-[insertString:atIndex:]",
(mutableString1 = [mutableStringClass
stringWithString: @"𝄞öööbä€"]) &&
R([mutableString1 insertString: @"äöü" atIndex: 3]) &&
[mutableString1 isEqual: @"𝄞ööäöüöbä€"])
EXPECT_EXCEPTION(@"Detect invalid format in "
@"-[stringByRemovingPercentEncoding] #1",
OFInvalidFormatException,
[C(@"foo%xbar") stringByRemovingPercentEncoding])
EXPECT_EXCEPTION(@"Detect invalid encoding in "
@"-[stringByRemovingPercentEncoding] #2",
OFInvalidEncodingException,
[C(@"foo%FFbar") stringByRemovingPercentEncoding])
TEST(@"-[setCharacter:atIndex:]",
(mutableString1 = [mutableStringClass
stringWithString: @"abäde"]) &&
R([mutableString1 setCharacter: 0xF6 atIndex: 2]) &&
[mutableString1 isEqual: @"aböde"] &&
R([mutableString1 setCharacter: 'c' atIndex: 2]) &&
|