pandoc/test/Tests/Readers/EPUB.hs
John MacFarlane 7e389cb3db Use NoImplicitPrelude and explicitly import Prelude.
This seems to be necessary if we are to use our custom Prelude
with ghci.

Closes #4464.
2018-03-18 10:46:28 -07:00

42 lines
1.2 KiB
Haskell

{-# LANGUAGE NoImplicitPrelude #-}
module Tests.Readers.EPUB (tests) where
import Prelude
import qualified Data.ByteString.Lazy as BL
import Test.Tasty
import Test.Tasty.HUnit
import qualified Text.Pandoc.Class as P
import Text.Pandoc.MediaBag (MediaBag, mediaDirectory)
import Text.Pandoc.Options
import Text.Pandoc.Readers.EPUB
getMediaBag :: FilePath -> IO MediaBag
getMediaBag fp = do
bs <- BL.readFile fp
P.runIOorExplode $ do
readEPUB def bs
P.getMediaBag
testMediaBag :: FilePath -> [(String, String, Int)] -> IO ()
testMediaBag fp bag = do
actBag <- mediaDirectory <$> getMediaBag fp
assertBool (show "MediaBag did not match:\nExpected: "
++ show bag
++ "\nActual: "
++ show actBag)
(actBag == bag)
featuresBag :: [(String, String, Int)]
featuresBag = [("img/check.gif","image/gif",1340)
,("img/check.jpg","image/jpeg",2661)
,("img/check.png","image/png",2815)
,("img/multiscripts_and_greek_alphabet.png","image/png",10060)
]
tests :: [TestTree]
tests =
[ testGroup "EPUB Mediabag"
[ testCase "features bag"
(testMediaBag "epub/img.epub" featuresBag)
]
]