aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdwin Török <[email protected]>2023-12-18 21:28:36 +0000
committerJohn MacFarlane <[email protected]>2023-12-18 14:08:53 -0800
commit2477fb50ffebbba5372ecdacda1da971572fef29 (patch)
treed7153a423ac9021aaaba3d72bbdebcf86f359382
parent806740805d4b21544ec0ad4a863a3e258997bdf0 (diff)
test(docx): also compare number of children
This detects if a tag gets added/removed, or moves within the hierarchy. Signed-off-by: Edwin Török <[email protected]>
-rw-r--r--test/Tests/Writers/OOXML.hs6
1 files changed, 6 insertions, 0 deletions
diff --git a/test/Tests/Writers/OOXML.hs b/test/Tests/Writers/OOXML.hs
index 43543954c..af5c92a52 100644
--- a/test/Tests/Writers/OOXML.hs
+++ b/test/Tests/Writers/OOXML.hs
@@ -45,6 +45,11 @@ compareXML (Elem goodElem) (Elem myElem) =
(Comparison { mine = sort (elAttribs myElem)
, good = sort (elAttribs goodElem)
})))
+ <|> (if length (elContent myElem) == length (elContent goodElem)
+ then Nothing
+ else Just
+ (ElemChildrenDiffer
+ (Comparison { mine = elContent myElem, good = elContent goodElem})))
<|> asum (zipWith compareXML (elContent myElem) (elContent goodElem))
compareXML (Text goodCData) (Text myCData) =
(if cdVerbatim myCData == cdVerbatim goodCData
@@ -60,6 +65,7 @@ compareXML g m = Just (OtherContentsDiffer (Comparison {mine = m, good = g}))
data XMLDifference
= ElemNamesDiffer (Comparison QName)
| ElemAttributesDiffer (Comparison [Attr])
+ | ElemChildrenDiffer (Comparison [Content])
| CDatasDiffer (Comparison CData)
| CRefsDiffer (Comparison String)
| OtherContentsDiffer (Comparison Content)