diff options
| author | Michael Williamson <mike@zwobble.org> | 2025-06-08 10:02:56 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2025-06-08 10:02:56 +0100 |
| commit | 7fa2cbcfafd1acf12d288a578ee52dc893d2b874 (patch) | |
| tree | 139f9f21ab70e089f5294128a79550feb7fbf7f3 /src/test/java/org/zwobble | |
| parent | 5d5660e3f75b4d3b4e4fee1b7929a0ba2fb8bd16 (diff) | |
Handle SDTs representing checkboxes wrapped in other elements
Diffstat (limited to 'src/test/java/org/zwobble')
| -rw-r--r-- | src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java index 7ab1ec0..a4b3bdd 100644 --- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java @@ -765,6 +765,97 @@ public class BodyXmlTests { assertThat(result, isCheckbox(true)); } + @Test + public void whenStructuredDocumentTagCheckboxHasSdtContentThenCheckboxReplacesSingleCharacter() { + XmlElement element = element("w:tbl", list( + wTr( + element("w:sdt", list( + element("w:sdtPr", list( + element("wordml:checkbox", list( + element("wordml:checked", map("wordml:val", "1")) + )) + )), + element("w:sdtContent", list( + element("w:tc", list( + element("w:p", list( + element("w:r", list( + element("w:t", list( + textXml("☐") + )) + )) + )) + )) + )) + )) + ) + )); + + DocumentElement result = readSuccess(bodyReader(), element); + + assertThat(result, deepEquals(table(list( + tableRow(list( + tableCell( + withChildren( + paragraph(withChildren( + run(withChildren( + checkbox(true) + )) + )) + ) + ) + )) + )))); + } + + @Test + public void whenStructuredDocumentTagCheckboxHasSdtContentThenDeletedContentIsIgnored() { + XmlElement element = element("w:tbl", list( + wTr( + element("w:sdt", list( + element("w:sdtPr", list( + element("wordml:checkbox", list( + element("wordml:checked", map("wordml:val", "1")) + )) + )), + element("w:sdtContent", list( + element("w:tc", list( + element("w:p", list( + element("w:r", list( + element("w:t", list( + textXml("☐") + )) + )), + element("w:del", list( + element("w:r", list( + element("w:t", list( + textXml("☐") + )) + )) + )) + )) + )) + )) + )) + ) + )); + + DocumentElement result = readSuccess(bodyReader(), element); + + assertThat(result, deepEquals(table(list( + tableRow(list( + tableCell( + withChildren( + paragraph(withChildren( + run(withChildren( + checkbox(true) + )) + )) + ) + ) + )) + )))); + } + private XmlElement complexFieldCheckboxParagraph(List<XmlNode> ffDataChildren) { return element("w:p", list( element("w:r", list( |
