c423dbb5a3
This is needed for ghci to work with pandoc, given that we now use a custom prelude. Closes #2503.
61 lines
2.9 KiB
Haskell
61 lines
2.9 KiB
Haskell
module Tests.Shared (tests) where
|
|
|
|
import Prelude
|
|
import Text.Pandoc.Definition
|
|
import Text.Pandoc.Shared
|
|
import Test.Framework
|
|
import Tests.Helpers
|
|
import Tests.Arbitrary()
|
|
import Test.Framework.Providers.HUnit
|
|
import Test.HUnit ( assertBool, (@?=) )
|
|
import Text.Pandoc.Builder
|
|
import System.FilePath.Posix (joinPath)
|
|
|
|
tests :: [Test]
|
|
tests = [ testGroup "normalize"
|
|
[ property "p_normalize_blocks_rt" p_normalize_blocks_rt
|
|
, property "p_normalize_inlines_rt" p_normalize_inlines_rt
|
|
, property "p_normalize_no_trailing_spaces"
|
|
p_normalize_no_trailing_spaces
|
|
]
|
|
, testGroup "compactify'DL"
|
|
[ testCase "compactify'DL with empty def" $
|
|
assertBool "compactify'DL"
|
|
(let x = [(str "word", [para (str "def"), mempty])]
|
|
in compactify'DL x == x)
|
|
]
|
|
, testGroup "collapseFilePath" testCollapse
|
|
]
|
|
|
|
p_normalize_blocks_rt :: [Block] -> Bool
|
|
p_normalize_blocks_rt bs =
|
|
normalizeBlocks bs == normalizeBlocks (normalizeBlocks bs)
|
|
|
|
p_normalize_inlines_rt :: [Inline] -> Bool
|
|
p_normalize_inlines_rt ils =
|
|
normalizeInlines ils == normalizeInlines (normalizeInlines ils)
|
|
|
|
p_normalize_no_trailing_spaces :: [Inline] -> Bool
|
|
p_normalize_no_trailing_spaces ils = null ils' || last ils' /= Space
|
|
where ils' = normalizeInlines $ ils ++ [Space]
|
|
|
|
testCollapse :: [Test]
|
|
testCollapse = map (testCase "collapse")
|
|
[ (collapseFilePath (joinPath [ ""]) @?= (joinPath [ ""]))
|
|
, (collapseFilePath (joinPath [ ".","foo"]) @?= (joinPath [ "foo"]))
|
|
, (collapseFilePath (joinPath [ ".",".","..","foo"]) @?= (joinPath [ joinPath ["..", "foo"]]))
|
|
, (collapseFilePath (joinPath [ "..","foo"]) @?= (joinPath [ "..","foo"]))
|
|
, (collapseFilePath (joinPath [ "","bar","..","baz"]) @?= (joinPath [ "","baz"]))
|
|
, (collapseFilePath (joinPath [ "","..","baz"]) @?= (joinPath [ "","..","baz"]))
|
|
, (collapseFilePath (joinPath [ ".","foo","..",".","bar","..",".",".","baz"]) @?= (joinPath [ "baz"]))
|
|
, (collapseFilePath (joinPath [ ".",""]) @?= (joinPath [ ""]))
|
|
, (collapseFilePath (joinPath [ ".",".",""]) @?= (joinPath [ ""]))
|
|
, (collapseFilePath (joinPath [ "..",""]) @?= (joinPath [ ".."]))
|
|
, (collapseFilePath (joinPath [ "..",".",""]) @?= (joinPath [ ".."]))
|
|
, (collapseFilePath (joinPath [ ".","..",""]) @?= (joinPath [ ".."]))
|
|
, (collapseFilePath (joinPath [ "..","..",""]) @?= (joinPath [ "..",".."]))
|
|
, (collapseFilePath (joinPath [ "parent","foo","baz","..","bar"]) @?= (joinPath [ "parent","foo","bar"]))
|
|
, (collapseFilePath (joinPath [ "parent","foo","baz","..","..","bar"]) @?= (joinPath [ "parent","bar"]))
|
|
, (collapseFilePath (joinPath [ "parent","foo",".."]) @?= (joinPath [ "parent"]))
|
|
, (collapseFilePath (joinPath [ "","parent","foo","..","..","bar"]) @?= (joinPath [ "","bar"]))
|
|
, (collapseFilePath (joinPath [ "",".","parent","foo"]) @?= (joinPath [ "","parent","foo"]))]
|