Powerpoint tests: shorten lines by grouping tests
This makes the test output more pleasant to read in narrow terminal windows.
This commit is contained in:
parent
3e7b46af64
commit
a64ea18647
1 changed files with 186 additions and 189 deletions
|
@ -1,5 +1,6 @@
|
|||
module Tests.Writers.Powerpoint (tests) where
|
||||
|
||||
import Control.Arrow ((***))
|
||||
import Tests.Writers.OOXML (ooxmlTest)
|
||||
import Text.Pandoc
|
||||
import Test.Tasty
|
||||
|
@ -42,198 +43,194 @@ groupPptxTests pairs =
|
|||
, testGroup "With `--reference-doc` pptx file" refs
|
||||
]
|
||||
|
||||
testGroup' :: String -> [(TestTree, TestTree)] -> (TestTree, TestTree)
|
||||
testGroup' descr = (testGroup descr *** testGroup descr) . unzip
|
||||
|
||||
|
||||
tests :: [TestTree]
|
||||
tests = let
|
||||
regularTests =
|
||||
groupPptxTests [ pptxTests "Inline formatting"
|
||||
def
|
||||
"pptx/inline-formatting/input.native"
|
||||
"pptx/inline-formatting/output.pptx"
|
||||
, pptxTests "Slide breaks (default slide-level)"
|
||||
def
|
||||
"pptx/slide-breaks/input.native"
|
||||
"pptx/slide-breaks/output.pptx"
|
||||
, pptxTests "slide breaks (slide-level set to 1)"
|
||||
def{ writerSlideLevel = Just 1 }
|
||||
"pptx/slide-breaks/input.native"
|
||||
"pptx/slide-breaks-slide-level-1/output.pptx"
|
||||
, pptxTests "lists"
|
||||
def
|
||||
"pptx/lists/input.native"
|
||||
"pptx/lists/output.pptx"
|
||||
, pptxTests "start ordered list at specified num"
|
||||
def
|
||||
"pptx/start-numbering-at/input.native"
|
||||
"pptx/start-numbering-at/output.pptx"
|
||||
, pptxTests "List continuation paragraph indentation"
|
||||
def
|
||||
"pptx/list-level/input.native"
|
||||
"pptx/list-level/output.pptx"
|
||||
, pptxTests "tables"
|
||||
def
|
||||
"pptx/tables/input.native"
|
||||
"pptx/tables/output.pptx"
|
||||
, pptxTests "table of contents"
|
||||
def{ writerTableOfContents = True }
|
||||
"pptx/slide-breaks/input.native"
|
||||
"pptx/slide-breaks-toc/output.pptx"
|
||||
, pptxTests "end notes"
|
||||
def
|
||||
"pptx/endnotes/input.native"
|
||||
"pptx/endnotes/output.pptx"
|
||||
, pptxTests "end notes, with table of contents"
|
||||
def { writerTableOfContents = True }
|
||||
"pptx/endnotes/input.native"
|
||||
"pptx/endnotes-toc/output.pptx"
|
||||
, pptxTests "images"
|
||||
def
|
||||
"pptx/images/input.native"
|
||||
"pptx/images/output.pptx"
|
||||
, pptxTests "two-column layout"
|
||||
def
|
||||
"pptx/two-column/all-text/input.native"
|
||||
"pptx/two-column/all-text/output.pptx"
|
||||
, pptxTests "two-column (not comparison)"
|
||||
def
|
||||
"pptx/two-column/text-and-image/input.native"
|
||||
"pptx/two-column/text-and-image/output.pptx"
|
||||
, pptxTests "speaker notes"
|
||||
def
|
||||
"pptx/speaker-notes/input.native"
|
||||
"pptx/speaker-notes/output.pptx"
|
||||
, pptxTests "speaker notes after a separating block"
|
||||
def
|
||||
"pptx/speaker-notes-afterseps/input.native"
|
||||
"pptx/speaker-notes-afterseps/output.pptx"
|
||||
, pptxTests "speaker notes after a separating header"
|
||||
def
|
||||
"pptx/speaker-notes-afterheader/input.native"
|
||||
"pptx/speaker-notes-afterheader/output.pptx"
|
||||
, pptxTests "speaker notes after metadata"
|
||||
def
|
||||
"pptx/speaker-notes-after-metadata/input.native"
|
||||
"pptx/speaker-notes-after-metadata/output.pptx"
|
||||
, pptxTests "remove empty slides"
|
||||
def
|
||||
"pptx/remove-empty-slides/input.native"
|
||||
"pptx/remove-empty-slides/output.pptx"
|
||||
, pptxTests "raw ooxml"
|
||||
def
|
||||
"pptx/raw-ooxml/input.native"
|
||||
"pptx/raw-ooxml/output.pptx"
|
||||
, pptxTests "metadata, custom properties"
|
||||
def
|
||||
"pptx/document-properties/input.native"
|
||||
"pptx/document-properties/output.pptx"
|
||||
, pptxTests "metadata, short description"
|
||||
def
|
||||
"pptx/document-properties-short-desc/input.native"
|
||||
"pptx/document-properties-short-desc/output.pptx"
|
||||
, pptxTests "inline code and code blocks"
|
||||
def
|
||||
"pptx/code/input.native"
|
||||
"pptx/code/output.pptx"
|
||||
, pptxTests "inline code and code blocks, custom formatting"
|
||||
def { writerVariables = Context $ M.fromList
|
||||
[(pack "monofont", toVal $ pack "Consolas")] }
|
||||
"pptx/code/input.native"
|
||||
"pptx/code-custom/output.pptx"
|
||||
, pptxTests ("Using slide level 0, if the first thing on "
|
||||
<> "a slide is a h1 it's used as the "
|
||||
<> "slide title")
|
||||
def { writerSlideLevel = Just 0 }
|
||||
"pptx/slide-level-0/h1-with-image/input.native"
|
||||
"pptx/slide-level-0/h1-with-image/output.pptx"
|
||||
, pptxTests ("Using slide level 0, if the first thing on "
|
||||
<> "a slide is a h2 it's used as the "
|
||||
<> "slide title")
|
||||
def { writerSlideLevel = Just 0 }
|
||||
"pptx/slide-level-0/h2-with-image/input.native"
|
||||
"pptx/slide-level-0/h2-with-image/output.pptx"
|
||||
, pptxTests ("Using slide level 0, if the first thing on "
|
||||
<> "a slide is a heading it's used as the "
|
||||
<> "slide title (works with a table)")
|
||||
def { writerSlideLevel = Just 0 }
|
||||
"pptx/slide-level-0/h1-with-table/input.native"
|
||||
"pptx/slide-level-0/h1-with-table/output.pptx"
|
||||
, pptxTests ("Using slide level 0, if the first thing on "
|
||||
<> "a slide is a heading it's used as the "
|
||||
<> "slide title (content with caption layout)")
|
||||
def { writerSlideLevel = Just 0 }
|
||||
"pptx/slide-level-0/h1-h2-with-table/input.native"
|
||||
"pptx/slide-level-0/h1-h2-with-table/output.pptx"
|
||||
, pptxTests ("comparison layout used when two columns "
|
||||
<> "contain text plus non-text")
|
||||
def
|
||||
"pptx/comparison/both-columns/input.native"
|
||||
"pptx/comparison/both-columns/output.pptx"
|
||||
, pptxTests ("comparison layout used even when only one "
|
||||
<> "column contains text plus non-text")
|
||||
def
|
||||
"pptx/comparison/one-column/input.native"
|
||||
"pptx/comparison/one-column/output.pptx"
|
||||
, pptxTests ("extra text in one column in comparison "
|
||||
<> "layout gets overlaid")
|
||||
def
|
||||
"pptx/comparison/extra-text/input.native"
|
||||
"pptx/comparison/extra-text/output.pptx"
|
||||
, pptxTests ("extra image in one column in comparison "
|
||||
<> "layout gets overlaid")
|
||||
def
|
||||
"pptx/comparison/extra-image/input.native"
|
||||
"pptx/comparison/extra-image/output.pptx"
|
||||
, pptxTests "comparison not used if the non-text comes first"
|
||||
def
|
||||
"pptx/comparison/non-text-first/input.native"
|
||||
"pptx/comparison/non-text-first/output.pptx"
|
||||
, pptxTests ("Heading, text and an image on the same "
|
||||
<> "slide uses the Content with Caption "
|
||||
<> "layout")
|
||||
def
|
||||
"pptx/content-with-caption/heading-text-image/input.native"
|
||||
"pptx/content-with-caption/heading-text-image/output.pptx"
|
||||
, pptxTests ("Text and an image on the same "
|
||||
<> "slide uses the Content with Caption "
|
||||
<> "layout")
|
||||
def
|
||||
"pptx/content-with-caption/text-image/input.native"
|
||||
"pptx/content-with-caption/text-image/output.pptx"
|
||||
, pptxTests ("If the image comes first, Content with "
|
||||
<> "Caption is not used")
|
||||
def
|
||||
"pptx/content-with-caption/image-text/input.native"
|
||||
"pptx/content-with-caption/image-text/output.pptx"
|
||||
, pptxTests ("If a slide contains only speaker notes, the "
|
||||
<> "Blank layout is used")
|
||||
def
|
||||
"pptx/blanks/just-speaker-notes/input.native"
|
||||
"pptx/blanks/just-speaker-notes/output.pptx"
|
||||
, pptxTests ("If a slide contains only an empty heading "
|
||||
<> "with a body of only non-breaking spaces"
|
||||
<> ", the Blank layout is used")
|
||||
def
|
||||
"pptx/blanks/nbsp-in-body/input.native"
|
||||
"pptx/blanks/nbsp-in-body/output.pptx"
|
||||
, pptxTests ("If a slide contains only a heading "
|
||||
<> "containing only non-breaking spaces, "
|
||||
<> "the Blank layout is used")
|
||||
def
|
||||
"pptx/blanks/nbsp-in-heading/input.native"
|
||||
"pptx/blanks/nbsp-in-heading/output.pptx"
|
||||
, pptxTests ("Incremental lists are supported")
|
||||
def { writerIncremental = True }
|
||||
"pptx/incremental-lists/with-flag/input.native"
|
||||
"pptx/incremental-lists/with-flag/output.pptx"
|
||||
, pptxTests ("One-off incremental lists are supported")
|
||||
def
|
||||
"pptx/incremental-lists/without-flag/input.native"
|
||||
"pptx/incremental-lists/without-flag/output.pptx"
|
||||
, pptxTests "Background images"
|
||||
def
|
||||
"pptx/background-image/input.native"
|
||||
"pptx/background-image/output.pptx"
|
||||
]
|
||||
regularTests = groupPptxTests
|
||||
[ pptxTests "Inline formatting"
|
||||
def
|
||||
"pptx/inline-formatting/input.native"
|
||||
"pptx/inline-formatting/output.pptx"
|
||||
, pptxTests "Slide breaks (default slide-level)"
|
||||
def
|
||||
"pptx/slide-breaks/input.native"
|
||||
"pptx/slide-breaks/output.pptx"
|
||||
, pptxTests "slide breaks (slide-level set to 1)"
|
||||
def{ writerSlideLevel = Just 1 }
|
||||
"pptx/slide-breaks/input.native"
|
||||
"pptx/slide-breaks-slide-level-1/output.pptx"
|
||||
, pptxTests "lists"
|
||||
def
|
||||
"pptx/lists/input.native"
|
||||
"pptx/lists/output.pptx"
|
||||
, pptxTests "start ordered list at specified num"
|
||||
def
|
||||
"pptx/start-numbering-at/input.native"
|
||||
"pptx/start-numbering-at/output.pptx"
|
||||
, pptxTests "List continuation paragraph indentation"
|
||||
def
|
||||
"pptx/list-level/input.native"
|
||||
"pptx/list-level/output.pptx"
|
||||
, pptxTests "tables"
|
||||
def
|
||||
"pptx/tables/input.native"
|
||||
"pptx/tables/output.pptx"
|
||||
, pptxTests "table of contents"
|
||||
def{ writerTableOfContents = True }
|
||||
"pptx/slide-breaks/input.native"
|
||||
"pptx/slide-breaks-toc/output.pptx"
|
||||
, pptxTests "end notes"
|
||||
def
|
||||
"pptx/endnotes/input.native"
|
||||
"pptx/endnotes/output.pptx"
|
||||
, pptxTests "end notes, with table of contents"
|
||||
def { writerTableOfContents = True }
|
||||
"pptx/endnotes/input.native"
|
||||
"pptx/endnotes-toc/output.pptx"
|
||||
, pptxTests "images"
|
||||
def
|
||||
"pptx/images/input.native"
|
||||
"pptx/images/output.pptx"
|
||||
, pptxTests "two-column layout"
|
||||
def
|
||||
"pptx/two-column/all-text/input.native"
|
||||
"pptx/two-column/all-text/output.pptx"
|
||||
, pptxTests "two-column (not comparison)"
|
||||
def
|
||||
"pptx/two-column/text-and-image/input.native"
|
||||
"pptx/two-column/text-and-image/output.pptx"
|
||||
, pptxTests "speaker notes"
|
||||
def
|
||||
"pptx/speaker-notes/input.native"
|
||||
"pptx/speaker-notes/output.pptx"
|
||||
, pptxTests "speaker notes after a separating block"
|
||||
def
|
||||
"pptx/speaker-notes-afterseps/input.native"
|
||||
"pptx/speaker-notes-afterseps/output.pptx"
|
||||
, pptxTests "speaker notes after a separating header"
|
||||
def
|
||||
"pptx/speaker-notes-afterheader/input.native"
|
||||
"pptx/speaker-notes-afterheader/output.pptx"
|
||||
, pptxTests "speaker notes after metadata"
|
||||
def
|
||||
"pptx/speaker-notes-after-metadata/input.native"
|
||||
"pptx/speaker-notes-after-metadata/output.pptx"
|
||||
, pptxTests "remove empty slides"
|
||||
def
|
||||
"pptx/remove-empty-slides/input.native"
|
||||
"pptx/remove-empty-slides/output.pptx"
|
||||
, pptxTests "raw ooxml"
|
||||
def
|
||||
"pptx/raw-ooxml/input.native"
|
||||
"pptx/raw-ooxml/output.pptx"
|
||||
, pptxTests "metadata, custom properties"
|
||||
def
|
||||
"pptx/document-properties/input.native"
|
||||
"pptx/document-properties/output.pptx"
|
||||
, pptxTests "metadata, short description"
|
||||
def
|
||||
"pptx/document-properties-short-desc/input.native"
|
||||
"pptx/document-properties-short-desc/output.pptx"
|
||||
, pptxTests "inline code and code blocks"
|
||||
def
|
||||
"pptx/code/input.native"
|
||||
"pptx/code/output.pptx"
|
||||
, pptxTests "inline code and code blocks, custom formatting"
|
||||
def { writerVariables = Context $ M.fromList
|
||||
[(pack "monofont", toVal $ pack "Consolas")] }
|
||||
"pptx/code/input.native"
|
||||
"pptx/code-custom/output.pptx"
|
||||
, testGroup' "Using slide level 0, if the first thing on a slide is"
|
||||
[ pptxTests ("a h1 it's used as the slide title")
|
||||
def { writerSlideLevel = Just 0 }
|
||||
"pptx/slide-level-0/h1-with-image/input.native"
|
||||
"pptx/slide-level-0/h1-with-image/output.pptx"
|
||||
, pptxTests ("a h2 it's used as the "
|
||||
<> "slide title")
|
||||
def { writerSlideLevel = Just 0 }
|
||||
"pptx/slide-level-0/h2-with-image/input.native"
|
||||
"pptx/slide-level-0/h2-with-image/output.pptx"
|
||||
, testGroup' "a heading it's used as the slide title"
|
||||
[ pptxTests "(works with a table)"
|
||||
def { writerSlideLevel = Just 0 }
|
||||
"pptx/slide-level-0/h1-with-table/input.native"
|
||||
"pptx/slide-level-0/h1-with-table/output.pptx"
|
||||
, pptxTests ("(content with caption layout)")
|
||||
def { writerSlideLevel = Just 0 }
|
||||
"pptx/slide-level-0/h1-h2-with-table/input.native"
|
||||
"pptx/slide-level-0/h1-h2-with-table/output.pptx"
|
||||
]
|
||||
]
|
||||
, testGroup' "comparison layout"
|
||||
[ testGroup' "comparison layout is used..."
|
||||
[ pptxTests "when two columns contain text + non-text"
|
||||
def
|
||||
"pptx/comparison/both-columns/input.native"
|
||||
"pptx/comparison/both-columns/output.pptx"
|
||||
, pptxTests "even when only one col contains text + non-text"
|
||||
def
|
||||
"pptx/comparison/one-column/input.native"
|
||||
"pptx/comparison/one-column/output.pptx"
|
||||
]
|
||||
, testGroup' "extra ... in one column gets overlaid"
|
||||
[ pptxTests "text"
|
||||
def
|
||||
"pptx/comparison/extra-text/input.native"
|
||||
"pptx/comparison/extra-text/output.pptx"
|
||||
, pptxTests "image"
|
||||
def
|
||||
"pptx/comparison/extra-image/input.native"
|
||||
"pptx/comparison/extra-image/output.pptx"
|
||||
]
|
||||
, pptxTests "is not used if the non-text comes first"
|
||||
def
|
||||
"pptx/comparison/non-text-first/input.native"
|
||||
"pptx/comparison/non-text-first/output.pptx"
|
||||
]
|
||||
, testGroup' "Content with Caption layout is ..."
|
||||
[ pptxTests "used for heading, text, image on the same slide"
|
||||
def
|
||||
"pptx/content-with-caption/heading-text-image/input.native"
|
||||
"pptx/content-with-caption/heading-text-image/output.pptx"
|
||||
, pptxTests "used for text and an image on the same slide"
|
||||
def
|
||||
"pptx/content-with-caption/text-image/input.native"
|
||||
"pptx/content-with-caption/text-image/output.pptx"
|
||||
, pptxTests "not used if the image comes first"
|
||||
def
|
||||
"pptx/content-with-caption/image-text/input.native"
|
||||
"pptx/content-with-caption/image-text/output.pptx"
|
||||
]
|
||||
, testGroup' "The Blank layout is used if a slide contains only..."
|
||||
[ pptxTests "speaker notes"
|
||||
def
|
||||
"pptx/blanks/just-speaker-notes/input.native"
|
||||
"pptx/blanks/just-speaker-notes/output.pptx"
|
||||
, pptxTests "an empty heading with a body of only NBSPs"
|
||||
def
|
||||
"pptx/blanks/nbsp-in-body/input.native"
|
||||
"pptx/blanks/nbsp-in-body/output.pptx"
|
||||
, pptxTests "a heading containing only non-breaking spaces"
|
||||
def
|
||||
"pptx/blanks/nbsp-in-heading/input.native"
|
||||
"pptx/blanks/nbsp-in-heading/output.pptx"
|
||||
]
|
||||
, pptxTests ("Incremental lists are supported")
|
||||
def { writerIncremental = True }
|
||||
"pptx/incremental-lists/with-flag/input.native"
|
||||
"pptx/incremental-lists/with-flag/output.pptx"
|
||||
, pptxTests ("One-off incremental lists are supported")
|
||||
def
|
||||
"pptx/incremental-lists/without-flag/input.native"
|
||||
"pptx/incremental-lists/without-flag/output.pptx"
|
||||
, pptxTests "Background images"
|
||||
def
|
||||
"pptx/background-image/input.native"
|
||||
"pptx/background-image/output.pptx"
|
||||
]
|
||||
referenceSpecificTests =
|
||||
[ ooxmlTest
|
||||
writePowerpoint
|
||||
|
|
Loading…
Reference in a new issue