@@ -9,6 +9,7 @@ import Test.Framework.Providers.HUnit
9import Test.HUnit ( assertBool, (@?=) )
9import Test.HUnit ( assertBool, (@?=) )
10import Text.Pandoc.Builder
10import Text.Pandoc.Builder
11import Data.Monoid
11import Data.Monoid
12+import System.FilePath (joinPath)
13tests :: [Test]
14tests :: [Test]
14tests = [ testGroup "normalize"
15tests = [ testGroup "normalize"
@@ -40,21 +41,21 @@ p_normalize_no_trailing_spaces ils = null ils' || last ils' /= Space
41testCollapse :: [Test]
42testCollapse :: [Test]
42testCollapse = map (testCase "collapse")
43testCollapse = map (testCase "collapse")
43− [ (collapseFilePath "" @?= "")
44+ [ (collapseFilePath (joinPath [ ""]) @?= (joinPath [ ""]))
44− , (collapseFilePath "./foo" @?= "foo")
45+ , (collapseFilePath (joinPath [ ".","foo"]) @?= (joinPath [ "foo"]))
45− , (collapseFilePath "././../foo" @?= "../foo")
46+ , (collapseFilePath (joinPath [ ".",".","..","foo"]) @?= (joinPath [ joinPath ["..", "foo"]]))
46− , (collapseFilePath "../foo" @?= "../foo")
47+ , (collapseFilePath (joinPath [ "..","foo"]) @?= (joinPath [ "..","foo"]))
47− , (collapseFilePath "/bar/../baz" @?= "/baz")
48+ , (collapseFilePath (joinPath [ "","bar","..","baz"]) @?= (joinPath [ "","baz"]))
48− , (collapseFilePath "/../baz" @?= "/../baz")
49+ , (collapseFilePath (joinPath [ "","..","baz"]) @?= (joinPath [ "","..","baz"]))
49− , (collapseFilePath "./foo/.././bar/../././baz" @?= "baz")
50+ , (collapseFilePath (joinPath [ ".","foo","..",".","bar","..",".",".","baz"]) @?= (joinPath [ "baz"]))
50− , (collapseFilePath "./" @?= "")
51+ , (collapseFilePath (joinPath [ ".",""]) @?= (joinPath [ ""]))
51− , (collapseFilePath "././" @?= "")
52+ , (collapseFilePath (joinPath [ ".",".",""]) @?= (joinPath [ ""]))
52− , (collapseFilePath "../" @?= "..")
53+ , (collapseFilePath (joinPath [ "..",""]) @?= (joinPath [ ".."]))
53− , (collapseFilePath ".././" @?= "..")
54+ , (collapseFilePath (joinPath [ "..",".",""]) @?= (joinPath [ ".."]))
54− , (collapseFilePath "./../" @?= "..")
55+ , (collapseFilePath (joinPath [ ".","..",""]) @?= (joinPath [ ".."]))
55− , (collapseFilePath "../../" @?= "../..")
56+ , (collapseFilePath (joinPath [ "..","..",""]) @?= (joinPath [ "..",".."]))
56− , (collapseFilePath "parent/foo/baz/../bar" @?= "parent/foo/bar")
57+ , (collapseFilePath (joinPath [ "parent","foo","baz","..","bar"]) @?= (joinPath [ "parent","foo","bar"]))
57− , (collapseFilePath "parent/foo/baz/../../bar" @?= "parent/bar")
58+ , (collapseFilePath (joinPath [ "parent","foo","baz","..","..","bar"]) @?= (joinPath [ "parent","bar"]))
58− , (collapseFilePath "parent/foo/.." @?= "parent")
59+ , (collapseFilePath (joinPath [ "parent","foo",".."]) @?= (joinPath [ "parent"]))
59− , (collapseFilePath "/parent/foo/../../bar" @?= "/bar")
60+ , (collapseFilePath (joinPath [ "","parent","foo","..","..","bar"]) @?= (joinPath [ "","bar"]))
60− , (collapseFilePath "/./parent/foo" @?= "/parent/foo")]
61+ , (collapseFilePath (joinPath [ "",".","parent","foo"]) @?= (joinPath [ "","parent","foo"]))]