You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ta...@apache.org on 2017/10/24 00:27:24 UTC
[tika] 03/03: update some unit tests to use the
RecursiveParserWrapper
This is an automated email from the ASF dual-hosted git repository.
tallison pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tika.git
commit 96a3502de309df863fcf37897466766e62d4e9a7
Author: tballison <ta...@mitre.org>
AuthorDate: Mon Oct 23 20:27:08 2017 -0400
update some unit tests to use the RecursiveParserWrapper
---
.../apache/tika/parser/mail/RFC822ParserTest.java | 117 ++++-----------------
1 file changed, 21 insertions(+), 96 deletions(-)
diff --git a/tika-parsers/src/test/java/org/apache/tika/parser/mail/RFC822ParserTest.java b/tika-parsers/src/test/java/org/apache/tika/parser/mail/RFC822ParserTest.java
index 09cad0c..03f7f20 100644
--- a/tika-parsers/src/test/java/org/apache/tika/parser/mail/RFC822ParserTest.java
+++ b/tika-parsers/src/test/java/org/apache/tika/parser/mail/RFC822ParserTest.java
@@ -59,6 +59,7 @@ import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.apache.tika.parser.PasswordProvider;
+import org.apache.tika.parser.RecursiveParserWrapper;
import org.apache.tika.parser.ocr.TesseractOCRParserTest;
import org.apache.tika.sax.BodyContentHandler;
import org.apache.tika.sax.XHTMLContentHandler;
@@ -543,110 +544,34 @@ public class RFC822ParserTest extends TikaTest {
@Test
public void testExtractAttachments() throws Exception {
- ContentHandler handler = new BodyContentHandler();
- Metadata metadata = new Metadata();
- Parser p = new RFC822Parser();
- ParseContext context = new ParseContext();
-
- try (InputStream stream = getStream("test-documents/testEmailWithPNGAtt.eml")) {
- p.parse(stream, handler, metadata, context);
- }
-
- // Check we go the metadata
- assertEquals("Tika Test <XX...@apache.org>", metadata.get(Metadata.MESSAGE_FROM));
- assertEquals("Test Attachment Email", metadata.get(TikaCoreProperties.TITLE));
-
- // Try again with attachment detecting and fetching
- final Detector detector = new DefaultDetector();
- final Parser extParser = new AutoDetectParser();
- final List<MediaType> seenTypes = new ArrayList<MediaType>();
- final List<String> seenText = new ArrayList<String>();
- final List<String> seenNames = new ArrayList<String>();
- final List<String> seenContentDisposition = new ArrayList<String>();
- EmbeddedDocumentExtractor ext = new EmbeddedDocumentExtractor() {
- @Override
- public boolean shouldParseEmbedded(Metadata metadata) {
- return true;
- }
-
- @Override
- public void parseEmbedded(InputStream stream, ContentHandler handler,
- Metadata metadata, boolean outputHtml) throws SAXException,
- IOException {
- seenNames.add( metadata.get(Metadata.RESOURCE_NAME_KEY) );
- seenTypes.add( detector.detect(stream, metadata) );
- seenContentDisposition.add( metadata.get(Metadata.CONTENT_DISPOSITION) );
-
- ContentHandler h = new BodyContentHandler();
- try {
- extParser.parse(stream, h, metadata, new ParseContext());
- } catch (TikaException e) {
- throw new RuntimeException(e);
- }
- seenText.add(h.toString());
- }
- };
- context.set(EmbeddedDocumentExtractor.class, ext);
+ List<Metadata> metadataList = getRecursiveMetadata("testEmailWithPNGAtt.eml");
+ // Check we get the metadata
+ assertEquals("Tika Test <XX...@apache.org>", metadataList.get(3).get(Metadata.MESSAGE_FROM));
+ assertEquals("Test Attachment Email", metadataList.get(3).get(TikaCoreProperties.TITLE));
- try (InputStream stream = getStream("test-documents/testEmailWithPNGAtt.eml")) {
- p.parse(stream, handler, metadata, context);
- }
-
- // Check we go the metadata
- assertEquals("Tika Test <XX...@apache.org>", metadata.get(Metadata.MESSAGE_FROM));
- assertEquals("Test Attachment Email", metadata.get(TikaCoreProperties.TITLE));
-
// Check attachments
- assertEquals(2, seenTypes.size());
- assertEquals(2, seenText.size());
- assertEquals("text/plain", seenTypes.get(0).toString());
- assertEquals("image/png", seenTypes.get(1).toString());
- assertEquals("testPNG.png", seenNames.get(1));
- assertEquals("This email has a PNG attachment included in it\n\n", seenText.get(0));
- assertEquals(null, seenContentDisposition.get(0));
- assertEquals("attachment; filename=\"testPNG.png\"", seenContentDisposition.get(1));
+ assertEquals(4, metadataList.size());
+ assertEquals("text/plain; charset=UTF-8", metadataList.get(1).get(Metadata.CONTENT_TYPE));
+ assertEquals("image/png", metadataList.get(2).get(Metadata.CONTENT_TYPE));
+ assertEquals("testPNG.png", metadataList.get(2).get(Metadata.RESOURCE_NAME_KEY));
+ assertContains("This email has a PNG attachment included in it", metadataList.get(1).get(RecursiveParserWrapper.TIKA_CONTENT));
+ assertEquals(null, metadataList.get(1).get(Metadata.CONTENT_DISPOSITION));
+ assertEquals("attachment; filename=\"testPNG.png\"", metadataList.get(2).get(Metadata.CONTENT_DISPOSITION));
}
@Test
public void testEmbeddedMetadata() throws Exception {
- Metadata metadata = new Metadata();
- Parser p = new RFC822Parser();
- ParseContext context = new ParseContext();
- final Parser extParser = new AutoDetectParser();
- final List<Metadata> seenMetadata = new ArrayList<>();
- EmbeddedDocumentExtractor ext = new EmbeddedDocumentExtractor() {
- @Override
- public boolean shouldParseEmbedded(Metadata metadata) {
- return true;
- }
-
- @Override
- public void parseEmbedded(InputStream stream, ContentHandler handler,
- Metadata metadata, boolean outputHtml) throws SAXException,
- IOException {
- seenMetadata.add( metadata );
- try {
- extParser.parse(stream, new DefaultHandler(), metadata, new ParseContext());
- } catch (TikaException e) {
- throw new RuntimeException(e);
- }
- }
- };
- context.set(EmbeddedDocumentExtractor.class, ext);
-
- try(InputStream stream = getStream( "test-documents/testRFC822-multipart" )) {
- p.parse(stream, new DefaultHandler(), metadata, context);
- }
+ List<Metadata> seenMetadata = getRecursiveMetadata("testRFC822-multipart");
- assertEquals(3, seenMetadata.size());
- assertEquals(null, seenMetadata.get(0).get(Metadata.CONTENT_DISPOSITION));
- assertEquals("text/plain; charset=UTF-8", seenMetadata.get(0).get(Metadata.CONTENT_TYPE));
- assertEquals("UTF-8", seenMetadata.get(0).get(Metadata.CONTENT_ENCODING));
+ assertEquals(4, seenMetadata.size());
assertEquals(null, seenMetadata.get(1).get(Metadata.CONTENT_DISPOSITION));
- assertEquals("text/html; charset=UTF-8", seenMetadata.get(1).get(Metadata.CONTENT_TYPE));
+ assertEquals("text/plain; charset=UTF-8", seenMetadata.get(1).get(Metadata.CONTENT_TYPE));
assertEquals("UTF-8", seenMetadata.get(1).get(Metadata.CONTENT_ENCODING));
- assertEquals("attachment; filename=\"logo.gif\"", seenMetadata.get(2).get(Metadata.CONTENT_DISPOSITION));
- assertEquals("logo.gif", seenMetadata.get(2).get(Metadata.RESOURCE_NAME_KEY));
- assertEquals("image/gif", seenMetadata.get(2).get(Metadata.CONTENT_TYPE));
+ assertEquals(null, seenMetadata.get(2).get(Metadata.CONTENT_DISPOSITION));
+ assertEquals("text/html; charset=UTF-8", seenMetadata.get(2).get(Metadata.CONTENT_TYPE));
+ assertEquals("UTF-8", seenMetadata.get(2).get(Metadata.CONTENT_ENCODING));
+ assertEquals("attachment; filename=\"logo.gif\"", seenMetadata.get(3).get(Metadata.CONTENT_DISPOSITION));
+ assertEquals("logo.gif", seenMetadata.get(3).get(Metadata.RESOURCE_NAME_KEY));
+ assertEquals("image/gif", seenMetadata.get(3).get(Metadata.CONTENT_TYPE));
}
}
--
To stop receiving notification emails like this one, please contact
"commits@tika.apache.org" <co...@tika.apache.org>.