Author: nick
Date: Fri Jan 16 00:09:15 2015
New Revision: 1652318

URL: http://svn.apache.org/r1652318
Log:
Partial unit test for TIKA-1028

Modified:
    
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mail/RFC822ParserTest.java

Modified: 
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mail/RFC822ParserTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mail/RFC822ParserTest.java?rev=1652318&r1=1652317&r2=1652318&view=diff
==============================================================================
--- 
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mail/RFC822ParserTest.java
 (original)
+++ 
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mail/RFC822ParserTest.java
 Fri Jan 16 00:09:15 2015
@@ -20,6 +20,7 @@ import static org.apache.tika.TikaTest.a
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.eq;
@@ -254,10 +255,39 @@ public class RFC822ParserTest {
        assertEquals("abcd", metadata.get(Metadata.SUBJECT));
        assertContains("bar biz bat", handler.toString());
     }
+    
+    /**
+     * Test TIKA-1028 - If the mail contains an encrypted attachment (or
+     *  an attachment that others triggers an error), parsing should carry
+     *  on for the remainder regardless
+     */
+    @Test
+    public void testEncryptedZipAttachment() throws Exception {
+        Parser parser = new RFC822Parser();
+        Metadata metadata = new Metadata();
+        InputStream stream = 
getStream("test-documents/testRFC822_encrypted_zip");
+        ContentHandler handler = new BodyContentHandler();
+        parser.parse(stream, handler, metadata, new ParseContext());
+        
+        // Check we go the metadata
+        assertEquals("Juha Haaga <[email protected]>", 
metadata.get(Metadata.MESSAGE_FROM));
+        assertEquals("Testing indexing of encrypted files containing useful 
information", metadata.get(TikaCoreProperties.TITLE));
+        
+        // Check we got the message text
+        assertContains("Please take a look at the file", handler.toString());
+        
+        // But not the contents of the zip file
+        // TODO
+        
+        // Try again, this time with the password supplied
+        // Check that we also get the zip's contents as well
+        // TODO
+    }
 
     private static InputStream getStream(String name) {
-        return Thread.currentThread().getContextClassLoader()
-                .getResourceAsStream(name);
+        InputStream stream = Thread.currentThread().getContextClassLoader()
+                                    .getResourceAsStream(name);
+        assertNotNull("Test file not found " + name, stream);
+        return stream;
     }
-
 }


Reply via email to