aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlReaderMakers.java5
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/docx/DocumentReaderTests.java60
2 files changed, 65 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlReaderMakers.java b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlReaderMakers.java
index acbf95f..1a172ce 100644
--- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlReaderMakers.java
+++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlReaderMakers.java
@@ -23,6 +23,11 @@ public class BodyXmlReaderMakers {
}
@Override
+ public boolean exists(String name) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
public void close() throws IOException {
}
}),
diff --git a/src/test/java/org/zwobble/mammoth/tests/docx/DocumentReaderTests.java b/src/test/java/org/zwobble/mammoth/tests/docx/DocumentReaderTests.java
new file mode 100644
index 0000000..d7f1a11
--- /dev/null
+++ b/src/test/java/org/zwobble/mammoth/tests/docx/DocumentReaderTests.java
@@ -0,0 +1,60 @@
+package org.zwobble.mammoth.tests.docx;
+
+import org.junit.jupiter.api.Test;
+import org.zwobble.mammoth.internal.archives.InMemoryArchive;
+import org.zwobble.mammoth.internal.documents.Document;
+import org.zwobble.mammoth.internal.docx.DocumentReader;
+import org.zwobble.mammoth.internal.results.InternalResult;
+import org.zwobble.mammoth.internal.xml.NamespacePrefixes;
+import org.zwobble.mammoth.internal.xml.XmlWriter;
+
+import java.util.Optional;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.zwobble.mammoth.internal.util.Lists.list;
+import static org.zwobble.mammoth.internal.util.Maps.map;
+import static org.zwobble.mammoth.internal.xml.XmlNodes.element;
+import static org.zwobble.mammoth.internal.xml.XmlNodes.text;
+import static org.zwobble.mammoth.tests.ResultMatchers.isInternalSuccess;
+import static org.zwobble.mammoth.tests.documents.DocumentElementMakers.*;
+
+public class DocumentReaderTests {
+ private final NamespacePrefixes mainDocumentNamespaces = NamespacePrefixes.builder()
+ .put("w", "http://schemas.openxmlformats.org/wordprocessingml/2006/main")
+ .build();
+ private final NamespacePrefixes relationshipsNamespaces = NamespacePrefixes.builder()
+ .defaultPrefix("http://schemas.openxmlformats.org/package/2006/relationships")
+ .build();
+
+ @Test
+ public void mainDocumentIsFoundUsingPackageRelationships() {
+ InternalResult<Document> result = DocumentReader.readDocument(Optional.empty(), InMemoryArchive.fromStrings(map(
+ "word/document2.xml", XmlWriter.toString(
+ element("w:document", list(
+ element("w:body", list(
+ element("w:p", list(
+ element("w:r", list(
+ element("w:t", list(text("Hello.")))
+ ))
+ ))
+ ))
+ )),
+ mainDocumentNamespaces
+ ),
+ "_rels/.rels", XmlWriter.toString(
+ element("Relationships", list(
+ element("Relationship", map(
+ "Id", "rId1",
+ "Target", "/word/document2.xml",
+ "Type", "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"
+ ))
+ )),
+ relationshipsNamespaces
+ )
+ )));
+
+ assertThat(result, isInternalSuccess(document(
+ withChildren(paragraphWithText("Hello."))
+ )));
+ }
+}