diff options
| author | Michael Williamson <mike@zwobble.org> | 2024-11-30 14:20:42 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2024-11-30 14:20:42 +0000 |
| commit | 57a988d26011f58ee2cc9e9bb9f9bbd7c8de32be (patch) | |
| tree | f49d1dbaffe74c0471e972f123bba64de41aa7b3 /src/test | |
| parent | a2d7d044d9add9f0c381fdd8821902e08b46e1ad (diff) | |
Read complex field checkboxes, always unchecked
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java | 55 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/mammoth/tests/docx/DocumentMatchers.java | 5 |
2 files changed, 60 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 3cfb161..c859be4 100644 --- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java @@ -573,6 +573,61 @@ public class BodyXmlTests { } } + @Nested + public class CheckboxTests { + @Test + public void complexFieldCheckboxWithoutSeparateIsRead() { + XmlElement element = element("w:p", list( + element("w:r", list( + element("w:fldChar", map("w:fldCharType", "begin")) + )), + element("w:instrText", list( + textXml(" FORMCHECKBOX ") + )), + element("w:r", list( + element("w:fldChar", map("w:fldCharType", "end")) + )) + )); + + DocumentElement paragraph = readSuccess(bodyReader(), element); + + assertThat(paragraph, isParagraph(hasChildren( + isEmptyRun(), + isRun(hasChildren( + isCheckbox() + )) + ))); + } + + @Test + public void complexFieldCheckboxWithSeparateIsRead() { + XmlElement element = element("w:p", list( + element("w:r", list( + element("w:fldChar", map("w:fldCharType", "begin")) + )), + element("w:instrText", list( + textXml(" FORMCHECKBOX ") + )), + element("w:r", list( + element("w:fldChar", map("w:fldCharType", "separate")) + )), + element("w:r", list( + element("w:fldChar", map("w:fldCharType", "end")) + )) + )); + + DocumentElement paragraph = readSuccess(bodyReader(), element); + + assertThat(paragraph, isParagraph(hasChildren( + isEmptyRun(), + isEmptyRun(), + isRun(hasChildren( + isCheckbox() + )) + ))); + } + } + @Test public void runHasNoStyleIfItHasNoProperties() { XmlElement element = runXml(list()); diff --git a/src/test/java/org/zwobble/mammoth/tests/docx/DocumentMatchers.java b/src/test/java/org/zwobble/mammoth/tests/docx/DocumentMatchers.java index 4f3628e..fae84b2 100644 --- a/src/test/java/org/zwobble/mammoth/tests/docx/DocumentMatchers.java +++ b/src/test/java/org/zwobble/mammoth/tests/docx/DocumentMatchers.java @@ -91,6 +91,11 @@ public class DocumentMatchers { return cast(Hyperlink.class, allOf(matchers)); } + @SafeVarargs + static Matcher<DocumentElement> isCheckbox(Matcher<? super Checkbox>... matchers) { + return cast(Checkbox.class, allOf(matchers)); + } + static Matcher<Hyperlink> hasHref(String href) { return hasProperty("href", equalTo(Optional.of(href))); } |
