]> source.dussan.org Git - poi.git/commitdiff
Another content types test, for #55026
authorNick Burch <nick@apache.org>
Thu, 20 Feb 2014 00:06:34 +0000 (00:06 +0000)
committerNick Burch <nick@apache.org>
Thu, 20 Feb 2014 00:06:34 +0000 (00:06 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1570002 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRelation.java
src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestContentType.java
test-data/openxml4j/ContentTypeHasEntities.ooxml [new file with mode: 0644]

index e20052b68dc96f3fbe1aa41261e7a285f80f13c8..06642faaabfdc88818b5f46c40b591ca2935d109 100644 (file)
@@ -107,6 +107,12 @@ public final class XWPFRelation extends POIXMLRelation {
             "/word/footer#.xml",
             XWPFFooter.class
     );
+    public static final XWPFRelation THEME = new XWPFRelation(
+            "application/vnd.openxmlformats-officedocument.theme+xml",
+            "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme",
+            "/word/theme/theme#.xml",
+            null
+    );
     public static final XWPFRelation HYPERLINK = new XWPFRelation(
             null,
             "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink",
index 22660ddbf39bd03e259ab91e343c162ee146b6a3..e77e4f84827640a7c8357356eb33fb8d6d7a8304 100644 (file)
@@ -24,6 +24,7 @@ import junit.framework.TestCase;
 import org.apache.poi.openxml4j.OpenXML4JTestDataSamples;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.openxml4j.opc.internal.ContentType;
+import org.apache.poi.xwpf.usermodel.XWPFRelation;
 
 /**
  * Tests for content type (ContentType class).
@@ -142,8 +143,29 @@ public final class TestContentType extends TestCase {
         * OOXML content types don't need entities, but we shouldn't
         * barf if we get one from a third party system that added them
         */
-       public void testFileWithContentTypeEntities() {
-           // TODO
+       public void testFileWithContentTypeEntities() throws Exception {
+        InputStream is = OpenXML4JTestDataSamples.openSampleStream("ContentTypeHasEntities.ooxml");
+        OPCPackage p = OPCPackage.open(is);
+        
+        // Check we found the contents of it
+        boolean foundCoreProps = false, foundDocument = false, foundTheme1 = false;
+        for (PackagePart part : p.getParts()) {
+            if (part.getPartName().toString().equals("/docProps/core.xml")) {
+                assertEquals(ContentTypes.CORE_PROPERTIES_PART, part.getContentType());
+                foundCoreProps = true;
+            }
+            if (part.getPartName().toString().equals("/word/document.xml")) {
+                assertEquals(XWPFRelation.DOCUMENT.getContentType(), part.getContentType());
+                foundDocument = true;
+            }
+            if (part.getPartName().toString().equals("/word/theme/theme1.xml")) {
+                assertEquals(XWPFRelation.THEME.getContentType(), part.getContentType());
+                foundTheme1 = true;
+            }
+        }
+        assertTrue("Core not found in " + p.getParts(), foundCoreProps);
+        assertTrue("Document not found in " + p.getParts(), foundDocument);
+        assertTrue("Theme1 not found in " + p.getParts(), foundTheme1);
        }
        
        /**
diff --git a/test-data/openxml4j/ContentTypeHasEntities.ooxml b/test-data/openxml4j/ContentTypeHasEntities.ooxml
new file mode 100644 (file)
index 0000000..9581a2e
Binary files /dev/null and b/test-data/openxml4j/ContentTypeHasEntities.ooxml differ