Test output for uri-generic [ok]
Testing time: 3s
/home/mario/local/chicken-4.8.0.3/bin/csi -script run.scm < /dev/null -- testing uri-generic ------------------------------------------------------- -- testing uri test ------------------------------------------------------ "foo:xyz" * "bar:abc" -> "bar:abc" ............................... [ PASS] "foo:xyz" * "bar:abc" -> "bar:abc" ............................... [ PASS] #(URI scheme=bar authority=#f path=("abc") query=#f fragment=#f) = #(URI scheme=bar authority=#f path=("abc") query=#f fragment=#f) [ PASS] "foo:xyz" = "foo:xyz" ............................................ [ PASS] "bar:abc" = "bar:abc" ............................................ [ PASS] "bar:abc" = "bar:abc" ............................................ [ PASS] "http://example/x/y/z" * "http://example/x/abc" -> "../abc" ...... [ PASS] "http://example/x/y/z" * "http://example/x/abc" -> "../abc" ...... [ PASS] #(URI scheme=http authority=#(URIAuth host="example" port=#f) path=(/ "x" "abc") query=#f fragment=#f) = #(URI scheme=http authority=#(URIAuth host="example" port=#f) path=(/ "x" "abc") query=#f fragment=#f) [ PASS] "http://example/x/y/z" = "http://example/x/y/z" .................. [ PASS] "http://example/x/abc" = "http://example/x/abc" .................. [ PASS] "../abc" = "../abc" .............................................. [ PASS] "http://example2/x/y/z" * "http://example/x/abc" -> "//example/x/abc" [ PASS] "http://example2/x/y/z" * "http://example/x/abc" -> "//example/x/abc" [ PASS] #(URI scheme=http authority=#(URIAuth host="example" port=#f) path=(/ "x" "abc") query=#f fragment=#f) = #(URI scheme=http authority=#(URIAuth host="example" port=#f) path=(/ "x" "abc") query=#f fragment=#f) [ PASS] "http://example2/x/y/z" = "http://example2/x/y/z" ................ [ PASS] "http://example/x/abc" = "http://example/x/abc" .................. [ PASS] "//example/x/abc" = "//example/x/abc" ............................ [ PASS] "http://ex/x/y/z" * "http://ex/x/r" -> "../r" .................... [ PASS] "http://ex/x/y/z" * "http://ex/x/r" -> "../r" .................... [ PASS] #(URI scheme=http authority=#(URIAuth host="ex" port=#f) path=(/ "x" "r") query=#f fragment=#f) = #(URI scheme=http authority=#(URIAuth host="ex" port=#f) path=(/ "x" "r") query=#f fragment=#f) [ PASS] "http://ex/x/y/z" = "http://ex/x/y/z" ............................ [ PASS] "http://ex/x/r" = "http://ex/x/r" ................................ [ PASS] "../r" = "../r" .................................................. [ PASS] "http://ex/x/y" * "http://ex/x/q/r" -> "./q/r" ................... [ PASS] "http://ex/x/y" * "http://ex/x/q/r" -> "./q/r" ................... [ PASS] #(URI scheme=http authority=#(URIAuth host="ex" port=#f) path=(/ "x" "q" "r") query=#f fragment=#f) = #(URI scheme=http authority=#(URIAuth host="ex" port=#f) path=(/ "x" "q" "r") query=#f fragment=#f) [ PASS] "http://ex/x/y" = "http://ex/x/y" ................................ [ PASS] "http://ex/x/q/r" = "http://ex/x/q/r" ............................ [ PASS] "./q/r" = "./q/r" ................................................ [ PASS] "http://ex/x/y" * "http://ex/x/q/r#s" -> "./q/r#s" ............... [ PASS] "http://ex/x/y" * "http://ex/x/q/r#s" -> "./q/r#s" ............... [ PASS] "http://ex/x/y" = "http://ex/x/y" ................................ [ PASS] "http://ex/x/q/r#s" = "http://ex/x/q/r#s" ........................ [ PASS] "./q/r#s" = "./q/r#s" ............................................ [ PASS] "http://ex/x/y" * "http://ex/x/q/r#s/t" -> "./q/r#s/t" ........... [ PASS] "http://ex/x/y" * "http://ex/x/q/r#s/t" -> "./q/r#s/t" ........... [ PASS] "http://ex/x/y" = "http://ex/x/y" ................................ [ PASS] "http://ex/x/q/r#s/t" = "http://ex/x/q/r#s/t" .................... [ PASS] "./q/r#s/t" = "./q/r#s/t" ........................................ [ PASS] "http://ex/x/y" * "ftp://ex/x/q/r" -> "ftp://ex/x/q/r" ........... [ PASS] "http://ex/x/y" * "ftp://ex/x/q/r" -> "ftp://ex/x/q/r" ........... [ PASS] #(URI scheme=ftp authority=#(URIAuth host="ex" port=#f) path=(/ "x" "q" "r") query=#f fragment=#f) = #(URI scheme=ftp authority=#(URIAuth host="ex" port=#f) path=(/ "x" "q" "r") query=#f fragment=#f) [ PASS] "http://ex/x/y" = "http://ex/x/y" ................................ [ PASS] "ftp://ex/x/q/r" = "ftp://ex/x/q/r" .............................. [ PASS] "ftp://ex/x/q/r" = "ftp://ex/x/q/r" .............................. [ PASS] "http://ex/x/y" * "http://ex/x/y" -> "" .......................... [ PASS] "http://ex/x/y" * "http://ex/x/y" -> "" .......................... [ PASS] #(URI scheme=http authority=#(URIAuth host="ex" port=#f) path=(/ "x" "y") query=#f fragment=#f) = #(URI scheme=http authority=#(URIAuth host="ex" port=#f) path=(/ "x" "y") query=#f fragment=#f) [ PASS] "http://ex/x/y" = "http://ex/x/y" ................................ [ PASS] "http://ex/x/y" = "http://ex/x/y" ................................ [ PASS] "" = "" .......................................................... [ PASS] "http://ex/x/y/" * "http://ex/x/y/" -> "" ........................ [ PASS] "http://ex/x/y/" * "http://ex/x/y/" -> "" ........................ [ PASS] #(URI scheme=http authority=#(URIAuth host="ex" port=#f) path=(/ "x" "y" "") query=#f fragment=#f) = #(URI scheme=http authority=#(URIAuth host="ex" port=#f) path=(/ "x" "y" "") query=#f fragment=#f) [ PASS] "http://ex/x/y/" = "http://ex/x/y/" .............................. [ PASS] "http://ex/x/y/" = "http://ex/x/y/" .............................. [ PASS] "" = "" .......................................................... [ PASS] "http://ex/x/y/pdq" * "http://ex/x/y/pdq" -> "" .................. [ PASS] "http://ex/x/y/pdq" * "http://ex/x/y/pdq" -> "" .................. [ PASS] #(URI scheme=http authority=#(URIAuth host="ex" port=#f) path=(/ "x" "y" "pdq") query=#f fragment=#f) = #(URI scheme=http authority=#(URIAuth host="ex" port=#f) path=(/ "x" "y" "pdq") query=#f fragment=#f) [ PASS] "http://ex/x/y/pdq" = "http://ex/x/y/pdq" ........................ [ PASS] "http://ex/x/y/pdq" = "http://ex/x/y/pdq" ........................ [ PASS] "" = "" .......................................................... [ PASS] "http://ex/x/y/" * "http://ex/x/y/z/" -> "./z/" .................. [ PASS] "http://ex/x/y/" * "http://ex/x/y/z/" -> "./z/" .................. [ PASS] #(URI scheme=http authority=#(URIAuth host="ex" port=#f) path=(/ "x" "y" "z" "") query=#f fragment=#f) = #(URI scheme=http authority=#(URIAuth host="ex" port=#f) path=(/ "x" "y" "z" "") query=#f fragment=#f) [ PASS] "http://ex/x/y/" = "http://ex/x/y/" .............................. [ PASS] "http://ex/x/y/z/" = "http://ex/x/y/z/" .......................... [ PASS] "./z/" = "./z/" .................................................. [ PASS] "file:/swap/test/animal.rdf" * "file:/swap/test/animal.rdf#Animal" -> "#Animal" [ PASS] "file:/swap/test/animal.rdf" * "file:/swap/test/animal.rdf#Animal" -> "#Animal" [ PASS] "file:/swap/test/animal.rdf" = "file:/swap/test/animal.rdf" ...... [ PASS] "file:/swap/test/animal.rdf#Animal" = "file:/swap/test/animal.rdf#Animal" [ PASS] "#Animal" = "#Animal" ............................................ [ PASS] "file:/e/x/y/z" * "file:/e/x/abc" -> "../abc" .................... [ PASS] "file:/e/x/y/z" * "file:/e/x/abc" -> "../abc" .................... [ PASS] #(URI scheme=file authority=#f path=(/ "e" "x" "abc") query=#f fragment=#f) = #(URI scheme=file authority=#f path=(/ "e" "x" "abc") query=#f fragment=#f) [ PASS] "file:/e/x/y/z" = "file:/e/x/y/z" ................................ [ PASS] "file:/e/x/abc" = "file:/e/x/abc" ................................ [ PASS] "../abc" = "../abc" .............................................. [ PASS] "file:/example2/x/y/z" * "file:/example/x/abc" -> "/example/x/abc" [ PASS] "file:/example2/x/y/z" * "file:/example/x/abc" -> "/example/x/abc" [ PASS] #(URI scheme=file authority=#f path=(/ "example" "x" "abc") query=#f fragment=#f) = #(URI scheme=file authority=#f path=(/ "example" "x" "abc") query=#f fragment=#f) [ PASS] "file:/example2/x/y/z" = "file:/example2/x/y/z" .................. [ PASS] "file:/example/x/abc" = "file:/example/x/abc" .................... [ PASS] "/example/x/abc" = "/example/x/abc" .............................. [ PASS] "file:/ex/x/y/z" * "file:/ex/x/r" -> "../r" ...................... [ PASS] "file:/ex/x/y/z" * "file:/ex/x/r" -> "../r" ...................... [ PASS] #(URI scheme=file authority=#f path=(/ "ex" "x" "r") query=#f fragment=#f) = #(URI scheme=file authority=#f path=(/ "ex" "x" "r") query=#f fragment=#f) [ PASS] "file:/ex/x/y/z" = "file:/ex/x/y/z" .............................. [ PASS] "file:/ex/x/r" = "file:/ex/x/r" .................................. [ PASS] "../r" = "../r" .................................................. [ PASS] "file:/ex/x/y/z" * "file:/r" -> "/r" ............................. [ PASS] "file:/ex/x/y/z" * "file:/r" -> "/r" ............................. [ PASS] #(URI scheme=file authority=#f path=(/ "r") query=#f fragment=#f) = #(URI scheme=file authority=#f path=(/ "r") query=#f fragment=#f) [ PASS] "file:/ex/x/y/z" = "file:/ex/x/y/z" .............................. [ PASS] "file:/r" = "file:/r" ............................................ [ PASS] "/r" = "/r" ...................................................... [ PASS] "file:/ex/x/y" * "file:/ex/x/q/r" -> "./q/r" ..................... [ PASS] "file:/ex/x/y" * "file:/ex/x/q/r" -> "./q/r" ..................... [ PASS] #(URI scheme=file authority=#f path=(/ "ex" "x" "q" "r") query=#f fragment=#f) = #(URI scheme=file authority=#f path=(/ "ex" "x" "q" "r") query=#f fragment=#f) [ PASS] "file:/ex/x/y" = "file:/ex/x/y" .................................. [ PASS] "file:/ex/x/q/r" = "file:/ex/x/q/r" .............................. [ PASS] "./q/r" = "./q/r" ................................................ [ PASS] "file:/ex/x/y" * "file:/ex/x/q/r#s" -> "./q/r#s" ................. [ PASS] "file:/ex/x/y" * "file:/ex/x/q/r#s" -> "./q/r#s" ................. [ PASS] "file:/ex/x/y" = "file:/ex/x/y" .................................. [ PASS] "file:/ex/x/q/r#s" = "file:/ex/x/q/r#s" .......................... [ PASS] "./q/r#s" = "./q/r#s" ............................................ [ PASS] "file:/ex/x/y" * "file:/ex/x/q/r#" -> "./q/r#" ................... [ PASS] "file:/ex/x/y" * "file:/ex/x/q/r#" -> "./q/r#" ................... [ PASS] "file:/ex/x/y" = "file:/ex/x/y" .................................. [ PASS] "file:/ex/x/q/r#" = "file:/ex/x/q/r#" ............................ [ PASS] "./q/r#" = "./q/r#" .............................................. [ PASS] "file:/ex/x/y" * "file:/ex/x/q/r#s/t" -> "./q/r#s/t" ............. [ PASS] "file:/ex/x/y" * "file:/ex/x/q/r#s/t" -> "./q/r#s/t" ............. [ PASS] "file:/ex/x/y" = "file:/ex/x/y" .................................. [ PASS] "file:/ex/x/q/r#s/t" = "file:/ex/x/q/r#s/t" ...................... [ PASS] "./q/r#s/t" = "./q/r#s/t" ........................................ [ PASS] "file:/ex/x/y" * "ftp://ex/x/q/r" -> "ftp://ex/x/q/r" ............ [ PASS] "file:/ex/x/y" * "ftp://ex/x/q/r" -> "ftp://ex/x/q/r" ............ [ PASS] #(URI scheme=ftp authority=#(URIAuth host="ex" port=#f) path=(/ "x" "q" "r") query=#f fragment=#f) = #(URI scheme=ftp authority=#(URIAuth host="ex" port=#f) path=(/ "x" "q" "r") query=#f fragment=#f) [ PASS] "file:/ex/x/y" = "file:/ex/x/y" .................................. [ PASS] "ftp://ex/x/q/r" = "ftp://ex/x/q/r" .............................. [ PASS] "ftp://ex/x/q/r" = "ftp://ex/x/q/r" .............................. [ PASS] "file:/ex/x/y" * "file:/ex/x/y" -> "" ............................ [ PASS] "file:/ex/x/y" * "file:/ex/x/y" -> "" ............................ [ PASS] #(URI scheme=file authority=#f path=(/ "ex" "x" "y") query=#f fragment=#f) = #(URI scheme=file authority=#f path=(/ "ex" "x" "y") query=#f fragment=#f) [ PASS] "file:/ex/x/y" = "file:/ex/x/y" .................................. [ PASS] "file:/ex/x/y" = "file:/ex/x/y" .................................. [ PASS] "" = "" .......................................................... [ PASS] "file:/ex/x/y/" * "file:/ex/x/y/" -> "" .......................... [ PASS] "file:/ex/x/y/" * "file:/ex/x/y/" -> "" .......................... [ PASS] #(URI scheme=file authority=#f path=(/ "ex" "x" "y" "") query=#f fragment=#f) = #(URI scheme=file authority=#f path=(/ "ex" "x" "y" "") query=#f fragment=#f) [ PASS] "file:/ex/x/y/" = "file:/ex/x/y/" ................................ [ PASS] "file:/ex/x/y/" = "file:/ex/x/y/" ................................ [ PASS] "" = "" .......................................................... [ PASS] "file:/ex/x/y/pdq" * "file:/ex/x/y/pdq" -> "" .................... [ PASS] "file:/ex/x/y/pdq" * "file:/ex/x/y/pdq" -> "" .................... [ PASS] #(URI scheme=file authority=#f path=(/ "ex" "x" "y" "pdq") query=#f fragment=#f) = #(URI scheme=file authority=#f path=(/ "ex" "x" "y" "pdq") query=#f fragment=#f) [ PASS] "file:/ex/x/y/pdq" = "file:/ex/x/y/pdq" .......................... [ PASS] "file:/ex/x/y/pdq" = "file:/ex/x/y/pdq" .......................... [ PASS] "" = "" .......................................................... [ PASS] "file:/ex/x/y/" * "file:/ex/x/y/z/" -> "./z/" .................... [ PASS] "file:/ex/x/y/" * "file:/ex/x/y/z/" -> "./z/" .................... [ PASS] #(URI scheme=file authority=#f path=(/ "ex" "x" "y" "z" "") query=#f fragment=#f) = #(URI scheme=file authority=#f path=(/ "ex" "x" "y" "z" "") query=#f fragment=#f) [ PASS] "file:/ex/x/y/" = "file:/ex/x/y/" ................................ [ PASS] "file:/ex/x/y/z/" = "file:/ex/x/y/z/" ............................ [ PASS] "./z/" = "./z/" .................................................. [ PASS] "file:/devel/WWW/2000/10/swap/test/reluri-1.n3" * "file://meetings.example.com/cal#m1" -> "//meetings.example.com/cal#m1" [ PASS] "file:/devel/WWW/2000/10/swap/test/reluri-1.n3" * "file://meetings.example.com/cal#m1" -> "//meetings.example.com/cal#m1" [ PASS] "file:/devel/WWW/2000/10/swap/test/reluri-1.n3" = "file:/devel/WWW/2000/10/swap/test/reluri-1.n3" [ PASS] "file://meetings.example.com/cal#m1" = "file://meetings.example.com/cal#m1" [ PASS] "//meetings.example.com/cal#m1" = "//meetings.example.com/cal#m1" [ PASS] "file:/home/connolly/w3ccvs/WWW/2000/10/swap/test/reluri-1.n3" * "file://meetings.example.com/cal#m1" -> "//meetings.example.com/cal#m1" [ PASS] "file:/home/connolly/w3ccvs/WWW/2000/10/swap/test/reluri-1.n3" * "file://meetings.example.com/cal#m1" -> "//meetings.example.com/cal#m1" [ PASS] "file:/home/connolly/w3ccvs/WWW/2000/10/swap/test/reluri-1.n3" = "file:/home/connolly/w3ccvs/WWW/2000/10/swap/test/reluri-1.n3" [ PASS] "file://meetings.example.com/cal#m1" = "file://meetings.example.com/cal#m1" [ PASS] "//meetings.example.com/cal#m1" = "//meetings.example.com/cal#m1" [ PASS] "file:/some/dir/foo" * "file:/some/dir/#blort" -> "./#blort" ..... [ PASS] "file:/some/dir/foo" * "file:/some/dir/#blort" -> "./#blort" ..... [ PASS] "file:/some/dir/foo" = "file:/some/dir/foo" ...................... [ PASS] "file:/some/dir/#blort" = "file:/some/dir/#blort" ................ [ PASS] "./#blort" = "./#blort" .......................................... [ PASS] "file:/some/dir/foo" * "file:/some/dir/#" -> "./#" ............... [ PASS] "file:/some/dir/foo" * "file:/some/dir/#" -> "./#" ............... [ PASS] "file:/some/dir/foo" = "file:/some/dir/foo" ...................... [ PASS] "file:/some/dir/#" = "file:/some/dir/#" .......................... [ PASS] "./#" = "./#" .................................................... [ PASS] "http://example/x/y%2Fz" * "http://example/x/abc" -> "./abc" ..... [ PASS] "http://example/x/y%2Fz" * "http://example/x/abc" -> "./abc" ..... [ PASS] #(URI scheme=http authority=#(URIAuth host="example" port=#f) path=(/ "x" "abc") query=#f fragment=#f) = #(URI scheme=http authority=#(URIAuth host="example" port=#f) path=(/ "x" "abc") query=#f fragment=#f) [ PASS] "http://example/x/y%2Fz" = "http://example/x/y%2Fz" .............. [ PASS] "http://example/x/abc" = "http://example/x/abc" .................. [ PASS] "./abc" = "./abc" ................................................ [ PASS] "http://example/x/y/z" * "http://example/x%2Fabc" -> "/x%2Fabc" .. [ PASS] "http://example/x/y/z" * "http://example/x%2Fabc" -> "/x%2Fabc" .. [ PASS] #(URI scheme=http authority=#(URIAuth host="example" port=#f) path=(/ "x/abc") query=#f fragment=#f) = #(URI scheme=http authority=#(URIAuth host="example" port=#f) path=(/ "x/abc") query=#f fragment=#f) [ PASS] "http://example/x/y/z" = "http://example/x/y/z" .................. [ PASS] "http://example/x%2Fabc" = "http://example/x%2Fabc" .............. [ PASS] "/x%2Fabc" = "/x%2Fabc" .......................................... [ PASS] "http://example/x/y%2Fz" * "http://example/x%2Fabc" -> "/x%2Fabc" [ PASS] "http://example/x/y%2Fz" * "http://example/x%2Fabc" -> "/x%2Fabc" [ PASS] #(URI scheme=http authority=#(URIAuth host="example" port=#f) path=(/ "x/abc") query=#f fragment=#f) = #(URI scheme=http authority=#(URIAuth host="example" port=#f) path=(/ "x/abc") query=#f fragment=#f) [ PASS] "http://example/x/y%2Fz" = "http://example/x/y%2Fz" .............. [ PASS] "http://example/x%2Fabc" = "http://example/x%2Fabc" .............. [ PASS] "/x%2Fabc" = "/x%2Fabc" .......................................... [ PASS] "http://example/x%2Fy/z" * "http://example/x%2Fy/abc" -> "./abc" . [ PASS] "http://example/x%2Fy/z" * "http://example/x%2Fy/abc" -> "./abc" . [ PASS] #(URI scheme=http authority=#(URIAuth host="example" port=#f) path=(/ "x/y" "abc") query=#f fragment=#f) = #(URI scheme=http authority=#(URIAuth host="example" port=#f) path=(/ "x/y" "abc") query=#f fragment=#f) [ PASS] "http://example/x%2Fy/z" = "http://example/x%2Fy/z" .............. [ PASS] "http://example/x%2Fy/abc" = "http://example/x%2Fy/abc" .......... [ PASS] "./abc" = "./abc" ................................................ [ PASS] "http://example/x/abc.efg" * "http://example/x/" -> "./" ......... [ PASS] "http://example/x/abc.efg" * "http://example/x/" -> "./" ......... [ PASS] #(URI scheme=http authority=#(URIAuth host="example" port=#f) path=(/ "x" "") query=#f fragment=#f) = #(URI scheme=http authority=#(URIAuth host="example" port=#f) path=(/ "x" "") query=#f fragment=#f) [ PASS] "http://example/x/abc.efg" = "http://example/x/abc.efg" .......... [ PASS] "http://example/x/" = "http://example/x/" ........................ [ PASS] "./" = "./" ...................................................... [ PASS] 200 tests completed in 0.314 seconds. 200 out of 200 (100%) tests passed. -- done testing uri test ------------------------------------------------- -- testing rfc test ------------------------------------------------------ "/a/b/c/" * "./../../g" -> "/a/g" ................................ [ PASS] "/a/b/c/" = "/a/b/c/" ............................................ [ PASS] "./../../g" = "./../../g" ........................................ [ PASS] "/a/g" = "/a/g" .................................................. [ PASS] "/a/b/c/xyz" * "./../../g" -> "/a/g" ............................. [ PASS] "/a/b/c/xyz" = "/a/b/c/xyz" ...................................... [ PASS] "./../../g" = "./../../g" ........................................ [ PASS] "/a/g" = "/a/g" .................................................. [ PASS] "mid/content=5/" * "../6" -> "mid/6" ............................. [ PASS] "mid/content=5/" = "mid/content=5/" .............................. [ PASS] "../6" = "../6" .................................................. [ PASS] "mid/6" = "mid/6" ................................................ [ PASS] "mid/content=5/7" * "../6" -> "mid/6" ............................ [ PASS] "mid/content=5/7" = "mid/content=5/7" ............................ [ PASS] "../6" = "../6" .................................................. [ PASS] "mid/6" = "mid/6" ................................................ [ PASS] "http://a/b/c/d;p?q" * "g:h" -> "g:h" ............................ [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "g:h" = "g:h" .................................................... [ PASS] "g:h" = "g:h" .................................................... [ PASS] "http://a/b/c/d;p?q" * "g" -> "http://a/b/c/g" ................... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "g" = "g" ........................................................ [ PASS] "http://a/b/c/g" = "http://a/b/c/g" .............................. [ PASS] "http://a/b/c/d;p?q" * "./g" -> "http://a/b/c/g" ................. [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "./g" = "./g" .................................................... [ PASS] "http://a/b/c/g" = "http://a/b/c/g" .............................. [ PASS] "http://a/b/c/d;p?q" * "g/" -> "http://a/b/c/g/" ................. [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "g/" = "g/" ...................................................... [ PASS] "http://a/b/c/g/" = "http://a/b/c/g/" ............................ [ PASS] "http://a/b/c/d;p?q" * "/g" -> "http://a/g" ...................... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "/g" = "/g" ...................................................... [ PASS] "http://a/g" = "http://a/g" ...................................... [ PASS] "http://a/b/c/d;p?q" * "//g" -> "http://g" ....................... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "//g" = "//g" .................................................... [ PASS] "http://g" = "http://g" .......................................... [ PASS] "http://a/b/c/d;p?q" * "?y" -> "http://a/b/c/?y" ................. [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "?y" = "?y" ...................................................... [ PASS] "http://a/b/c/?y" = "http://a/b/c/?y" ............................ [ PASS] "http://a/b/c/d;p?q" * "g?y" -> "http://a/b/c/g?y" ............... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "g?y" = "g?y" .................................................... [ PASS] "http://a/b/c/g?y" = "http://a/b/c/g?y" .......................... [ PASS] "http://a/b/c/d;p?q" * "#s" -> "http://a/b/c/d;p?q#s" ............ [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "#s" = "#s" ...................................................... [ PASS] "http://a/b/c/d;p?q#s" = "http://a/b/c/d;p?q#s" .................. [ PASS] "http://a/b/c/d;p?q" * "g#s" -> "http://a/b/c/g#s" ............... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "g#s" = "g#s" .................................................... [ PASS] "http://a/b/c/g#s" = "http://a/b/c/g#s" .......................... [ PASS] "http://a/b/c/d;p?q" * "g?y#s" -> "http://a/b/c/g?y#s" ........... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "g?y#s" = "g?y#s" ................................................ [ PASS] "http://a/b/c/g?y#s" = "http://a/b/c/g?y#s" ...................... [ PASS] "http://a/b/c/d;p?q" * ";x" -> "http://a/b/c/;x" ................. [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] ";x" = ";x" ...................................................... [ PASS] "http://a/b/c/;x" = "http://a/b/c/;x" ............................ [ PASS] "http://a/b/c/d;p?q" * "g;x" -> "http://a/b/c/g;x" ............... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "g;x" = "g;x" .................................................... [ PASS] "http://a/b/c/g;x" = "http://a/b/c/g;x" .......................... [ PASS] "http://a/b/c/d;p?q" * "g;x?y#s" -> "http://a/b/c/g;x?y#s" ....... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "g;x?y#s" = "g;x?y#s" ............................................ [ PASS] "http://a/b/c/g;x?y#s" = "http://a/b/c/g;x?y#s" .................. [ PASS] "http://a/b/c/d;p?q" * "." -> "http://a/b/c/" .................... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "." = "." ........................................................ [ PASS] "http://a/b/c/" = "http://a/b/c/" ................................ [ PASS] "http://a/b/c/d;p?q" * "./" -> "http://a/b/c/" ................... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "./" = "./" ...................................................... [ PASS] "http://a/b/c/" = "http://a/b/c/" ................................ [ PASS] "http://a/b/c/d;p?q" * ".." -> "http://a/b/" ..................... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] ".." = ".." ...................................................... [ PASS] "http://a/b/" = "http://a/b/" .................................... [ PASS] "http://a/b/c/d;p?q" * "../" -> "http://a/b/" .................... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "../" = "../" .................................................... [ PASS] "http://a/b/" = "http://a/b/" .................................... [ PASS] "http://a/b/c/d;p?q" * "../g" -> "http://a/b/g" .................. [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "../g" = "../g" .................................................. [ PASS] "http://a/b/g" = "http://a/b/g" .................................. [ PASS] "http://a/b/c/d;p?q" * "../.." -> "http://a/" .................... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "../.." = "../.." ................................................ [ PASS] "http://a/" = "http://a/" ........................................ [ PASS] "http://a/b/c/d;p?q" * "../../" -> "http://a/" ................... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "../../" = "../../" .............................................. [ PASS] "http://a/" = "http://a/" ........................................ [ PASS] "http://a/b/c/d;p?q" * "../../g" -> "http://a/g" ................. [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "../../g" = "../../g" ............................................ [ PASS] "http://a/g" = "http://a/g" ...................................... [ PASS] "http://a/b/c/d;p?q" * "" -> "http://a/b/c/d;p?q" ................ [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "" = "" .......................................................... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "http://a/b/c/d;p?q" * "../../../g" -> "http://a/g" .............. [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "../../../g" = "../../../g" ...................................... [ PASS] "http://a/g" = "http://a/g" ...................................... [ PASS] "http://a/b/c/d;p?q" * "../../../../g" -> "http://a/g" ........... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "../../../../g" = "../../../../g" ................................ [ PASS] "http://a/g" = "http://a/g" ...................................... [ PASS] "http://a/b/c/d;p?q" * "../../../.." -> "http://a/" .............. [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "../../../.." = "../../../.." .................................... [ PASS] "http://a/" = "http://a/" ........................................ [ PASS] "http://a/b/c/d;p?q" * "../../../../" -> "http://a/" ............. [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "../../../../" = "../../../../" .................................. [ PASS] "http://a/" = "http://a/" ........................................ [ PASS] "http://a/b/c/d;p?q" * "/./g" -> "http://a/g" .................... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "/./g" = "/./g" .................................................. [ PASS] "http://a/g" = "http://a/g" ...................................... [ PASS] "http://a/b/c/d;p?q" * "/../g" -> "http://a/g" ................... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "/../g" = "/../g" ................................................ [ PASS] "http://a/g" = "http://a/g" ...................................... [ PASS] "http://a/b/c/d;p?q" * "g.." -> "http://a/b/c/g.." ............... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "g.." = "g.." .................................................... [ PASS] "http://a/b/c/g.." = "http://a/b/c/g.." .......................... [ PASS] "http://a/b/c/d;p?q" * "..g" -> "http://a/b/c/..g" ............... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "..g" = "..g" .................................................... [ PASS] "http://a/b/c/..g" = "http://a/b/c/..g" .......................... [ PASS] "http://a/b/c/d;p?q" * "./../g" -> "http://a/b/g" ................ [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "./../g" = "./../g" .............................................. [ PASS] "http://a/b/g" = "http://a/b/g" .................................. [ PASS] "http://a/b/c/d;p?q" * "./g/." -> "http://a/b/c/g/" .............. [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "./g/." = "./g/." ................................................ [ PASS] "http://a/b/c/g/" = "http://a/b/c/g/" ............................ [ PASS] "http://a/b/c/d;p?q" * "g/./h" -> "http://a/b/c/g/h" ............. [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "g/./h" = "g/./h" ................................................ [ PASS] "http://a/b/c/g/h" = "http://a/b/c/g/h" .......................... [ PASS] "http://a/b/c/d;p?q" * "g/../h" -> "http://a/b/c/h" .............. [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "g/../h" = "g/../h" .............................................. [ PASS] "http://a/b/c/h" = "http://a/b/c/h" .............................. [ PASS] "http://a/b/c/d;p?q" * "g;x=1/./y" -> "http://a/b/c/g;x=1/y" ..... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "g;x=1/./y" = "g;x=1/./y" ........................................ [ PASS] "http://a/b/c/g;x=1/y" = "http://a/b/c/g;x=1/y" .................. [ PASS] "http://a/b/c/d;p?q" * "g;x=1/../y" -> "http://a/b/c/y" .......... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "g;x=1/../y" = "g;x=1/../y" ...................................... [ PASS] "http://a/b/c/y" = "http://a/b/c/y" .............................. [ PASS] "http://a/b/c/d;p?q" * "g?y/./x" -> "http://a/b/c/g?y/./x" ....... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "g?y/./x" = "g?y/./x" ............................................ [ PASS] "http://a/b/c/g?y/./x" = "http://a/b/c/g?y/./x" .................. [ PASS] "http://a/b/c/d;p?q" * "g?y/../x" -> "http://a/b/c/g?y/../x" ..... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "g?y/../x" = "g?y/../x" .......................................... [ PASS] "http://a/b/c/g?y/../x" = "http://a/b/c/g?y/../x" ................ [ PASS] "http://a/b/c/d;p?q" * "g#s/./x" -> "http://a/b/c/g#s/./x" ....... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "g#s/./x" = "g#s/./x" ............................................ [ PASS] "http://a/b/c/g#s/./x" = "http://a/b/c/g#s/./x" .................. [ PASS] "http://a/b/c/d;p?q" * "g#s/../x" -> "http://a/b/c/g#s/../x" ..... [ PASS] "http://a/b/c/d;p?q" = "http://a/b/c/d;p?q" ...................... [ PASS] "g#s/../x" = "g#s/../x" .......................................... [ PASS] "http://a/b/c/g#s/../x" = "http://a/b/c/g#s/../x" ................ [ PASS] 180 tests completed in 0.333 seconds. 180 out of 180 (100%) tests passed. -- done testing rfc test ------------------------------------------------- -- testing extra-test ---------------------------------------------------- "?a=b&c=d" * "" -> "?a=b&c=d" .................................... [ PASS] "http://a/b/c/d;p?q" * "" -> "http://a/b/c/d;p?q" ................ [ PASS] "" * "http://a/b/c/d;p?q" -> "http://a/b/c/d;p?q" ................ [ PASS] "http://a/b/c/d;p?q" * "http:" -> "http:" ........................ [ PASS] "http://a/b/c/d;p?q" * "..%2f" -> "http://a/b/c/..%2f" ........... [ PASS] "http://a/b/c/d/" * "" -> "http://a/b/c/d/" ...................... [ PASS] "http://a/b/c/d" * "" -> "http://a/b/c/d" ........................ [ PASS] "http://a/b/c/d/" * ".." -> "http://a/b/c/" ...................... [ PASS] "http://a/b/c/d/" * "../e" -> "http://a/b/c/e" ................... [ PASS] "http://a/b/c/d/" * "../e/" -> "http://a/b/c/e/" ................. [ PASS] "http://a/b//c///d///" * "../.." -> "http://a/b//c///d/" ......... [ PASS] "http://a/b/c/d/" * "..//x" -> "http://a/b/c//x" ................. [ PASS] "http://a" * "b" -> "http://a/b" ................................. [ PASS] "http://a//b//c" * "../../../.." -> "http://a/" .................. [ PASS] 14 tests completed in 0.027 seconds. 14 out of 14 (100%) tests passed. -- done testing extra-test ----------------------------------------------- -- testing reverse-extra-test -------------------------------------------- "http://a/b/c/d;p?q" * "http://a/b/c/d;p?q" -> "" ................ [ PASS] "http://a/b/c/d;p?q" * "http://a/b/c/e" -> "./e" ................. [ PASS] "http://a/b/c/d;p?q" * "http://a/b/c/" -> "./" ................... [ PASS] "http://a/b/c/d;p?q" * "http://a/b/e" -> "../e" .................. [ PASS] "http://a/b/c/d;p?q" * "http://a/b/c" -> "../c" .................. [ PASS] "http://a/b/c/d;p?q" * "http://a/b/" -> "../" .................... [ PASS] "http://a/b/c/d;p?q" * "http://a/" -> "/" ........................ [ PASS] "http://a/b/c/d;p?q" * "http://a" -> "//a" ....................... [ PASS] "http://a/b/c/d;p?q" * "http://b" -> "//b" ....................... [ PASS] "http://a/b/c/d;p?q" * "http://b/" -> "//b/" ..................... [ PASS] "http://a/b/c/d;p?q" * "http://b/c" -> "//b/c" ................... [ PASS] "http://a/b/c/d;p?q" * "ftp://a/b/c/d;p?q" -> "ftp://a/b/c/d;p?q" [ PASS] "http://a/b/c/d;p?q" * "ftp://x/y/z;a?b" -> "ftp://x/y/z;a?b" .... [ PASS] 13 tests completed in 0.028 seconds. 13 out of 13 (100%) tests passed. -- done testing reverse-extra-test --------------------------------------- -- testing uri-encode-string test ---------------------------------------- "foo?bar" -> "foo%3Fbar" ......................................... [ PASS] "foo&bar" -> "foo%26bar" ......................................... [ PASS] "foo%20bar" -> "foo%2520bar" ..................................... [ PASS] "foo\x00bar\n" -> "foo%00bar%0A" ................................. [ PASS] 4 tests completed in 0.001 seconds. 4 out of 4 (100%) tests passed. -- done testing uri-encode-string test ----------------------------------- -- testing uri-decode-string test ---------------------------------------- "foo%3Fbar" -> "foo?bar" ......................................... [ PASS] "foo%26bar" -> "foo&bar" ......................................... [ PASS] "foo%2520bar" -> "foo%20bar" ..................................... [ PASS] "foo%00bar%0A" -> "foo\x00bar\n" ................................. [ PASS] 4 tests completed in 0.001 seconds. 4 out of 4 (100%) tests passed. -- done testing uri-decode-string test ----------------------------------- -- testing normalize-case test ------------------------------------------- "http://exa%2fmple/FOO%2fbar" -> "http://exa%2Fmple/FOO%2Fbar" ... [ PASS] "http://EXA%2fMPLE/FOO%2fbar" -> "http://exa%2Fmple/FOO%2Fbar" ... [ PASS] "HTTP://example/" -> "http://example/" ........................... [ PASS] "http://user:PASS@example/FOO%2fbar" -> "http://user:PASS@example/FOO%2Fbar" [ PASS] "http://uS%2fer:PA%2fSS@example/FOO%2fbar" -> "http://uS%2Fer:PA%2FSS@example/FOO%2Fbar" [ PASS] "HTTP://example/?mooH=MUMBLe%2f" -> "http://example/?mooH=MUMBLe%2F" [ PASS] "http://example/#baR%2f" -> "http://example/#baR%2F" ............. [ PASS] 7 tests completed in 0.023 seconds. 7 out of 7 (100%) tests passed. -- done testing normalize-case test -------------------------------------- -- testing internal representations -------------------------------------- -- testing scheme ---------------------------------------------------- "http.:" decoded as http. .................................... [ PASS] http. encoded to "http.:" .................................... [ PASS] "http+:" decoded as http+ .................................... [ PASS] http+ encoded to "http+:" .................................... [ PASS] "http-:" decoded as http- .................................... [ PASS] http- encoded to "http-:" .................................... [ PASS] "HTTP:" decoded as HTTP ...................................... [ PASS] HTTP encoded to "HTTP:" ...................................... [ PASS] "" decoded as #f ............................................. [ PASS] #f encoded to "" ............................................. [ PASS] "/foo" decoded as #f ......................................... [ PASS] #f encoded to "/foo" ......................................... [ PASS] 12 tests completed in 0.002 seconds. 12 out of 12 (100%) tests passed. -- done testing scheme ----------------------------------------------- -- testing host ------------------------------------------------------ "//:123" decoded as "" ....................................... [ PASS] "" encoded to "//:123" ....................................... [ PASS] 2 tests completed in 0.001 seconds. 2 out of 2 (100%) tests passed. -- done testing host ------------------------------------------------- -- testing port ------------------------------------------------------ "//host:123" decoded as 123 .................................. [ PASS] 123 encoded to "//host:123" .................................. [ PASS] 2 tests completed in 0.005 seconds. 2 out of 2 (100%) tests passed. -- done testing port ------------------------------------------------- -- testing username -------------------------------------------------- "//foo" decoded as #f ........................................ [ PASS] #f encoded to "//foo" ........................................ [ PASS] "//@" decoded as "" .......................................... [ PASS] "" encoded to "//@" .......................................... [ PASS] "//foo@" decoded as "foo" .................................... [ PASS] "foo" encoded to "//foo@" .................................... [ PASS] "//foo:bar@" decoded as "foo" ................................ [ PASS] "foo" encoded to "//foo:bar@" ................................ [ PASS] "//foo:bar:qux@" decoded as "foo" ............................ [ PASS] "foo" encoded to "//foo:bar:qux@" ............................ [ PASS] "//foo%20bar@" decoded as "foo%20bar" ........................ [ PASS] "foo%20bar" encoded to "//foo%20bar@" ........................ [ PASS] "//foo%3Abar:qux@" decoded as "foo%3Abar" .................... [ PASS] "foo%3Abar" encoded to "//foo%3Abar:qux@" .................... [ PASS] "//foo%2Ebar@" decoded as "foo.bar" .......................... [ PASS] "foo.bar" encoded to "//foo.bar@" ............................ [ PASS] 16 tests completed in 0.005 seconds. 16 out of 16 (100%) tests passed. -- done testing username --------------------------------------------- -- testing password ------------------------------------------------- "//foo" decoded as #f ........................................ [ PASS] #f encoded to "//foo" ........................................ [ PASS] "//@" decoded as #f .......................................... [ PASS] #f encoded to "//@" .......................................... [ PASS] "//foo@" decoded as #f ....................................... [ PASS] #f encoded to "//foo@" ....................................... [ PASS] "//foo:bar@" decoded as "bar" ................................ [ PASS] "bar" encoded to "//foo:bar@" ................................ [ PASS] "//foo:bar:qux@" decoded as "bar:qux" ........................ [ PASS] "bar:qux" encoded to "//foo:bar:qux@" ........................ [ PASS] "//foo:bar%20qux@" decoded as "bar%20qux" .................... [ PASS] "bar%20qux" encoded to "//foo:bar%20qux@" .................... [ PASS] "//foo:bar%2Equx@" decoded as "bar.qux" ...................... [ PASS] "bar.qux" encoded to "//foo:bar.qux@" ........................ [ PASS] 14 tests completed in 0.004 seconds. 14 out of 14 (100%) tests passed. -- done testing password -------------------------------------------- -- testing path ------------------------------------------------------ "//foo" decoded as () ........................................ [ PASS] () encoded to "//foo" ........................................ [ PASS] "foo%20bar" decoded as ("foo%20bar") ......................... [ PASS] ("foo%20bar") encoded to "foo%20bar" ......................... [ PASS] "foo%2Fbar" decoded as ("foo/bar") ........................... [ PASS] ("foo/bar") encoded to "foo%2Fbar" ........................... [ PASS] "foo%2ebar" decoded as ("foo.bar") ........................... [ PASS] ("foo.bar") encoded to "foo.bar" ............................. [ PASS] "foo/bar%2Fqux" decoded as ("foo" "bar/qux") ................. [ PASS] ("foo" "bar/qux") encoded to "foo/bar%2Fqux" ................. [ PASS] "foo/" decoded as ("foo" "") ................................. [ PASS] ("foo" "") encoded to "foo/" ................................. [ PASS] "//foo//bar" decoded as (/ "" "bar") ......................... [ PASS] (/ "" "bar") encoded to "//foo//bar" ......................... [ PASS] "//foo///bar" decoded as (/ "" "" "bar") ..................... [ PASS] (/ "" "" "bar") encoded to "//foo///bar" ..................... [ PASS] "/foo//bar" decoded as (/ "foo" "" "bar") .................... [ PASS] (/ "foo" "" "bar") encoded to "/foo//bar" .................... [ PASS] "/foo///bar" decoded as (/ "foo" "" "" "bar") ................ [ PASS] (/ "foo" "" "" "bar") encoded to "/foo///bar" ................ [ PASS] "foo//bar" decoded as ("foo" "" "bar") ....................... [ PASS] ("foo" "" "bar") encoded to "foo//bar" ....................... [ PASS] "foo///bar" decoded as ("foo" "" "" "bar") ................... [ PASS] ("foo" "" "" "bar") encoded to "foo///bar" ................... [ PASS] "foo//" decoded as ("foo" "" "") ............................. [ PASS] ("foo" "" "") encoded to "foo//" ............................. [ PASS] "foo///" decoded as ("foo" "" "" "") ......................... [ PASS] ("foo" "" "" "") encoded to "foo///" ......................... [ PASS] "foo/bar:qux" decoded as ("foo" "bar:qux") ................... [ PASS] ("foo" "bar:qux") encoded to "foo/bar:qux" ................... [ PASS] "/foo%2Fbar" decoded as (/ "foo/bar") ........................ [ PASS] (/ "foo/bar") encoded to "/foo%2Fbar" ........................ [ PASS] "/foo/" decoded as (/ "foo" "") .............................. [ PASS] (/ "foo" "") encoded to "/foo/" .............................. [ PASS] "/" decoded as (/ "") ........................................ [ PASS] (/ "") encoded to "/" ........................................ [ PASS] "/?foo" decoded as (/ "") .................................... [ PASS] (/ "") encoded to "/?foo" .................................... [ PASS] "/#foo" decoded as (/ "") .................................... [ PASS] (/ "") encoded to "/#foo" .................................... [ PASS] "/foo:bar" decoded as (/ "foo:bar") .......................... [ PASS] (/ "foo:bar") encoded to "/foo:bar" .......................... [ PASS] 42 tests completed in 0.013 seconds. 42 out of 42 (100%) tests passed. -- done testing path ------------------------------------------------- -- testing query ---------------------------------------------------- "//" decoded as #f ........................................... [ PASS] #f encoded to "//" ........................................... [ PASS] "/?foo" decoded as "foo" ..................................... [ PASS] "foo" encoded to "/?foo" ..................................... [ PASS] "?foo" decoded as "foo" ...................................... [ PASS] "foo" encoded to "?foo" ...................................... [ PASS] "?foo?bar" decoded as "foo?bar" .............................. [ PASS] "foo?bar" encoded to "?foo?bar" .............................. [ PASS] "?foo/bar" decoded as "foo/bar" .............................. [ PASS] "foo/bar" encoded to "?foo/bar" .............................. [ PASS] "?foo%3Fbar" decoded as "foo%3Fbar" .......................... [ PASS] "foo%3Fbar" encoded to "?foo%3Fbar" .......................... [ PASS] "?foo%2Ebar" decoded as "foo.bar" ............................ [ PASS] "foo.bar" encoded to "?foo.bar" .............................. [ PASS] 14 tests completed in 0.003 seconds. 14 out of 14 (100%) tests passed. -- done testing query ----------------------------------------------- -- testing fragment -------------------------------------------------- "?foo" decoded as #f ......................................... [ PASS] #f encoded to "?foo" ......................................... [ PASS] "#bar" decoded as "bar" ...................................... [ PASS] "bar" encoded to "#bar" ...................................... [ PASS] "/#bar" decoded as "bar" ..................................... [ PASS] "bar" encoded to "/#bar" ..................................... [ PASS] "?foo#bar" decoded as "bar" .................................. [ PASS] "bar" encoded to "?foo#bar" .................................. [ PASS] "/?foo#bar" decoded as "bar" ................................. [ PASS] "bar" encoded to "/?foo#bar" ................................. [ PASS] "#foo?bar" decoded as "foo?bar" .............................. [ PASS] "foo?bar" encoded to "#foo?bar" .............................. [ PASS] "#foo/bar" decoded as "foo/bar" .............................. [ PASS] "foo/bar" encoded to "#foo/bar" .............................. [ PASS] "#foo%3Fbar" decoded as "foo%3Fbar" .......................... [ PASS] "foo%3Fbar" encoded to "#foo%3Fbar" .......................... [ PASS] "#foo%2Ebar" decoded as "foo.bar" ............................ [ PASS] "foo.bar" encoded to "#foo.bar" .............................. [ PASS] 18 tests completed in 0.008 seconds. 18 out of 18 (100%) tests passed. -- done testing fragment --------------------------------------------- 8 subgroups completed in 0.041 seconds. 8 out of 8 (100%) subgroups passed. -- done testing internal representations --------------------------------- -- testing absolute/relative distinction --------------------------------- "" is a relative ref ............................................. [ PASS] "" is not an URI ................................................. [ PASS] "" is not an absolute URI ........................................ [ PASS] (absolute-uri s) ................................................. [ PASS] "bar" is a relative ref .......................................... [ PASS] "bar" is not an URI .............................................. [ PASS] "bar" is not an absolute URI ..................................... [ PASS] (absolute-uri s) ................................................. [ PASS] "bar?a=b" is a relative ref ...................................... [ PASS] "bar?a=b" is not an URI .......................................... [ PASS] "bar?a=b" is not an absolute URI ................................. [ PASS] (absolute-uri s) ................................................. [ PASS] "bar#frag" is a relative ref ..................................... [ PASS] "bar#frag" is not an URI ......................................... [ PASS] "bar#frag" is not an absolute URI ................................ [ PASS] (absolute-uri s) ................................................. [ PASS] "bar?a=b#frag" is a relative ref ................................. [ PASS] "bar?a=b#frag" is not an URI ..................................... [ PASS] "bar?a=b#frag" is not an absolute URI ............................ [ PASS] (absolute-uri s) ................................................. [ PASS] "/" is a relative ref ............................................ [ PASS] "/" is not an URI ................................................ [ PASS] "/" is not an absolute URI ....................................... [ PASS] (absolute-uri s) ................................................. [ PASS] "/bar" is a relative ref ......................................... [ PASS] "/bar" is not an URI ............................................. [ PASS] "/bar" is not an absolute URI .................................... [ PASS] (absolute-uri s) ................................................. [ PASS] "/bar?a=b" is a relative ref ..................................... [ PASS] "/bar?a=b" is not an URI ......................................... [ PASS] "/bar?a=b" is not an absolute URI ................................ [ PASS] (absolute-uri s) ................................................. [ PASS] "/bar#frag" is a relative ref .................................... [ PASS] "/bar#frag" is not an URI ........................................ [ PASS] "/bar#frag" is not an absolute URI ............................... [ PASS] (absolute-uri s) ................................................. [ PASS] "/bar?a=b#frag" is a relative ref ................................ [ PASS] "/bar?a=b#frag" is not an URI .................................... [ PASS] "/bar?a=b#frag" is not an absolute URI ........................... [ PASS] (absolute-uri s) ................................................. [ PASS] "//foo" is a relative ref ........................................ [ PASS] "//foo" is not an URI ............................................ [ PASS] "//foo" is not an absolute URI ................................... [ PASS] (absolute-uri s) ................................................. [ PASS] "//foo?a=b" is a relative ref .................................... [ PASS] "//foo?a=b" is not an URI ........................................ [ PASS] "//foo?a=b" is not an absolute URI ............................... [ PASS] (absolute-uri s) ................................................. [ PASS] "//foo#frag" is a relative ref ................................... [ PASS] "//foo#frag" is not an URI ....................................... [ PASS] "//foo#frag" is not an absolute URI .............................. [ PASS] (absolute-uri s) ................................................. [ PASS] "//foo?a=b#frag" is a relative ref ............................... [ PASS] "//foo?a=b#frag" is not an URI ................................... [ PASS] "//foo?a=b#frag" is not an absolute URI .......................... [ PASS] (absolute-uri s) ................................................. [ PASS] "//foo/bar" is a relative ref .................................... [ PASS] "//foo/bar" is not an URI ........................................ [ PASS] "//foo/bar" is not an absolute URI ............................... [ PASS] (absolute-uri s) ................................................. [ PASS] "//foo/bar?a=b" is a relative ref ................................ [ PASS] "//foo/bar?a=b" is not an URI .................................... [ PASS] "//foo/bar?a=b" is not an absolute URI ........................... [ PASS] (absolute-uri s) ................................................. [ PASS] "//foo/bar#frag" is a relative ref ............................... [ PASS] "//foo/bar#frag" is not an URI ................................... [ PASS] "//foo/bar#frag" is not an absolute URI .......................... [ PASS] (absolute-uri s) ................................................. [ PASS] "//foo/bar?a=b#frag" is a relative ref ........................... [ PASS] "//foo/bar?a=b#frag" is not an URI ............................... [ PASS] "//foo/bar?a=b#frag" is not an absolute URI ...................... [ PASS] (absolute-uri s) ................................................. [ PASS] "http://foo" is not a relative ref ............................... [ PASS] "http://foo" is an URI ........................................... [ PASS] "http://foo" is an absolute URI .................................. [ PASS] (absolute-uri s) ................................................. [ PASS] "http://foo?a=b" is not a relative ref ........................... [ PASS] "http://foo?a=b" is an URI ....................................... [ PASS] "http://foo?a=b" is an absolute URI .............................. [ PASS] (absolute-uri s) ................................................. [ PASS] "http://foo/bar" is not a relative ref ........................... [ PASS] "http://foo/bar" is an URI ....................................... [ PASS] "http://foo/bar" is an absolute URI .............................. [ PASS] (absolute-uri s) ................................................. [ PASS] "http://foo/bar?a=b" is not a relative ref ....................... [ PASS] "http://foo/bar?a=b" is an URI ................................... [ PASS] "http://foo/bar?a=b" is an absolute URI .......................... [ PASS] (absolute-uri s) ................................................. [ PASS] "http://foo#frag" is not a relative ref .......................... [ PASS] "http://foo#frag" is an URI ...................................... [ PASS] "http://foo#frag" is not an absolute URI ......................... [ PASS] (absolute-uri s) ................................................. [ PASS] "http://foo?a=b#frag" is not a relative ref ...................... [ PASS] "http://foo?a=b#frag" is an URI .................................. [ PASS] "http://foo?a=b#frag" is not an absolute URI ..................... [ PASS] (absolute-uri s) ................................................. [ PASS] "http://foo/bar#frag" is not a relative ref ...................... [ PASS] "http://foo/bar#frag" is an URI .................................. [ PASS] "http://foo/bar#frag" is not an absolute URI ..................... [ PASS] (absolute-uri s) ................................................. [ PASS] "http://foo/bar?a=b#frag" is not a relative ref .................. [ PASS] "http://foo/bar?a=b#frag" is an URI .............................. [ PASS] "http://foo/bar?a=b#frag" is not an absolute URI ................. [ PASS] (absolute-uri s) ................................................. [ PASS] 104 tests completed in 0.061 seconds. 104 out of 104 (100%) tests passed. -- done testing absolute/relative distinction ---------------------------- -- testing absolute/relative path distinction ---------------------------- "/" is not a relative path ....................................... [ PASS] "/" is an absolute path .......................................... [ PASS] "/foo" is not a relative path .................................... [ PASS] "/foo" is an absolute path ....................................... [ PASS] "//foo/" is not a relative path .................................. [ PASS] "//foo/" is an absolute path ..................................... [ PASS] "http://foo/bar" is not a relative path .......................... [ PASS] "http://foo/bar" is an absolute path ............................. [ PASS] "http://foo/" is not a relative path ............................. [ PASS] "http://foo/" is an absolute path ................................ [ PASS] "http://foo/#qux" is not a relative path ......................... [ PASS] "http://foo/#qux" is an absolute path ............................ [ PASS] "http://foo/?bar=qux" is not a relative path ..................... [ PASS] "http://foo/?bar=qux" is an absolute path ........................ [ PASS] "" is a relative path ............................................ [ PASS] "" is not an absolute path ....................................... [ PASS] "http://foo" is a relative path .................................. [ PASS] "http://foo" is not an absolute path ............................. [ PASS] "//foo" is a relative path ....................................... [ PASS] "//foo" is not an absolute path .................................. [ PASS] "http://foo#bar" is a relative path .............................. [ PASS] "http://foo#bar" is not an absolute path ......................... [ PASS] "http://foo?bar=qux" is a relative path .......................... [ PASS] "http://foo?bar=qux" is not an absolute path ..................... [ PASS] 24 tests completed in 0.008 seconds. 24 out of 24 (100%) tests passed. -- done testing absolute/relative path distinction ----------------------- -- testing Invalid URI-references ---------------------------------------- ":" is not a valid uri-reference ................................. [ PASS] "1:" is not a valid uri-reference ................................ [ PASS] "//host:abc" is not a valid uri-reference ........................ [ PASS] " " is not a valid uri-reference ................................. [ PASS] "foo " is not a valid uri-reference .............................. [ PASS] " foo " is not a valid uri-reference ............................. [ PASS] "<foo" is not a valid uri-reference .............................. [ PASS] "foo>" is not a valid uri-reference .............................. [ PASS] "<foo>" is not a valid uri-reference ............................. [ PASS] "\"foo\"" is not a valid uri-reference ........................... [ PASS] "%" is not a valid uri-reference ................................. [ PASS] "abc%xyz" is not a valid uri-reference ........................... [ PASS] "http://foo.com/bar?a=b|c" is not a valid uri-reference .......... [ PASS] 13 tests completed in 0.003 seconds. 13 out of 13 (100%) tests passed. -- done testing Invalid URI-references ----------------------------------- -- testing miscellaneous ------------------------------------------------- (uri->string (update-uri (uri-reference "") path: '("foo:bar"))) . [ PASS] 1 test completed in 0.001 seconds. 1 out of 1 (100%) test passed. -- done testing miscellaneous -------------------------------------------- -- testing Example URIs from RFC 4151 ------------------------------------ tag:timothy@hpl.hp.com,2001:web/externalHome ..................... [ PASS] tag:sandro@w3.org,2004-05:Sandro ................................. [ PASS] tag:my-ids.com,2001-09-15:TimKindberg:presentations:UBath2004-05-19 [ PASS] tag:blogger.com,1999:blog-555 .................................... [ PASS] tag:yaml.org,2002:int ............................................ [ PASS] 5 tests completed in 0.009 seconds. 5 out of 5 (100%) tests passed. -- done testing Example URIs from RFC 4151 ------------------------------- -- testing Example URIs from RFC 4452 ------------------------------------ info:ddc/22/eng//004.678 ......................................... [ PASS] info:lccn/2002022641 ............................................. [ PASS] info:sici/0363-0277(19950315)120:5%3C%3E1.0.TX;2-V ............... [ PASS] info:bibcode/2003Icar..163..263Z ................................. [ PASS] 4 tests completed in 0.007 seconds. 4 out of 4 (100%) tests passed. -- done testing Example URIs from RFC 4452 ------------------------------- -- testing Example URIs from RFC 4452 ------------------------------------ sms:+15105550101 ................................................. [ PASS] sms:+15105550101,+15105550102 .................................... [ PASS] sms:+15105550101?body=hello%20there .............................. [ PASS] 3 tests completed in 0.005 seconds. 3 out of 3 (100%) tests passed. -- done testing Example URIs from RFC 4452 ------------------------------- -- testing Example URIs from RFC 4501 ------------------------------------ dns:www.example.org.?clAsS=IN;tYpE=A ............................. [ PASS] dns://192.168.1.1/ftp.example.org?type=A ......................... [ PASS] dns:world%20wide%20web.example%5c.domain.org?TYPE=TXT ............ [ PASS] dns://fw.example.org/*.%20%00.example?type=TXT ................... [ PASS] 4 tests completed in 0.004 seconds. 4 out of 4 (100%) tests passed. -- done testing Example URIs from RFC 4501 ------------------------------- -- testing Example URIs from RFC 5122 ------------------------------------ xmpp:nasty!%23$%25()*+,-.;=%3F%5B%5C%5D%5E_%60%7B%7C%7D~node@example.com [ PASS] xmpp:node@example.com/repulsive%20!%23%22$%25&'()*+,-.%2F:;%3C=%3E%3F%40%5B%5C%5D%5E_%60%7B%7C%7D~resource [ PASS] 2 tests completed in 0.007 seconds. 2 out of 2 (100%) tests passed. -- done testing Example URIs from RFC 5122 ------------------------------- -- testing manual constructor -------------------------------------------- (scheme: http host: "example.com" port: 123 path: (/ "foo" "bar") query: "a=b;c=d" fragment: "location") -> "http://example.com:123/foo/bar?a=b;c=d#location" [ PASS] (host: "example.com" port: 123 path: (/ "foo" "bar") query: "a=b;c=d" fragment: "location") -> "//example.com:123/foo/bar?a=b;c=d#location" [ PASS] (port: 123 path: (/ "foo" "bar") query: "a=b;c=d" fragment: "location") -> "/foo/bar?a=b;c=d#location" [ PASS] (path: ("foo" "bar") query: "a=b;c=d" fragment: "location") -> "foo/bar?a=b;c=d#location" [ PASS] (path: (/ "") query: "a=b;c=d" fragment: "location") -> "/?a=b;c=d#location" [ PASS] (query: "a=b;c=d" fragment: "location") -> "?a=b;c=d#location" ... [ PASS] (fragment: "location") -> "#location" ............................ [ PASS] (host: "example.com" query: "a=b;c=d") -> "//example.com?a=b;c=d" [ PASS] (host: "example.com" fragment: "location") -> "//example.com#location" [ PASS] (path: (/ "")) -> "/" ............................................ [ PASS] (path: (/)) -> "/" ............................................... [ PASS] (path: ()) -> "" ................................................. [ PASS] () -> "" ......................................................... [ PASS] 13 tests completed in 0.002 seconds. 13 out of 13 (100%) tests passed. -- done testing manual constructor --------------------------------------- 18 subgroups completed in 0.926 seconds. 18 out of 18 (100%) subgroups passed. -- done testing uri-generic --------------------------------------------------