d43b8a5f45859f1690da994900e6c6c0f4b99f07
[ghc-hetmet.git] / ghc / tests / lib / should_run / uri001.hs
1 module Main where
2
3 import URI
4 import Maybe
5 import IOExts
6
7 main =  sequence_ (map do_test tests)
8
9 base = fromJust (parseURI "http://a/b/c/d;p?q")
10
11 do_test test = case parseURI test of
12                         Nothing -> error ("no parse: " ++ test)
13                         Just uri -> putStr (show (fromJust (uri `relativeTo` base)) ++ "\n")
14
15 tests =
16   [   "g:h",
17       "g",
18       "./g",
19       "g/",
20       "/g",
21       "//g",
22       "?y",
23       "g?y",
24       "#s",
25       "g#s",
26       "g?y#s",
27       ";x",
28       "g;x",
29       "g;x?y#s",
30       ".",
31       "./",
32       "..",
33       "../",
34       "../g",
35       "../..",
36       "../../",
37       "../../g",
38       -- "../../../g" -- should fail
39       -- "../../../../g" -- should fail
40       "/./g",
41       "/../g",
42       "g.",
43       ".g",
44       "g..",
45       "..g",
46       "./../g",
47       "./g/.",
48       "g/./h",
49       "g/../h",
50       "g;x=1/./y",
51       "g;x=1/../y",
52       "g?y/./x",
53       "g?y/../x",
54       "g#s/./x",
55       "g#s/../x"
56   ]