aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-13 19:38:11 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-13 19:38:11 +0000
commit7864626f385e23272bf307474ceaebe281b4ed28 (patch)
tree6021438f706e71438f6b96e897d03a181be1cfdf
parenta18ba8f9079bec9ab3262e1669d3b60b5354d69e (diff)
Read appropriate elements as their children
-rw-r--r--src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java9
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java19
2 files changed, 28 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java
index 78baf51..dcef0c5 100644
--- a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java
+++ b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java
@@ -45,6 +45,15 @@ public class BodyXmlReader {
case "w:tc":
return readElements(element.children()).map(TableCell::new);
+ case "w:ins":
+ case "w:smartTag":
+ case "w:drawing":
+ case "w:roundrect":
+ case "w:shape":
+ case "w:textbox":
+ case "w:txbxContent":
+ return readElements(element.children());
+
case "w:pPr":
return EMPTY_SUCCESS;
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 9c898a9..b1ce149 100644
--- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
@@ -277,6 +277,25 @@ public class BodyXmlTests {
make(a(PARAGRAPH))))))))));
}
+ @Test
+ public void appropriateElementsHaveTheirChildrenReadNormally() {
+ assertChildrenAreReadNormally("w:ins");
+ assertChildrenAreReadNormally("w:smartTag");
+ assertChildrenAreReadNormally("w:drawing");
+ assertChildrenAreReadNormally("w:roundrect");
+ assertChildrenAreReadNormally("w:shape");
+ assertChildrenAreReadNormally("w:textbox");
+ assertChildrenAreReadNormally("w:txbxContent");
+ }
+
+ private void assertChildrenAreReadNormally(String name) {
+ XmlElement element = element(name, list(paragraphXml()));
+
+ assertThat(
+ readSuccess(a(bodyReader), element),
+ deepEquals(make(a(PARAGRAPH))));
+ }
+
private static DocumentElement readSuccess(Maker<BodyXmlReader> reader, XmlElement element) {
Result<DocumentElement> result = read(reader, element);
assertThat(result.getWarnings(), deepEquals(list()));