@@ -1,17 +1,26 @@
1{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, TemplateHaskell #-}
1{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, TemplateHaskell #-}
2-- Utility functions for the test suite.
2-- Utility functions for the test suite.
4−module Tests.Helpers where
4+module Tests.Helpers ( lit
6import Text.Pandoc.Definition
13import Text.Pandoc.Definition
7import Text.Pandoc.Builder (Inlines, Blocks, doc, plain)
14import Text.Pandoc.Builder (Inlines, Blocks, doc, plain)
8import Test.Framework
15import Test.Framework
9import Test.Framework.Providers.HUnit
16import Test.Framework.Providers.HUnit
10−import Test.HUnit hiding (Test)
17+import Test.Framework.Providers.QuickCheck2
18+import Test.HUnit (assertBool)
11import Text.Pandoc.Shared (normalize, defaultWriterOptions,
19import Text.Pandoc.Shared (normalize, defaultWriterOptions,
12 WriterOptions(..), removeTrailingSpace)
20 WriterOptions(..), removeTrailingSpace)
13import Text.Pandoc.Writers.Native (writeNative)
21import Text.Pandoc.Writers.Native (writeNative)
14import Language.Haskell.TH.Quote
22import Language.Haskell.TH.Quote
23+import qualified Test.QuickCheck.Property as QP
16lit :: QuasiQuoter
25lit :: QuasiQuoter
17lit = QuasiQuoter ((\a -> let b = rnl a in [|b|]) . filter (/= '\r')) $
26lit = QuasiQuoter ((\a -> let b = rnl a in [|b|]) . filter (/= '\r')) $
@@ -37,6 +46,9 @@ test fn name (input, expected) =
37 dashes x = '\n' : replicate (72 - length x - 5) '-' ++ " " ++
46 dashes x = '\n' : replicate (72 - length x - 5) '-' ++ " " ++
38 x ++ " ---\n"
47 x ++ " ---\n"
49+property :: QP.Testable a => TestName -> a -> Test
50+property = testProperty
40infix 6 =?>
52infix 6 =?>
41(=?>) :: a -> b -> (a,b)
53(=?>) :: a -> b -> (a,b)
42x =?> y = (x, y)
54x =?> y = (x, y)