@Override public void tearDown() throws Exception { if (mFile != null) { mFile.delete(); } MimeVisitor.unregisterConverter(TestMimeVisitor.class); MimeVisitor.unregisterMutator(TestMimeVisitor.class); cleanUp(); }
public void testMimeConverter() throws Exception { MimeVisitor.registerConverter(TestMimeVisitor.class); ExpectedResults expected = new ExpectedResults(); String subject = NAME_PREFIX + " testMimeConverter oldsubject"; expected.convertedSubject = NAME_PREFIX + " testMimeConverter newsubject"; expected.rawContent = TestUtil.getTestMessage(subject, RECIPIENT_NAME, SENDER_NAME, null); expected.wasMutated = false; // Test ParsedMessage created from byte[] ParsedMessage pm = new ParsedMessage(expected.rawContent.getBytes(), false); verifyParsedMessage(pm, expected); pm = new ParsedMessage(expected.rawContent.getBytes(), true); verifyParsedMessage(pm, expected); // Test ParsedMessage created from File mFile = File.createTempFile("TestParsedMessage", ".msg"); FileOutputStream out = new FileOutputStream(mFile); out.write(expected.rawContent.getBytes()); out.close(); pm = new ParsedMessage(mFile, null, false); verifyParsedMessage(pm, expected); pm = new ParsedMessage(mFile, null, true); verifyParsedMessage(pm, expected); // Test ParsedMessage created from MimeMessage. Can't verify entire content // because JavaMail mangles the headers. MimeMessage mimeMsg = new ZMimeMessage( JMSession.getSession(), new SharedByteArrayInputStream(expected.rawContent.getBytes())); pm = new ParsedMessage(mimeMsg, false); assertTrue((new String(pm.getRawData()).contains("oldsubject"))); assertTrue(getContent(pm.getMimeMessage()).contains("newsubject")); assertTrue(pm.getSubject().contains("newsubject")); pm = new ParsedMessage(mimeMsg, true); assertTrue((new String(pm.getRawData()).contains("oldsubject"))); assertTrue(getContent(pm.getMimeMessage()).contains("newsubject")); assertTrue(pm.getSubject().contains("newsubject")); }
/** * Tests message mutation. We can't verify the entire content, since mutation calls JavaMail, * which mangles the headers. We'll have to settle for confirming that the subject was updated * correctly. */ public void testMimeMutator() throws Exception { MimeVisitor.registerMutator(TestMimeVisitor.class); String subject = NAME_PREFIX + " testMimeConverter oldsubject"; String content = TestUtil.getTestMessage(subject, RECIPIENT_NAME, SENDER_NAME, null); // Test ParsedMessage created from byte[] ParsedMessage pm = new ParsedMessage(content.getBytes(), false); pm = new ParsedMessage(content.getBytes(), true); String substring = "newsubject"; verifyMutatedMessage(pm, substring, true); // Test ParsedMessage created from File mFile = createTempFile(content); pm = new ParsedMessage(mFile, null, false); verifyMutatedMessage(pm, substring, true); mFile.delete(); mFile = createTempFile(content); pm = new ParsedMessage(mFile, null, true); verifyMutatedMessage(pm, substring, true); // Test ParsedMessage created from MimeMessage, attachment indexing off. MimeMessage mimeMsg = new ZMimeMessage( JMSession.getSession(), new SharedByteArrayInputStream(content.getBytes())); pm = new ParsedMessage(mimeMsg, false); verifyMutatedMessage(pm, substring, true); // Test ParsedMessage created from MimeMessage, attachment indexing on. mimeMsg = new ZMimeMessage( JMSession.getSession(), new SharedByteArrayInputStream(content.getBytes())); pm = new ParsedMessage(mimeMsg, true); verifyMutatedMessage(pm, substring, true); }