aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/Tests/Helpers.hs46
-rw-r--r--tests/Tests/Readers/LaTeX.hs45
2 files changed, 45 insertions, 46 deletions
diff --git a/tests/Tests/Helpers.hs b/tests/Tests/Helpers.hs
index 539b26dcd..08cc9b63b 100644
--- a/tests/Tests/Helpers.hs
+++ b/tests/Tests/Helpers.hs
@@ -1,34 +1,32 @@
+{-# LANGUAGE TypeSynonymInstances #-}
-- Utility functions for the test suite.
module Tests.Helpers where
import Text.Pandoc
-
+import Text.Pandoc.Builder
import Test.Framework
import Test.Framework.Providers.HUnit
import Test.HUnit hiding (Test)
-data Expect = Inline Inline
- | Inlines [Inline]
- | Block Block
- | Blocks [Block]
-
-assertPandoc :: Expect -> Pandoc -> Assertion
-assertPandoc (Inline e) (Pandoc _ [Para [g]]) = e @=? g
-assertPandoc (Inlines e) (Pandoc _ [Para g] ) = e @=? g
-assertPandoc (Block e) (Pandoc _ [g] ) = e @=? g
-assertPandoc (Blocks e) (Pandoc _ g ) = e @=? g
-assertPandoc _ _ = assertFailure "Wrong structure of Pandoc document."
-
-latexTest :: String -> String -> Expect -> Test
-latexTest = readerTestWithState defaultParserState readLaTeX
-
-readerTestWithState :: ParserState
- -> (ParserState -> String -> Pandoc)
- -> String
- -> String
- -> Expect
- -> Test
-readerTestWithState state reader name string e =
- testCase name $ e `assertPandoc` reader state string
+-- in Helpers
+class Expect a where
+ (=?>) :: Pandoc -> a -> Assertion
+
+infix 8 =?>
+
+(=:) :: TestName -> Assertion -> Test
+(=:) = testCase
+
+infix 6 =:
+
+instance Expect Inlines where
+ (Pandoc _ [Para ils]) =?> e = assertEqual " " (toList e) ils
+ g =?> e = assertEqual " " (doc $ para e) g
+
+instance Expect Blocks where
+ (Pandoc _ bls) =?> e = assertEqual " " (toList e) bls
+
+instance Expect Pandoc where
+ g =?> e = assertEqual " " e g
diff --git a/tests/Tests/Readers/LaTeX.hs b/tests/Tests/Readers/LaTeX.hs
index 99ccb3fe2..69355a5c8 100644
--- a/tests/Tests/Readers/LaTeX.hs
+++ b/tests/Tests/Readers/LaTeX.hs
@@ -1,36 +1,37 @@
module Tests.Readers.LaTeX (tests) where
import Text.Pandoc.Definition
-
import Test.Framework
import Tests.Helpers
+import Text.Pandoc.Builder
+import Text.Pandoc
+
+latex :: String -> Pandoc
+latex = readLaTeX defaultParserState{stateSmart = True}
tests :: [Test]
tests = [ testGroup "basic"
- [ latexTest "simplest" "word" (Inline $ Str "word")
- , latexTest "space" "some text"
- (Inlines $ [Str "some", Space, Str "text"])
-
- , latexTest "emphasis" "\\emph{emphasized}"
- (Inline $ Emph [Str "emphasized"])
+ [ "simple" =:
+ latex "word" =?> str "wor d"
+ , "space" =:
+ latex "some text" =?> text "some text"
+ , "emphasized" =:
+ latex "\\emph{emphasized}" =?> (emph $ str "emphasized")
]
, testGroup "headers"
- [ latexTest "1. level" "\\section{header}"
- $ Block $ Header 1 [Str "header"]
-
- , latexTest "2. level" "\\subsection{header}"
- $ Block $ Header 2 [Str "header"]
-
- , latexTest "3. level" "\\subsubsection{header}"
- $ Block $ Header 3 [Str "header"]
-
- , latexTest "with emphasis" "\\section{text \\emph{emph}}"
- $ Block $ Header 1 [Str "text", Space, Emph [Str "emph"]]
-
- , latexTest "with link" "\\section{text \\href{/url}{link}}"
- $ Block
- $ Header 1 [Str "text", Space, Link [Str "link"] ("/url", "")]
+ [ "level 1" =:
+ latex "\\section{header}" =?> header 1 (str "header")
+ , "level 2" =:
+ latex "\\subsection{header}" =?> header 2 (str "header")
+ , "level 3" =:
+ latex "\\subsubsection{header}" =?> header 3 (str "header")
+ , "emph" =:
+ latex "\\section{text \\emph{emph}}" =?>
+ header 1 (str "text2" +++ space +++ emph (str "emph"))
+ , "link" =:
+ latex "\\section{text \\href{/url}{link}}" =?>
+ header 1 (str "text" +++ space +++ link "/url" "" (str "link"))
]
]