aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2018-01-27 18:07:50 +0000
committerMichael Williamson <mike@zwobble.org>2018-01-27 18:07:50 +0000
commit4e9396324c6d720484e639e449382280aa7e14fe (patch)
treed9cda1750742a23f423ce44ec4bf536b1d7cdcb6 /src/test
parent55cb0a60880baf74636f563ee66695a5466a10f9 (diff)
Add tests for findPartPaths
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/docx/DocumentReaderTests.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/mammoth/tests/docx/DocumentReaderTests.java b/src/test/java/org/zwobble/mammoth/tests/docx/DocumentReaderTests.java
index cfcc4e9..ddccd9c 100644
--- a/src/test/java/org/zwobble/mammoth/tests/docx/DocumentReaderTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/docx/DocumentReaderTests.java
@@ -1,5 +1,6 @@
package org.zwobble.mammoth.tests.docx;
+import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.zwobble.mammoth.internal.archives.Archive;
import org.zwobble.mammoth.internal.archives.InMemoryArchive;
@@ -82,4 +83,39 @@ public class DocumentReaderTests {
);
assertThat(exception.getMessage(), equalTo("java.io.IOException: Could not find main document part. Are you sure this is a valid .docx file?"));
}
+
+ @Nested
+ public class PartPathTests {
+ @Test
+ public void mainDocumentPartIsFoundUsingPackageRelationships() {
+ InMemoryArchive archive = InMemoryArchive.fromStrings(map(
+ "word/document2.xml", " ",
+ "_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
+ )
+ ));
+
+ DocumentReader.PartPaths partPaths = DocumentReader.findPartPaths(archive);
+
+ assertThat(partPaths.getMainDocument(), equalTo("word/document2.xml"));
+ }
+
+ @Test
+ public void whenRelationshipForMainDocumentCannotBeFoundThenFallbackIsUsed() {
+ InMemoryArchive archive = InMemoryArchive.fromStrings(map(
+ "word/document.xml", " "
+ ));
+
+ DocumentReader.PartPaths partPaths = DocumentReader.findPartPaths(archive);
+
+ assertThat(partPaths.getMainDocument(), equalTo("word/document.xml"));
+ }
+ }
}