pandoc/test/Tests/Readers/RTF.hs
John MacFarlane 6543b05116 Add RTF reader.
- `rtf` is now supported as an input format as well as output.
- New module Text.Pandoc.Readers.RTF (exporting `readRTF`). [API change]

Closes #3982.
2021-08-10 10:48:55 -07:00

48 lines
1.3 KiB
Haskell

{- |
Module : Tests.Readers.RTF
Copyright : © 2021 John MacFarlane
License : GNU GPL, version 2 or above
Maintainer : jgm@berkeley.edu
Stability : alpha
Portability : portable
Tests for the RTF reader.
-}
module Tests.Readers.RTF (tests) where
import Test.Tasty
import Tests.Helpers
import Test.Tasty.Golden (goldenVsString)
import qualified Data.ByteString as BS
import Text.Pandoc
import Text.Pandoc.UTF8 (toText, fromStringLazy)
import Data.Text (Text, unpack)
import System.FilePath (replaceExtension, (</>), (<.>))
rtfToNative :: Text -> Text
rtfToNative =
purely (writeNative def{ writerTemplate = Just mempty }) .
purely (readRTF def)
rtfTest :: TestName -> TestTree
rtfTest name = goldenVsString name native
(fromStringLazy . filter (/='\r') . unpack . rtfToNative . toText
<$> BS.readFile path)
where native = replaceExtension path ".native"
path = "rtf" </> name <.> "rtf"
tests :: [TestTree]
tests = map rtfTest [ "footnote"
, "accent"
, "unicode"
, "image"
, "link"
, "heading"
, "formatting"
, "list_simple"
, "list_complex"
, "bookmark"
, "table_simple"
]