You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ni...@apache.org on 2011/11/18 16:13:53 UTC
svn commit: r1203689 - in /tika/trunk:
tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml
tika-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java
Author: nick
Date: Fri Nov 18 15:13:52 2011
New Revision: 1203689
URL: http://svn.apache.org/viewvc?rev=1203689&view=rev
Log:
TIKA-784 DITA mimetype entries for the 3 subtypes, plus tests
Modified:
tika/trunk/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml
tika/trunk/tika-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java
Modified: tika/trunk/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml?rev=1203689&r1=1203688&r2=1203689&view=diff
==============================================================================
--- tika/trunk/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml (original)
+++ tika/trunk/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml Fri Nov 18 15:13:52 2011
@@ -72,8 +72,32 @@
<mime-type type="application/dita+xml">
<sub-class-of type="application/xml"/>
- <glob pattern="*.dita"/>
+ <_comment>Darwin Information Typing Architecture</_comment>
+ </mime-type>
+
+ <mime-type type="application/dita+map+xml">
+ <sub-class-of type="application/dita+xml"/>
+ <_comment>DITA Map</_comment>
+ <root-XML localName="map"/>
+ <root-XML localName="map" namespaceURI="http://docs.oasis-open.org/namespace"/>
<glob pattern="*.ditamap"/>
+ </mime-type>
+ <mime-type type="application/dita+topic+xml">
+ <sub-class-of type="application/dita+xml"/>
+ <_comment>DITA Topic</_comment>
+ <root-XML localName="topic"/>
+ <root-XML localName="topic" namespaceURI="http://docs.oasis-open.org/namespace"/>
+ <root-XML localName="task"/>
+ <root-XML localName="task" namespaceURI="http://docs.oasis-open.org/namespace"/>
+ <root-XML localName="concept"/>
+ <root-XML localName="concept" namespaceURI="http://docs.oasis-open.org/namespace"/>
+ <glob pattern="*.dita"/>
+ </mime-type>
+ <mime-type type="application/dita+val+xml">
+ <sub-class-of type="application/dita+xml"/>
+ <_comment>DITA Conditional Processing Profile</_comment>
+ <root-XML localName="val"/>
+ <root-XML localName="val" namespaceURI="http://docs.oasis-open.org/namespace"/>
<glob pattern="*.ditaval"/>
</mime-type>
Modified: tika/trunk/tika-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java?rev=1203689&r1=1203688&r2=1203689&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java (original)
+++ tika/trunk/tika-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java Fri Nov 18 15:13:52 2011
@@ -333,7 +333,7 @@ public class TestMimeTypes extends TestC
assertTypeByName("application/postscript", "x.epsi");
}
- public void testMicrosoftMultiMedia() throws Exception {
+ public void testMicrosoftMultiMediaDetection() throws Exception {
assertTypeByName("video/x-ms-asf", "x.asf");
assertTypeByName("video/x-ms-wmv", "x.wmv");
assertTypeByName("audio/x-ms-wma", "x.wma");
@@ -342,6 +342,32 @@ public class TestMimeTypes extends TestC
assertTypeByData("video/x-ms-wmv", "testWMV.wmv");
assertTypeByData("audio/x-ms-wma", "testWMA.wma");
}
+
+ /**
+ * All 3 DITA types are in theory handled by the same mimetype,
+ * but we specialise them
+ */
+ public void testDITADetection() throws Exception {
+ assertTypeByName("application/dita+topic+xml", "test.dita");
+ assertTypeByName("application/dita+map+xml", "test.ditamap");
+ assertTypeByName("application/dita+val+xml", "test.ditaval");
+
+ assertTypeByData("application/dita+topic+xml", "testDITA.dita");
+ assertTypeByData("application/dita+topic+xml", "testDITA2.dita");
+ assertTypeByData("application/dita+map+xml", "testDITA.ditamap");
+
+ assertTypeByNameAndData("application/dita+topic+xml", "testDITA.dita");
+ assertTypeByNameAndData("application/dita+topic+xml", "testDITA2.dita");
+ assertTypeByNameAndData("application/dita+map+xml", "testDITA.ditamap");
+
+ // These are all children of the official type
+ assertEquals("application/dita+xml",
+ repo.getMediaTypeRegistry().getSupertype(getTypeByNameAndData("testDITA.dita")).toString());
+ assertEquals("application/dita+xml",
+ repo.getMediaTypeRegistry().getSupertype(getTypeByNameAndData("testDITA2.dita")).toString());
+ assertEquals("application/dita+xml",
+ repo.getMediaTypeRegistry().getSupertype(getTypeByNameAndData("testDITA.ditamap")).toString());
+ }
/**
* @since TIKA-194
@@ -499,15 +525,18 @@ public class TestMimeTypes extends TestC
private void assertTypeByNameAndData(String expected, String filename)
throws IOException {
- InputStream stream = TestMimeTypes.class.getResourceAsStream(
- "/test-documents/" + filename);
- try {
- Metadata metadata = new Metadata();
- metadata.set(Metadata.RESOURCE_NAME_KEY, filename);
- assertEquals(expected, repo.detect(stream, metadata).toString());
- } finally {
- stream.close();
- }
-}
-
+ assertEquals(expected, getTypeByNameAndData(filename).toString());
+ }
+ private MediaType getTypeByNameAndData(String filename) throws IOException {
+ InputStream stream = TestMimeTypes.class.getResourceAsStream(
+ "/test-documents/" + filename);
+ assertNotNull("Test document not found: " + filename, stream);
+ try {
+ Metadata metadata = new Metadata();
+ metadata.set(Metadata.RESOURCE_NAME_KEY, filename);
+ return repo.detect(stream, metadata);
+ } finally {
+ stream.close();
+ }
+ }
}