texrunner-0.0.1.0: tests/Tex/PDF.hs
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
module Tex.PDF where
import Data.ByteString.Lazy.Char8 as B
import Data.Maybe
import System.Exit
import Test.HUnit
import Test.Framework.Providers.HUnit
import System.Texrunner
import System.Texrunner.Online
tests = [tex, latex, context, texOnline, latexOnline, contextOnline]
texTests = [tex, texOnline]
latexTests = [latex, latexOnline]
contextTests = [context, contextOnline]
texDocument :: ByteString
texDocument = "hi\\bye"
latexDocument :: ByteString
latexDocument = B.unlines
[ "\\documentclass{article}"
, "\\begin{document}"
, "hi"
, "\\end{document}"
]
contextDocument :: ByteString
contextDocument = B.unlines
[ "\\starttext"
, "hi"
, "\\stoptext"
]
tex = testRunTeX "pdftex" [] texDocument
latex = testRunTeX "pdflatex" [] latexDocument
context = testRunTeX "context" ["--once"] contextDocument
testRunTeX command args document = testCase command $ do
(exitCode, _, mPDF) <- runTex command args [] document
exitCode @?= ExitSuccess
assertBool "pdf found" $ isJust mPDF
-- online
testOnlineTeX command args document = testCase (command ++ "Online") $ do
((), _, mPDF) <- runOnlineTex' command args "" (texPutStrLn $ toStrict document)
assertBool "pdf found" $ isJust mPDF
texOnline = testOnlineTeX "pdftex" [] texDocument
latexOnline = testOnlineTeX "pdflatex" [] latexDocument
contextOnline = testOnlineTeX "context" ["--pipe"] contextDocument
-- tests to make:
-- * texinputs for files in cwd
-- * pdf made online