pandoc/tests/Tests/Readers/EPUB.hs
John MacFarlane 095b05e4f9 EPUB tests: don't use joinPath, which varies across platforms.
Instead, use a forward-slash to join paths, regardless of the
platform. This matches the way MediaBag now works.

See
56e4ecab20 (commitcomment-10858449)
2015-04-22 17:38:59 -07:00

38 lines
1.2 KiB
Haskell

module Tests.Readers.EPUB (tests) where
import Text.Pandoc.Options
import Test.Framework
import Test.HUnit (assertBool)
import Test.Framework.Providers.HUnit
import qualified Data.ByteString.Lazy as BL
import Text.Pandoc.Readers.EPUB
import Text.Pandoc.MediaBag (MediaBag, mediaDirectory)
import Control.Applicative
import Text.Pandoc.Error
getMediaBag :: FilePath -> IO MediaBag
getMediaBag fp = snd . handleError . readEPUB def <$> BL.readFile fp
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 :: [Test]
tests =
[ testGroup "EPUB Mediabag"
[ testCase "features bag"
(testMediaBag "epub/img.epub" featuresBag)
]
]