summaryrefslogtreecommitdiff
path: root/tests/Tests/Writers/Markdown.hs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Tests/Writers/Markdown.hs')
-rw-r--r--tests/Tests/Writers/Markdown.hs263
1 files changed, 0 insertions, 263 deletions
diff --git a/tests/Tests/Writers/Markdown.hs b/tests/Tests/Writers/Markdown.hs
deleted file mode 100644
index aab916b38..000000000
--- a/tests/Tests/Writers/Markdown.hs
+++ /dev/null
@@ -1,263 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
-module Tests.Writers.Markdown (tests) where
-
-import Test.Framework
-import Text.Pandoc.Builder
-import Text.Pandoc
-import Tests.Helpers
-import Text.Pandoc.Arbitrary()
-
-markdown :: (ToPandoc a) => a -> String
-markdown = writeMarkdown def . toPandoc
-
-markdownWithOpts :: (ToPandoc a) => WriterOptions -> a -> String
-markdownWithOpts opts x = writeMarkdown opts $ toPandoc x
-
-{-
- "my test" =: X =?> Y
-
-is shorthand for
-
- test markdown "my test" $ X =?> Y
-
-which is in turn shorthand for
-
- test markdown "my test" (X,Y)
--}
-
-infix 4 =:
-(=:) :: (ToString a, ToPandoc a)
- => String -> (a, String) -> Test
-(=:) = test markdown
-
-tests :: [Test]
-tests = [ "indented code after list"
- =: (orderedList [ para "one" <> para "two" ] <> codeBlock "test")
- =?> "1. one\n\n two\n\n<!-- -->\n\n test"
- , "list with tight sublist"
- =: bulletList [ plain "foo" <> bulletList [ plain "bar" ],
- plain "baz" ]
- =?> "- foo\n - bar\n- baz\n"
- ] ++ [noteTests] ++ [shortcutLinkRefsTests]
-
-{-
-
-Testing with the following text:
-
-First Header
-============
-
-This is a footnote.[^1] And this is a [link](https://www.google.com).
-
-> A note inside a block quote.[^2]
->
-> A second paragraph.
-
-Second Header
-=============
-
-Some more text.
-
-
-[^1]: Down here.
-
-[^2]: The second note.
-
--}
-
-noteTestDoc :: Blocks
-noteTestDoc =
- header 1 "First Header" <>
- para ("This is a footnote." <>
- note (para "Down here.") <>
- " And this is a " <>
- link "https://www.google.com" "" "link" <>
- ".") <>
- blockQuote (para ("A note inside a block quote." <>
- note (para "The second note.")) <>
- para ("A second paragraph.")) <>
- header 1 "Second Header" <>
- para "Some more text."
-
-
-
-noteTests :: Test
-noteTests = testGroup "note and reference location"
- [ test (markdownWithOpts def)
- "footnotes at the end of a document" $
- noteTestDoc =?>
- (unlines $ [ "First Header"
- , "============"
- , ""
- , "This is a footnote.[^1] And this is a [link](https://www.google.com)."
- , ""
- , "> A note inside a block quote.[^2]"
- , ">"
- , "> A second paragraph."
- , ""
- , "Second Header"
- , "============="
- , ""
- , "Some more text."
- , ""
- , "[^1]: Down here."
- , ""
- , "[^2]: The second note."
- ])
- , test (markdownWithOpts def{writerReferenceLocation=EndOfBlock})
- "footnotes at the end of blocks" $
- noteTestDoc =?>
- (unlines $ [ "First Header"
- , "============"
- , ""
- , "This is a footnote.[^1] And this is a [link](https://www.google.com)."
- , ""
- , "[^1]: Down here."
- , ""
- , "> A note inside a block quote.[^2]"
- , ">"
- , "> A second paragraph."
- , ""
- , "[^2]: The second note."
- , ""
- , "Second Header"
- , "============="
- , ""
- , "Some more text."
- ])
- , test (markdownWithOpts def{writerReferenceLocation=EndOfBlock, writerReferenceLinks=True})
- "footnotes and reference links at the end of blocks" $
- noteTestDoc =?>
- (unlines $ [ "First Header"
- , "============"
- , ""
- , "This is a footnote.[^1] And this is a [link]."
- , ""
- , "[^1]: Down here."
- , ""
- , " [link]: https://www.google.com"
- , ""
- , "> A note inside a block quote.[^2]"
- , ">"
- , "> A second paragraph."
- , ""
- , "[^2]: The second note."
- , ""
- , "Second Header"
- , "============="
- , ""
- , "Some more text."
- ])
- , test (markdownWithOpts def{writerReferenceLocation=EndOfSection})
- "footnotes at the end of section" $
- noteTestDoc =?>
- (unlines $ [ "First Header"
- , "============"
- , ""
- , "This is a footnote.[^1] And this is a [link](https://www.google.com)."
- , ""
- , "> A note inside a block quote.[^2]"
- , ">"
- , "> A second paragraph."
- , ""
- , "[^1]: Down here."
- , ""
- , "[^2]: The second note."
- , ""
- , "Second Header"
- , "============="
- , ""
- , "Some more text."
- ])
-
- ]
-
-shortcutLinkRefsTests :: Test
-shortcutLinkRefsTests =
- let infix 4 =:
- (=:) :: (ToString a, ToPandoc a)
-
- => String -> (a, String) -> Test
- (=:) = test (writeMarkdown (def {writerReferenceLinks = True}) . toPandoc)
- in testGroup "Shortcut reference links"
- [ "Simple link (shortcutable)"
- =: (para (link "/url" "title" "foo"))
- =?> "[foo]\n\n [foo]: /url \"title\""
- , "Followed by another link (unshortcutable)"
- =: (para ((link "/url1" "title1" "first")
- <> (link "/url2" "title2" "second")))
- =?> unlines [ "[first][][second]"
- , ""
- , " [first]: /url1 \"title1\""
- , " [second]: /url2 \"title2\""
- ]
- , "Followed by space and another link (unshortcutable)"
- =: (para ((link "/url1" "title1" "first") <> " "
- <> (link "/url2" "title2" "second")))
- =?> unlines [ "[first][] [second]"
- , ""
- , " [first]: /url1 \"title1\""
- , " [second]: /url2 \"title2\""
- ]
- , "Reference link is used multiple times (unshortcutable)"
- =: (para ((link "/url1" "" "foo") <> (link "/url2" "" "foo")
- <> (link "/url3" "" "foo")))
- =?> unlines [ "[foo][][foo][1][foo][2]"
- , ""
- , " [foo]: /url1"
- , " [1]: /url2"
- , " [2]: /url3"
- ]
- , "Reference link is used multiple times (unshortcutable)"
- =: (para ((link "/url1" "" "foo") <> " " <> (link "/url2" "" "foo")
- <> " " <> (link "/url3" "" "foo")))
- =?> unlines [ "[foo][] [foo][1] [foo][2]"
- , ""
- , " [foo]: /url1"
- , " [1]: /url2"
- , " [2]: /url3"
- ]
- , "Reference link is followed by text in brackets"
- =: (para ((link "/url" "" "link") <> "[text in brackets]"))
- =?> unlines [ "[link][]\\[text in brackets\\]"
- , ""
- , " [link]: /url"
- ]
- , "Reference link is followed by space and text in brackets"
- =: (para ((link "/url" "" "link") <> " [text in brackets]"))
- =?> unlines [ "[link][] \\[text in brackets\\]"
- , ""
- , " [link]: /url"
- ]
- , "Reference link is followed by RawInline"
- =: (para ((link "/url" "" "link") <> rawInline "markdown" "[rawText]"))
- =?> unlines [ "[link][][rawText]"
- , ""
- , " [link]: /url"
- ]
- , "Reference link is followed by space and RawInline"
- =: (para ((link "/url" "" "link") <> space <> rawInline "markdown" "[rawText]"))
- =?> unlines [ "[link][] [rawText]"
- , ""
- , " [link]: /url"
- ]
- , "Reference link is followed by RawInline with space"
- =: (para ((link "/url" "" "link") <> rawInline "markdown" " [rawText]"))
- =?> unlines [ "[link][] [rawText]"
- , ""
- , " [link]: /url"
- ]
- , "Reference link is followed by citation"
- =: (para ((link "/url" "" "link") <> cite [Citation "author" [] [] NormalCitation 0 0] (str "[@author]")))
- =?> unlines [ "[link][][@author]"
- , ""
- , " [link]: /url"
- ]
- , "Reference link is followed by space and citation"
- =: (para ((link "/url" "" "link") <> space <> cite [Citation "author" [] [] NormalCitation 0 0] (str "[@author]")))
- =?> unlines [ "[link][] [@author]"
- , ""
- , " [link]: /url"
- ]
- ]