aboutsummaryrefslogtreecommitdiff
path: root/test/Tests
diff options
context:
space:
mode:
authorEmily Bourke <undergroundquizscene@protonmail.com>2021-08-10 17:20:53 +0100
committerJohn MacFarlane <jgm@berkeley.edu>2021-08-17 09:35:25 -0700
commit72823ad947face43ef45eaeb7e611979531abed6 (patch)
tree974bdd36c361a437381d00da1305646473e218da /test/Tests
parent9204e5c9b1ef5d1f038dbc93928f6bbc71bf6b2f (diff)
downloadpandoc-72823ad947face43ef45eaeb7e611979531abed6.tar.gz
pptx: Select layouts from reference doc by name
Until now, users had to make sure that their reference doc contains layouts in a specific order: the first four layouts in the file had to have a specific structure, or else pandoc would error (or sometimes successfully produce a pptx file, which PowerPoint would then fail to open). This commit changes the layout selection to use the layout names rather than order: users must make sure their reference doc contains four layouts with specific names, and if a layout with the right name isn’t found pandoc will output a warning and use the corresponding layout from the default reference doc as a fallback. I believe the use of names rather than order will be clearer to users, and the clearer errors will help them troubleshoot when things go wrong. - Add tests for moved layouts - Add tests for deleted layouts - Add newly included layouts to slideMaster1.xml to fix tests
Diffstat (limited to 'test/Tests')
-rw-r--r--test/Tests/Writers/Powerpoint.hs31
1 files changed, 24 insertions, 7 deletions
diff --git a/test/Tests/Writers/Powerpoint.hs b/test/Tests/Writers/Powerpoint.hs
index 87ebe990c..344d20238 100644
--- a/test/Tests/Writers/Powerpoint.hs
+++ b/test/Tests/Writers/Powerpoint.hs
@@ -7,18 +7,21 @@ import System.FilePath
import Text.DocTemplates (ToContext(toVal), Context(..))
import qualified Data.Map as M
import Data.Text (pack)
+import Data.List (unzip4)
-- templating is important enough, and can break enough things, that
-- we want to run all our tests with both default formatting and a
-- template.
-modifyPptxName :: FilePath -> FilePath
-modifyPptxName fp =
- addExtension (dropExtension fp ++ "_templated") "pptx"
+modifyPptxName :: FilePath -> String -> FilePath
+modifyPptxName fp suffix =
+ addExtension (dropExtension fp ++ suffix) "pptx"
-pptxTests :: String -> WriterOptions -> FilePath -> FilePath -> (TestTree, TestTree)
+pptxTests :: String -> WriterOptions -> FilePath -> FilePath -> (TestTree, TestTree, TestTree, TestTree)
pptxTests name opts native pptx =
let referenceDoc = "pptx/reference_depth.pptx"
+ movedLayoutsReferenceDoc = "pptx/reference_moved_layouts.pptx"
+ deletedLayoutsReferenceDoc = "pptx/reference_deleted_layouts.pptx"
in
( ooxmlTest
writePowerpoint
@@ -31,15 +34,29 @@ pptxTests name opts native pptx =
name
opts{writerReferenceDoc=Just referenceDoc}
native
- (modifyPptxName pptx)
+ (modifyPptxName pptx "_templated")
+ , ooxmlTest
+ writePowerpoint
+ name
+ opts{writerReferenceDoc=Just movedLayoutsReferenceDoc}
+ native
+ (modifyPptxName pptx "_moved_layouts")
+ , ooxmlTest
+ writePowerpoint
+ name
+ opts{writerReferenceDoc=Just deletedLayoutsReferenceDoc}
+ native
+ (modifyPptxName pptx "_deleted_layouts")
)
-groupPptxTests :: [(TestTree, TestTree)] -> [TestTree]
+groupPptxTests :: [(TestTree, TestTree, TestTree, TestTree)] -> [TestTree]
groupPptxTests pairs =
- let (noRefs, refs) = unzip pairs
+ let (noRefs, refs, movedLayouts, deletedLayouts) = unzip4 pairs
in
[ testGroup "Default slide formatting" noRefs
, testGroup "With `--reference-doc` pptx file" refs
+ , testGroup "With layouts in reference doc moved" movedLayouts
+ , testGroup "With layouts in reference doc deleted" deletedLayouts
]