7 $foo = URI->new("Foo:opaque#frag");
9 print "not " unless ref($foo) eq "URI::_foreign";
12 print "not " unless $foo->as_string eq "Foo:opaque#frag";
15 print "not " unless "$foo" eq "Foo:opaque#frag";
19 print "not " unless $foo->_scheme eq "Foo" && $foo->scheme eq "foo";
22 print "not " unless $foo->opaque eq "opaque";
25 print "not " unless $foo->fragment eq "frag";
28 print "not " unless $foo->canonical eq "foo:opaque#frag";
32 $old = $foo->scheme("bar");
34 print "not " unless $old eq "foo" && $foo eq "bar:opaque#frag";
37 $old = $foo->scheme("");
38 print "not " unless $old eq "bar" && $foo eq "opaque#frag";
41 $old = $foo->scheme("foo");
42 $old = $foo->scheme(undef);
44 print "not " unless $old eq "foo" && $foo eq "opaque#frag";
50 $old = $foo->opaque("xxx");
51 print "not " unless $old eq "opaque" && $foo eq "foo:xxx#frag";
54 $old = $foo->opaque("");
55 print "not " unless $old eq "xxx" && $foo eq "foo:#frag";
58 $old = $foo->opaque(" #?/");
59 $old = $foo->opaque(undef);
60 print "not " unless $old eq "%20%23?/" && $foo eq "foo:#frag";
63 $foo->opaque("opaque");
66 $old = $foo->fragment("x");
67 print "not " unless $old eq "frag" && $foo eq "foo:opaque#x";
70 $old = $foo->fragment("");
71 print "not " unless $old eq "x" && $foo eq "foo:opaque#";
74 $old = $foo->fragment(undef);
75 print "not " unless $old eq "" && $foo eq "foo:opaque";
80 print "not " unless $foo->eq("Foo:opaque") &&
81 $foo->eq(URI->new("FOO:opaque")) &&
82 $foo->eq("foo:opaque");
85 print "not " if $foo->eq("Bar:opaque") ||
86 $foo->eq("foo:opaque#");
90 # Try hierarchal unknown URLs
92 $foo = URI->new("foo://host:80/path?query#frag");
94 print "not " unless "$foo" eq "foo://host:80/path?query#frag";
98 print "not " unless $foo->scheme eq "foo";
101 print "not " unless $foo->authority eq "host:80";
104 print "not " unless $foo->path eq "/path";
107 print "not " unless $foo->query eq "query";
110 print "not " unless $foo->fragment eq "frag";
114 $old = $foo->authority("xxx");
115 print "not " unless $old eq "host:80" && $foo eq "foo://xxx/path?query#frag";
118 $old = $foo->authority("");
119 print "not " unless $old eq "xxx" && $foo eq "foo:///path?query#frag";
122 $old = $foo->authority(undef);
123 print "not " unless $old eq "" && $foo eq "foo:/path?query#frag";
126 $old = $foo->authority("/? #;@&");
127 print "not " unless !defined($old) && $foo eq "foo://%2F%3F%20%23;@&/path?query#frag";
130 $old = $foo->authority("host:80");
131 print "not " unless $old eq "%2F%3F%20%23;@&" && $foo eq "foo://host:80/path?query#frag";
135 $old = $foo->path("/foo");
136 print "not " unless $old eq "/path" && $foo eq "foo://host:80/foo?query#frag";
139 $old = $foo->path("bar");
140 print "not " unless $old eq "/foo" && $foo eq "foo://host:80/bar?query#frag";
143 $old = $foo->path("");
144 print "not " unless $old eq "/bar" && $foo eq "foo://host:80?query#frag";
147 $old = $foo->path(undef);
148 print "not " unless $old eq "" && $foo eq "foo://host:80?query#frag";
151 $old = $foo->path("@;/?#");
152 print "not " unless $old eq "" && $foo eq "foo://host:80/@;/%3F%23?query#frag";
155 $old = $foo->path("path");
156 print "not " unless $old eq "/@;/%3F%23" && $foo eq "foo://host:80/path?query#frag";
160 $old = $foo->query("foo");
161 print "not " unless $old eq "query" && $foo eq "foo://host:80/path?foo#frag";
164 $old = $foo->query("");
165 print "not " unless $old eq "foo" && $foo eq "foo://host:80/path?#frag";
168 $old = $foo->query(undef);
169 print "not " unless $old eq "" && $foo eq "foo://host:80/path#frag";
172 $old = $foo->query("/?&=# ");
173 print "not " unless !defined($old) && $foo eq "foo://host:80/path?/?&=%23%20#frag";
176 $old = $foo->query("query");
177 print "not " unless $old eq "/?&=%23%20" && $foo eq "foo://host:80/path?query#frag";
183 $foo->authority("auth");
185 print "not " unless $foo eq "//auth/path";
188 $foo = URI->new("", "http:");
189 $foo->query("query");
190 $foo->authority("auth");
191 print "not " unless $foo eq "//auth?query";
195 print "not " unless $foo eq "//auth/path?query";
199 $old = $foo->path("foo");
200 print "not " unless $old eq "" && $foo eq "foo";
203 $old = $foo->path("bar");
204 print "not " unless $old eq "foo" && $foo eq "bar";
207 $old = $foo->opaque("foo");
208 print "not " unless $old eq "bar" && $foo eq "foo";
211 $old = $foo->path("");
212 print "not " unless $old eq "foo" && $foo eq "";
215 $old = $foo->query("q");
216 print "not " unless !defined($old) && $foo eq "?q";