libs-base/Tests/base/NSURL/charsets.m
2020-04-13 09:20:59 +01:00

55 lines
1.8 KiB
Objective-C

#import <Foundation/Foundation.h>
#import "Testing.h"
#import "ObjectTesting.h"
int main()
{
START_SET("URL character sets")
NSMutableString *m = [NSMutableString string];
NSDictionary *sets;
NSEnumerator *enumerator;
NSString *key;
sets = [NSDictionary dictionaryWithObjectsAndKeys:
@"!$&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~",
@"URLFragmentAllowedCharacterSet",
@"!$&'()*+,-.0123456789:;=ABCDEFGHIJKLMNOPQRSTUVWXYZ[]_abcdefghijklmnopqrstuvwxyz~",
@"URLHostAllowedCharacterSet",
@"!$&'()*+,-.0123456789;=ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~",
@"URLPasswordAllowedCharacterSet",
@"!$&'()*+,-./0123456789:=@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~",
@"URLPathAllowedCharacterSet",
@"!$&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~",
@"URLQueryAllowedCharacterSet",
@"!$&'()*+,-.0123456789;=ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~",
@"URLUserAllowedCharacterSet",
nil];
enumerator = [sets keyEnumerator];
while (nil != (key = [enumerator nextObject]))
{
NSString *expect = [sets objectForKey: key];
const char *name = [key UTF8String];
NSCharacterSet *set;
unichar c;
set = (NSCharacterSet*)[[NSCharacterSet class] performSelector:
NSSelectorFromString(key)];
[m setString: @""];
for (c = 0; c < 128; c++)
{
if ([set characterIsMember: c])
{
NSString *s;
s = [[NSString alloc] initWithCharacters: &c length: 1];
[m appendString: s];
RELEASE(s);
}
}
PASS_EQUAL(m, expect, "%s as string", name)
}
END_SET("URL character sets")
return 0;
}