commit
143d5b7328
3 changed files with 27 additions and 0 deletions
|
@ -385,6 +385,7 @@ Test-Suite test-pandoc
|
|||
syb >= 0.1 && < 0.5,
|
||||
pandoc,
|
||||
pandoc-types >= 1.12.3.3 && < 1.13,
|
||||
base64-bytestring >= 0.1 && < 1.1,
|
||||
bytestring >= 0.9 && < 0.11,
|
||||
text >= 0.11 && < 1.2,
|
||||
directory >= 1 && < 1.3,
|
||||
|
|
|
@ -5,7 +5,10 @@ import Text.Pandoc.Readers.Native
|
|||
import Text.Pandoc.Definition
|
||||
import Tests.Helpers
|
||||
import Test.Framework
|
||||
import qualified Data.ByteString as BS
|
||||
import qualified Data.ByteString.Lazy as B
|
||||
import qualified Data.ByteString.Char8 as B8
|
||||
import qualified Data.ByteString.Base64 as B64
|
||||
import Text.Pandoc.Readers.Docx
|
||||
import Text.Pandoc.Writers.Native (writeNative)
|
||||
import qualified Data.Map as M
|
||||
|
@ -52,6 +55,22 @@ testCompareWithOpts opts name docxFile nativeFile =
|
|||
testCompare :: String -> FilePath -> FilePath -> Test
|
||||
testCompare = testCompareWithOpts def
|
||||
|
||||
testCompareMediaIO :: String -> FilePath -> FilePath -> FilePath -> IO Test
|
||||
testCompareMediaIO name docxFile mediaPath mediaFile = do
|
||||
df <- B.readFile docxFile
|
||||
mf <- B.readFile mediaFile
|
||||
let (_, mb) = readDocx def df
|
||||
dBytes = case M.lookup mediaPath mb of
|
||||
Just bs -> bs
|
||||
Nothing -> error "Media file not found"
|
||||
d64 = B8.unpack $ B64.encode $ BS.concat $ B.toChunks dBytes
|
||||
m64 = B8.unpack $ B64.encode $ BS.concat $ B.toChunks mf
|
||||
return $ test id name (d64, m64)
|
||||
|
||||
testCompareMedia :: String -> FilePath -> FilePath -> FilePath -> Test
|
||||
testCompareMedia name docxFile mediaPath mediaFile =
|
||||
buildTest $ testCompareMediaIO name docxFile mediaPath mediaFile
|
||||
|
||||
|
||||
tests :: [Test]
|
||||
tests = [ testGroup "inlines"
|
||||
|
@ -165,6 +184,13 @@ tests = [ testGroup "inlines"
|
|||
"docx.track_changes_deletion.docx"
|
||||
"docx.track_changes_deletion_all.native"
|
||||
]
|
||||
, testGroup "media"
|
||||
[ testCompareMedia
|
||||
"image extraction"
|
||||
"docx.image.docx"
|
||||
"media/image1.jpeg"
|
||||
"docx.image1.jpeg"
|
||||
]
|
||||
, testGroup "metadata"
|
||||
[ testCompareWithOpts def{readerStandalone=True}
|
||||
"metadata fields"
|
||||
|
|
BIN
tests/docx.image1.jpeg
Normal file
BIN
tests/docx.image1.jpeg
Normal file
Binary file not shown.
After Width: | Height: | Size: 46 KiB |
Loading…
Reference in a new issue