23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
static OFString *url_str = @"ht%3atp://us%3Aer:p%40w@ho%3Ast:1234/"
@"pa%3Fth?que%23ry#frag%23ment";
@implementation TestsAppDelegate (OFURLTests)
- (void)URLTests
{
OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
OFURL *u1, *u2, *u3, *u4;
OFMutableURL *mu;
TEST(@"+[URLWithString:]",
R(u1 = [OFURL URLWithString: url_str]) &&
R(u2 = [OFURL URLWithString: @"http://foo:80"]) &&
R(u3 = [OFURL URLWithString: @"http://bar/"]) &&
R(u4 = [OFURL URLWithString: @"file:///etc/passwd"]))
EXPECT_EXCEPTION(@"+[URLWithString:] fails with invalid characters #1",
OFInvalidFormatException,
[OFURL URLWithString: @"ht,tp://foo"])
EXPECT_EXCEPTION(@"+[URLWithString:] fails with invalid characters #2",
OFInvalidFormatException,
|
|
|
>
|
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
static OFString *url_str = @"ht%3atp://us%3Aer:p%40w@ho%3Ast:1234/"
@"pa%3Fth?que%23ry#frag%23ment";
@implementation TestsAppDelegate (OFURLTests)
- (void)URLTests
{
OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
OFURL *u1, *u2, *u3, *u4, *u5;
OFMutableURL *mu;
TEST(@"+[URLWithString:]",
R(u1 = [OFURL URLWithString: url_str]) &&
R(u2 = [OFURL URLWithString: @"http://foo:80"]) &&
R(u3 = [OFURL URLWithString: @"http://bar/"]) &&
R(u4 = [OFURL URLWithString: @"file:///etc/passwd"]) &&
R(u5 = [OFURL URLWithString: @"http://foo/bar/qux/foo%2fbar"]))
EXPECT_EXCEPTION(@"+[URLWithString:] fails with invalid characters #1",
OFInvalidFormatException,
[OFURL URLWithString: @"ht,tp://foo"])
EXPECT_EXCEPTION(@"+[URLWithString:] fails with invalid characters #2",
OFInvalidFormatException,
|
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
[u1.password isEqual: @"p@w"] && u4.password == nil)
TEST(@"-[host]", [u1.host isEqual: @"ho:st"] && [u4 port] == nil)
TEST(@"-[port]", [u1.port isEqual: [OFNumber numberWithUInt16: 1234]])
TEST(@"-[path]",
[u1.path isEqual: @"/pa?th"] && [u4.path isEqual: @"/etc/passwd"])
TEST(@"-[pathComponents]",
[u1.pathComponents isEqual:
[OFArray arrayWithObjects: @"", @"pa?th", nil]] &&
[u4.pathComponents isEqual:
[OFArray arrayWithObjects: @"", @"etc", @"passwd", nil]])
TEST(@"-[lastPathComponent]",
[[[OFURL URLWithString: @"http://host/foo//bar/baz"]
lastPathComponent] isEqual: @"baz"] &&
[[[OFURL URLWithString: @"http://host/foo//bar/baz/"]
lastPathComponent] isEqual: @"baz"] &&
[[[OFURL URLWithString: @"http://host/foo/"]
lastPathComponent] isEqual: @"foo"] &&
[[[OFURL URLWithString: @"http://host/"]
lastPathComponent] isEqual: @""])
TEST(@"-[query]",
[u1.query isEqual: @"que#ry"] && u4.query == nil)
TEST(@"-[fragment]",
[u1.fragment isEqual: @"frag#ment"] && u4.fragment == nil)
TEST(@"-[copy]", R(u4 = [[u1 copy] autorelease]))
|
|
|
>
>
|
>
|
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
[u1.password isEqual: @"p@w"] && u4.password == nil)
TEST(@"-[host]", [u1.host isEqual: @"ho:st"] && [u4 port] == nil)
TEST(@"-[port]", [u1.port isEqual: [OFNumber numberWithUInt16: 1234]])
TEST(@"-[path]",
[u1.path isEqual: @"/pa?th"] && [u4.path isEqual: @"/etc/passwd"])
TEST(@"-[pathComponents]",
[u1.pathComponents isEqual:
[OFArray arrayWithObjects: @"/", @"pa?th", nil]] &&
[u4.pathComponents isEqual:
[OFArray arrayWithObjects: @"/", @"etc", @"passwd", nil]] &&
[u5.pathComponents isEqual:
[OFArray arrayWithObjects: @"/", @"bar", @"qux", @"foo/bar", nil]])
TEST(@"-[lastPathComponent]",
[[[OFURL URLWithString: @"http://host/foo//bar/baz"]
lastPathComponent] isEqual: @"baz"] &&
[[[OFURL URLWithString: @"http://host/foo//bar/baz/"]
lastPathComponent] isEqual: @"baz"] &&
[[[OFURL URLWithString: @"http://host/foo/"]
lastPathComponent] isEqual: @"foo"] &&
[[[OFURL URLWithString: @"http://host/"]
lastPathComponent] isEqual: @"/"] &&
[u5.lastPathComponent isEqual: @"foo/bar"])
TEST(@"-[query]",
[u1.query isEqual: @"que#ry"] && u4.query == nil)
TEST(@"-[fragment]",
[u1.fragment isEqual: @"frag#ment"] && u4.fragment == nil)
TEST(@"-[copy]", R(u4 = [[u1 copy] autorelease]))
|