{-# LANGUAGE OverloadedStrings #-} module Tests.Writers.Docbook (tests) where import Test.Framework import Text.Pandoc.Builder import Text.Pandoc import Tests.Helpers import Tests.Arbitrary() docbook :: (ToString a, ToPandoc a) => a -> String docbook = writeDocbook def{ writerWrapText = False } . toPandoc {- "my test" =: X =?> Y is shorthand for test docbook "my test" $ X =?> Y which is in turn shorthand for test docbook "my test" (X,Y) -} infix 4 =: (=:) :: (ToString a, ToPandoc a) => String -> (a, String) -> Test (=:) = test docbook lineblock :: Blocks lineblock = para ("some text" <> linebreak <> "and more lines" <> linebreak <> "and again") lineblock_out :: String lineblock_out = "some text\n" ++ "and more lines\n" ++ "and again" tests :: [Test] tests = [ testGroup "line blocks" [ "none" =: para "This is a test" =?> "\n This is a test\n" , "basic" =: lineblock =?> lineblock_out , "blockquote" =: blockQuote lineblock =?> ("
\n" ++ lineblock_out ++ "\n
") , "footnote" =: para ("This is a test" <> note lineblock <> " of footnotes") =?> ("\n This is a test\n" ++ lineblock_out ++ "\n of footnotes\n") ] ]