2 USING: urls urls.private tools.test
3 tuple-syntax arrays kernel assocs
6 [ "hello%20world" ] [ "hello world" url-encode ] unit-test
7 [ "hello world" ] [ "hello%20world" url-decode ] unit-test
8 [ "~hello world" ] [ "%7ehello+world" url-decode ] unit-test
9 [ f ] [ "%XX%XX%XX" url-decode ] unit-test
10 [ f ] [ "%XX%XX%X" url-decode ] unit-test
12 [ "hello world" ] [ "hello+world" url-decode ] unit-test
13 [ "hello world" ] [ "hello%20world" url-decode ] unit-test
14 [ " ! " ] [ "%20%21%20" url-decode ] unit-test
15 [ "hello world" ] [ "hello world%" url-decode ] unit-test
16 [ "hello world" ] [ "hello world%x" url-decode ] unit-test
17 [ "hello%20world" ] [ "hello world" url-encode ] unit-test
18 [ "%20%21%20" ] [ " ! " url-encode ] unit-test
20 [ "\u001234hi\u002045" ] [ "\u001234hi\u002045" url-encode url-decode ] unit-test
22 [ "a=b&a=c" ] [ { { "a" { "b" "c" } } } assoc>query ] unit-test
24 [ H{ { "a" "b" } } ] [ "a=b" query>assoc ] unit-test
26 [ H{ { "a" { "b" "c" } } } ] [ "a=b&a=c" query>assoc ] unit-test
28 [ "a=3" ] [ { { "a" 3 } } assoc>query ] unit-test
38 query: H{ { "a" "b" } }
41 "http://www.apple.com:1234/a/path?a=b#foo"
48 query: H{ { "a" "b" } }
51 "http://www.apple.com/a/path?a=b#foo"
58 path: "/another/fine/path"
61 "http://www.apple.com:1234/another/fine/path#foo"
65 path: "/a/relative/path"
68 "/a/relative/path#foo"
72 path: "/a/relative/path"
78 path: "a/relative/path"
85 query: H{ { "a" "b" } }
92 host: "ftp.kernel.org"
96 "ftp://slava@ftp.kernel.org/"
101 host: "ftp.kernel.org"
106 "ftp://slava:secret@ftp.kernel.org/"
111 [ 1array ] [ [ >url ] curry ] bi* unit-test
115 swap [ 1array ] [ [ present ] curry ] bi* unit-test
118 [ "b" ] [ "a" "b" url-append-path ] unit-test
120 [ "a/b" ] [ "a/c" "b" url-append-path ] unit-test
122 [ "a/b" ] [ "a/" "b" url-append-path ] unit-test
124 [ "/b" ] [ "a" "/b" url-append-path ] unit-test
126 [ "/b" ] [ "a/b/" "/b" url-append-path ] unit-test
128 [ "/xxx/bar" ] [ "/xxx/baz" "bar" url-append-path ] unit-test
133 host: "www.apple.com"
140 host: "www.apple.com"
155 host: "www.apple.com"
157 path: "/a/path/relative/path"
158 query: H{ { "a" "b" } }
164 host: "www.apple.com"
170 path: "relative/path"
171 query: H{ { "a" "b" } }
181 host: "www.apple.com"
183 path: "/a/path/relative/path"
184 query: H{ { "a" "b" } }
190 host: "www.apple.com"
196 path: "relative/path"
197 query: H{ { "a" "b" } }
207 host: "www.apple.com"
213 host: "www.apple.com"
225 <url> "a" "b" set-query-param "b" query-param
228 [ "foo#3" ] [ URL" foo" clone 3 >>anchor present ] unit-test