Author: nick
Date: Fri Jul 15 17:47:26 2011
New Revision: 1147262

URL: http://svn.apache.org/viewvc?rev=1147262&view=rev
Log:
TIKA-507 Add byte based detection tests for .pfa/.pfb/.pfm (which we currently 
lack free sample files for)

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=1147262&r1=1147261&r2=1147262&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 Jul 15 17:47:26 2011
@@ -2354,10 +2354,10 @@
   <mime-type type="application/x-font-type1">
     <glob pattern="*.pfa"/>
     <glob pattern="*.pfb"/>
-    <magic priority="40">
+    <magic priority="60">
       <!-- Match for PFB, the binary format -->
-      <match value="\x80\x01\xFF\xFF\x00\x00%!PS-Adobe-Font" type="string" 
-              mask="0xFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFF" offset="0" />
+      <match value="\x80\x01\xFF\xFF\x00\x00%!PS-AdobeFont" type="string" 
+              mask="0xFFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" offset="0"/>
       <!-- Match for PFA, the text format" -->
       <match value="%!PS-AdobeFont-1.0" type="string" offset="0" />
     </magic>

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=1147262&r1=1147261&r2=1147262&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 Jul 15 17:47:26 2011
@@ -17,6 +17,7 @@
 package org.apache.tika.mime;
 
 // Junit imports
+import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -413,9 +414,30 @@ public class TestMimeTypes extends TestC
        assertTypeByData("application/x-font-adobe-metric", "testAFM.afm");
        
        assertTypeByName("application/x-font-printer-metric", "x.pfm");
+       // TODO Get a sample .pfm file
+       assertTypeByData(
+             "application/x-font-printer-metric", 
+             new byte[] {0x00, 0x01, 256-0xb1, 0x0a, 0x00, 0x00, 0x43, 0x6f,  
+                         0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20}
+       );
        
        assertTypeByName("application/x-font-type1", "x.pfa");
+       // TODO Get a sample .pfa file
+       assertTypeByData(
+             "application/x-font-type1", 
+             new byte[] {0x25, 0x21, 0x50, 0x53, 0x2d, 0x41, 0x64, 0x6f,
+                         0x62, 0x65, 0x46, 0x6f, 0x6e, 0x74, 0x2d, 0x31,
+                         0x2e, 0x30, 0x20, 0x20, 0x2d, 0x2a, 0x2d, 0x20}
+       );
+       
        assertTypeByName("application/x-font-type1", "x.pfb");
+       // TODO Get a sample .pfm file
+       assertTypeByData(
+             "application/x-font-type1", 
+             new byte[] {-0x80, 0x01, 0x09, 0x05, 0x00, 0x00, 0x25, 0x21,
+                          0x50, 0x53, 0x2d, 0x41, 0x64, 0x6f, 0x62, 0x65,
+                          0x46, 0x6f, 0x6e, 0x74, 0x2d, 0x31, 0x2e, 0x30 }
+       );
     }
 
     /**
@@ -474,6 +496,17 @@ public class TestMimeTypes extends TestC
         }
     }
     
+    private void assertTypeByData(String expected, byte[] data)
+            throws IOException {
+       InputStream stream = new ByteArrayInputStream(data);
+       try {
+          Metadata metadata = new Metadata();
+          assertEquals(expected, repo.detect(stream, metadata).toString());
+       } finally {
+          stream.close();
+       }
+    }
+    
     private void assertTypeByNameAndData(String expected, String filename)
            throws IOException {
        InputStream stream = TestMimeTypes.class.getResourceAsStream(


Reply via email to