Added: commons/proper/email/trunk/src/test/eml/simple.eml URL: http://svn.apache.org/viewvc/commons/proper/email/trunk/src/test/eml/simple.eml?rev=1029898&view=auto ============================================================================== --- commons/proper/email/trunk/src/test/eml/simple.eml (added) +++ commons/proper/email/trunk/src/test/eml/simple.eml Mon Nov 1 23:59:16 2010 @@ -0,0 +1,15 @@ +Date: Mon, 1 Nov 2010 17:26:01 +0100 (CET) +From: "[email protected]" <[email protected]> +To: "[email protected]" <[email protected]> +Message-ID: <[email protected]> +Subject: Test HTML Send #1 Subject (wo charset) +MIME-Version: 1.0 +Content-Type: multipart/mixed; + boundary="----=_Part_20_1024180126.1288628761095" + +------=_Part_20_1024180126.1288628761095 +Content-Type: text/plain; charset=us-ascii +Content-Transfer-Encoding: 7bit + +Test message +------=_Part_20_1024180126.1288628761095-- \ No newline at end of file
Modified: commons/proper/email/trunk/src/test/org/apache/commons/mail/BaseEmailTestCase.java URL: http://svn.apache.org/viewvc/commons/proper/email/trunk/src/test/org/apache/commons/mail/BaseEmailTestCase.java?rev=1029898&r1=1029897&r2=1029898&view=diff ============================================================================== --- commons/proper/email/trunk/src/test/org/apache/commons/mail/BaseEmailTestCase.java (original) +++ commons/proper/email/trunk/src/test/org/apache/commons/mail/BaseEmailTestCase.java Mon Nov 1 23:59:16 2010 @@ -37,8 +37,6 @@ import org.apache.commons.mail.settings. import org.subethamail.wiser.Wiser; import org.subethamail.wiser.WiserMessage; - - /** * Base test case for Email test classes * @@ -52,6 +50,7 @@ public abstract class BaseEmailTestCase { /** Padding at end of body added by wiser/send */ public static final int BODY_END_PAD = 3; + /** Padding at start of body added by wiser/send */ public static final int BODY_START_PAD = 2; @@ -65,15 +64,20 @@ public abstract class BaseEmailTestCase protected Wiser fakeMailServer; /** Mail server used for testing */ - protected String strTestMailServer = EmailConfiguration.MAIL_SERVER; + protected String strTestMailServer = "localhost"; + /** From address for the test email */ - protected String strTestMailFrom = EmailConfiguration.TEST_FROM; + protected String strTestMailFrom = "[email protected]"; + /** Destination address for the test email */ - protected String strTestMailTo = EmailConfiguration.TEST_TO; + protected String strTestMailTo = "[email protected]"; + /** Mailserver username (set if needed) */ - protected String strTestUser = EmailConfiguration.TEST_USER; + protected String strTestUser = "user"; + /** Mailserver strTestPasswd (set if needed) */ - protected String strTestPasswd = EmailConfiguration.TEST_PASSWD; + protected String strTestPasswd = "password"; + /** URL to used to test URL attachmetns (Must be valid) */ protected String strTestURL = EmailConfiguration.TEST_URL; Copied: commons/proper/email/trunk/src/test/org/apache/commons/mail/DataSourceResolverTest.java (from r1006345, commons/proper/email/trunk/src/test/org/apache/commons/mail/DefaultAuthenticatorTest.java) URL: http://svn.apache.org/viewvc/commons/proper/email/trunk/src/test/org/apache/commons/mail/DataSourceResolverTest.java?p2=commons/proper/email/trunk/src/test/org/apache/commons/mail/DataSourceResolverTest.java&p1=commons/proper/email/trunk/src/test/org/apache/commons/mail/DefaultAuthenticatorTest.java&r1=1006345&r2=1029898&rev=1029898&view=diff ============================================================================== --- commons/proper/email/trunk/src/test/org/apache/commons/mail/DefaultAuthenticatorTest.java (original) +++ commons/proper/email/trunk/src/test/org/apache/commons/mail/DataSourceResolverTest.java Mon Nov 1 23:59:16 2010 @@ -16,46 +16,33 @@ */ package org.apache.commons.mail; -import javax.mail.PasswordAuthentication; - import junit.framework.TestCase; +import org.apache.commons.mail.impl.DataSourceResolverImpl; + +import java.io.File; /** - * JUnit test case for DefaultAuthenticator Class + * JUnit test case for DateSourceResolver. * - * @since 1.0 - * @author <a href="mailto:[email protected]">Corey Scott</a> - * @version $Id$ + * @since 1.3 */ -public class DefaultAuthenticatorTest extends TestCase +public class DataSourceResolverTest extends TestCase { - /** - * @param name name - */ - public DefaultAuthenticatorTest(String name) + public DataSourceResolverTest(String name) { super(name); } - /** */ - public void testDefaultAuthenticatorConstructor() + // ====================================================================== + // Start of Tests + // ====================================================================== + + public void testResolvingFiles() throws Exception { - //insert code testing basic functionality - String strUsername = "user.name"; - String strPassword = "user.pwd"; - DefaultAuthenticator authenicator = - new DefaultAuthenticator(strUsername, strPassword); - - assertTrue( - PasswordAuthentication.class.isInstance( - authenicator.getPasswordAuthentication())); - assertEquals( - strUsername, - authenicator.getPasswordAuthentication().getUserName()); - assertEquals( - strPassword, - authenicator.getPasswordAuthentication().getPassword()); + DataSourceResolver dataSourceResolver = new DataSourceResolverImpl(new File("./src/test").toURI().toURL(), true); + assertNotNull(dataSourceResolver.resolve("images/asf_logo_wide.gif")); + assertNotNull(dataSourceResolver.resolve("./images/asf_logo_wide.gif")); + assertNull(dataSourceResolver.resolve("./images/does not exist gif")); } - } Propchange: commons/proper/email/trunk/src/test/org/apache/commons/mail/DataSourceResolverTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: commons/proper/email/trunk/src/test/org/apache/commons/mail/DataSourceResolverTest.java ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Modified: commons/proper/email/trunk/src/test/org/apache/commons/mail/EmailAttachmentTest.java URL: http://svn.apache.org/viewvc/commons/proper/email/trunk/src/test/org/apache/commons/mail/EmailAttachmentTest.java?rev=1029898&r1=1029897&r2=1029898&view=diff ============================================================================== --- commons/proper/email/trunk/src/test/org/apache/commons/mail/EmailAttachmentTest.java (original) +++ commons/proper/email/trunk/src/test/org/apache/commons/mail/EmailAttachmentTest.java Mon Nov 1 23:59:16 2010 @@ -89,11 +89,10 @@ public class EmailAttachmentTest extends { "http://localhost/", "http://www.apache.org/", - "http://example.invalid" }; + "http://foo.notexisting.org" }; for (int i = 0; i < tests.length; i++) { - // TODO: Document why malformed url is ok, or remove the catch try { URL testURL = new URL(tests[i]); @@ -102,8 +101,7 @@ public class EmailAttachmentTest extends } catch (MalformedURLException e) { - e.printStackTrace(); - continue; + fail(e.getMessage()); } } } Modified: commons/proper/email/trunk/src/test/org/apache/commons/mail/EmailLiveTest.java URL: http://svn.apache.org/viewvc/commons/proper/email/trunk/src/test/org/apache/commons/mail/EmailLiveTest.java?rev=1029898&r1=1029897&r2=1029898&view=diff ============================================================================== --- commons/proper/email/trunk/src/test/org/apache/commons/mail/EmailLiveTest.java (original) +++ commons/proper/email/trunk/src/test/org/apache/commons/mail/EmailLiveTest.java Mon Nov 1 23:59:16 2010 @@ -18,6 +18,7 @@ package org.apache.commons.mail; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; +import org.apache.commons.mail.impl.DataSourceResolverImpl; import org.apache.commons.mail.settings.EmailConfiguration; import javax.activation.DataSource; @@ -252,8 +253,9 @@ public class EmailLiveTest extends BaseE String htmlMsg1 = FileUtils.readFileToString(htmlFile); ImageHtmlEmail email = (ImageHtmlEmail) create(ImageHtmlEmail.class); + email.setDataSourceResolver(new DataSourceResolverImpl(htmlFile.toURI().toURL(), true)); email.setSubject("[testImageHtmlEmail] 1.Test: simple html content"); - email.setHtmlMsg(htmlMsg1, htmlFile.toURI().toURL(), false); + email.setHtmlMsg(htmlMsg1); EmailUtils.writeMimeMessage( new File("./target/test-emails/testImageHtmlEmailLocal.eml"), send(email).getMimeMessage()); } @@ -270,12 +272,14 @@ public class EmailLiveTest extends BaseE { if(EmailConfiguration.MAIL_FORCE_SEND) { - URL url = new URL("http://www.apache.org"); + // URL url = new URL("http://commons.apache.org/email/"); + URL url = new URL("http://nemo.sonarsource.org/project/index/221295?page_id=2"); String htmlMsg = getFromUrl(url); ImageHtmlEmail email = (ImageHtmlEmail) create(ImageHtmlEmail.class); + email.setDataSourceResolver(new DataSourceResolverImpl(url, true)); email.setSubject("[testImageHtmlEmail] 2.Test: complex html content"); - email.setHtmlMsg(htmlMsg, url, true); + email.setHtmlMsg(htmlMsg); EmailUtils.writeMimeMessage( new File("./target/test-emails/testImageHtmlEmailRemote.eml"), send(email).getMimeMessage()); } Modified: commons/proper/email/trunk/src/test/org/apache/commons/mail/HtmlEmailTest.java URL: http://svn.apache.org/viewvc/commons/proper/email/trunk/src/test/org/apache/commons/mail/HtmlEmailTest.java?rev=1029898&r1=1029897&r2=1029898&view=diff ============================================================================== --- commons/proper/email/trunk/src/test/org/apache/commons/mail/HtmlEmailTest.java (original) +++ commons/proper/email/trunk/src/test/org/apache/commons/mail/HtmlEmailTest.java Mon Nov 1 23:59:16 2010 @@ -32,7 +32,6 @@ import org.apache.commons.mail.settings. * @author <a href="mailto:[email protected]">Corey Scott</a> * @version $Id$ */ - public class HtmlEmailTest extends BaseEmailTestCase { /** */ Modified: commons/proper/email/trunk/src/test/org/apache/commons/mail/ImageHtmlEmailTest.java URL: http://svn.apache.org/viewvc/commons/proper/email/trunk/src/test/org/apache/commons/mail/ImageHtmlEmailTest.java?rev=1029898&r1=1029897&r2=1029898&view=diff ============================================================================== --- commons/proper/email/trunk/src/test/org/apache/commons/mail/ImageHtmlEmailTest.java (original) +++ commons/proper/email/trunk/src/test/org/apache/commons/mail/ImageHtmlEmailTest.java Mon Nov 1 23:59:16 2010 @@ -16,8 +16,6 @@ */ package org.apache.commons.mail; -import java.io.BufferedOutputStream; -import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -28,12 +26,13 @@ import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; -import javax.activation.DataHandler; import javax.mail.internet.MimeMessage; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; +import org.apache.commons.mail.impl.DataSourceResolverImpl; import org.apache.commons.mail.mocks.MockImageHtmlEmailConcrete; +import org.apache.commons.mail.util.MimeMessageParser; import org.subethamail.wiser.WiserMessage; public class ImageHtmlEmailTest extends HtmlEmailTest { @@ -43,22 +42,22 @@ public class ImageHtmlEmailTest extends private static final File TEST_IMAGE_DIR = new File(TEST_IMAGE_URL.getPath()).getParentFile(); private static final URL TEST_HTML_URL = ImageHtmlEmailTest.class.getResource("/attachments/download_email.cgi.html"); + private MockImageHtmlEmailConcrete email; + public ImageHtmlEmailTest(String name) throws IOException { super(name); } - /** */ - private MockImageHtmlEmailConcrete email; - - /** - * @throws Exception - */ protected void setUp() throws Exception { super.setUp(); // reusable objects to be used across multiple tests email = new MockImageHtmlEmailConcrete(); } + // ====================================================================== + // Start of Tests + // ====================================================================== + public void testSendHtml() throws Exception { Logger.getLogger(ImageHtmlEmail.class.getName()).setLevel(Level.FINEST); @@ -69,6 +68,7 @@ public class ImageHtmlEmailTest extends String strSubject = "Test HTML Send default"; email = new MockImageHtmlEmailConcrete(); + email.setDataSourceResolver(new DataSourceResolverImpl(TEST_IMAGE_DIR.toURI().toURL(), TEST_IS_LENIENT)); email.setHostName(strTestMailServer); email.setSmtpPort(getMailServerPort()); email.setFrom(strTestMailFrom); @@ -90,35 +90,21 @@ public class ImageHtmlEmailTest extends String html = str.toString(); // set the html message - email.setHtmlMsg(html, TEST_IMAGE_DIR.toURI().toURL(), TEST_IS_LENIENT); + email.setHtmlMsg(html); // set the alternative message - //email.setTextMsg("Your email client does not support HTML messages"); + email.setTextMsg("Your email client does not support HTML messages"); // send the email email.send(); fakeMailServer.stop(); - // Cannot validate as the HTML is changed during inclusion - // validate html message - //validateSend(fakeMailServer, strSubject, email.getHtmlMsg(), - // email.getFromAddress(), email.getToAddresses(), - // email.getCcAddresses(), email.getBccAddresses(), false); assertEquals(1, fakeMailServer.getMessages().size()); MimeMessage mimeMessage = ((WiserMessage) fakeMailServer.getMessages().get(0)).getMimeMessage(); - - DataHandler dataHandler = mimeMessage.getDataHandler(); - ByteArrayOutputStream byteArrayOutStream = new ByteArrayOutputStream(); - BufferedOutputStream buffOs = new BufferedOutputStream(byteArrayOutStream); - dataHandler.writeTo(buffOs); - buffOs.flush(); - - String msg = new String(byteArrayOutStream.toByteArray()); - // the mail should contain Content-ID-Entries - assertTrue(msg, msg.contains("\"cid:")); - // at least the logo that we store locally should be replaced by an included cid now - assertFalse(msg, msg.contains("\"asf_logo_wide.gif\"")); + MimeMessageParser mimeMessageParser = new MimeMessageParser(mimeMessage).parse(); + assertTrue(mimeMessageParser.getHtmlContent().contains("\"cid:")); + assertTrue(mimeMessageParser.getAttachmentList().size() == 2); } public void testSendEmptyHTML() throws Exception { @@ -129,7 +115,7 @@ public class ImageHtmlEmailTest extends // set the html message try { - email.setHtmlMsg(null, new File("/tmp").toURI().toURL(), TEST_IS_LENIENT); + email.setHtmlMsg(null); fail("Should fail here!"); } catch (EmailException e) { assertTrue(e.getMessage(), e.getMessage().contains( @@ -145,7 +131,7 @@ public class ImageHtmlEmailTest extends // set the html message try { - email.setHtmlMsg("", new File("/tmp").toURI().toURL(), TEST_IS_LENIENT); + email.setHtmlMsg(""); fail("Should fail here!"); } catch (EmailException e) { assertTrue(e.getMessage(), e.getMessage().contains( @@ -168,11 +154,11 @@ public class ImageHtmlEmailTest extends email.setFrom(strTestMailFrom); email.addTo(strTestMailTo); email.setSubject(strSubject); + email.setDataSourceResolver(new DataSourceResolverImpl(TEST_IMAGE_DIR.toURI().toURL(), TEST_IS_LENIENT)); // set the html message email.setHtmlMsg( - "<html><body><img src=\"http://www.apache.org/images/feather.gif\"/></body></html>", - TEST_IS_LENIENT + "<html><body><img src=\"http://www.apache.org/images/feather.gif\"/></body></html>" ); // send the email @@ -200,6 +186,7 @@ public class ImageHtmlEmailTest extends email.setFrom(strTestMailFrom); email.addTo(strTestMailTo); email.setSubject(strSubject); + email.setDataSourceResolver(new DataSourceResolverImpl(TEST_IMAGE_DIR.toURI().toURL(), TEST_IS_LENIENT)); File file = File.createTempFile("emailtest", ".tst"); FileUtils.writeStringToFile(file, @@ -207,7 +194,8 @@ public class ImageHtmlEmailTest extends // set the html message email.setHtmlMsg("<html><body><img src=\"" + file.getAbsolutePath() - + "\"/></body></html>", new File("").toURI().toURL(), TEST_IS_LENIENT); + + "\"/></body></html>" + ); // send the email email.send(); Added: commons/proper/email/trunk/src/test/org/apache/commons/mail/util/MimeMessageParserTest.java URL: http://svn.apache.org/viewvc/commons/proper/email/trunk/src/test/org/apache/commons/mail/util/MimeMessageParserTest.java?rev=1029898&view=auto ============================================================================== --- commons/proper/email/trunk/src/test/org/apache/commons/mail/util/MimeMessageParserTest.java (added) +++ commons/proper/email/trunk/src/test/org/apache/commons/mail/util/MimeMessageParserTest.java Mon Nov 1 23:59:16 2010 @@ -0,0 +1,104 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.mail.util; + +import junit.framework.TestCase; + +import javax.activation.DataSource; +import javax.mail.Session; +import javax.mail.internet.MimeMessage; +import java.io.File; +import java.util.List; +import java.util.Properties; + +/** + * Testing the MimeMessageParser. + */ +public class MimeMessageParserTest + extends TestCase +{ + /** + * Defines the test case name for JUnit. + * + * @param name the test case's name. + */ + public MimeMessageParserTest(String name) + { + super(name); + } + + // ====================================================================== + // Start of Tests + // ====================================================================== + + public void testParseSimpleEmail() throws Exception + { + Session session = Session.getDefaultInstance(new Properties()); + MimeMessage message = MimeMessageUtils.createMimeMessage(session, new File("./src/test/eml/simple.eml")); + MimeMessageParser mimeMessageParser = new MimeMessageParser(message); + + mimeMessageParser.parse(); + + assertEquals("Test HTML Send #1 Subject (wo charset)", mimeMessageParser.getSubject()); + assertNotNull(mimeMessageParser.getMimeMessage()); + assertTrue(mimeMessageParser.isMultipart()); + assertFalse(mimeMessageParser.hasHtmlContent()); + assertTrue(mimeMessageParser.hasPlainContent()); + assertNotNull(mimeMessageParser.getPlainContent()); + assertNull(mimeMessageParser.getHtmlContent()); + assertTrue(mimeMessageParser.getTo().size() == 1); + assertTrue(mimeMessageParser.getCc().size() == 0); + assertTrue(mimeMessageParser.getBcc().size() == 0); + assertEquals("[email protected]", mimeMessageParser.getFrom()); + assertEquals("[email protected]", mimeMessageParser.getReplyTo()); + assertFalse(mimeMessageParser.hasAttachments()); + } + + public void testParseHtmlEmailWithAttachments() throws Exception + { + DataSource dataSource; + Session session = Session.getDefaultInstance(new Properties()); + MimeMessage message = MimeMessageUtils.createMimeMessage(session, new File("./src/test/eml/html-attachment.eml")); + MimeMessageParser mimeMessageParser = new MimeMessageParser(message); + + mimeMessageParser.parse(); + + assertEquals("Test", mimeMessageParser.getSubject()); + assertNotNull(mimeMessageParser.getMimeMessage()); + assertTrue(mimeMessageParser.isMultipart()); + assertTrue(mimeMessageParser.hasHtmlContent()); + assertTrue(mimeMessageParser.hasPlainContent()); + assertNotNull(mimeMessageParser.getPlainContent()); + assertNotNull(mimeMessageParser.getHtmlContent()); + assertTrue(mimeMessageParser.getTo().size() == 1); + assertTrue(mimeMessageParser.getCc().size() == 0); + assertTrue(mimeMessageParser.getBcc().size() == 0); + assertEquals("[email protected]", mimeMessageParser.getFrom()); + assertEquals("[email protected]", mimeMessageParser.getReplyTo()); + assertTrue(mimeMessageParser.hasAttachments()); + List attachmentList = mimeMessageParser.getAttachmentList(); + assertTrue(attachmentList.size() == 2); + + dataSource = mimeMessageParser.findAttachmentByName("Wasserlilien.jpg"); + assertNotNull(dataSource); + assertEquals("image/jpeg", dataSource.getContentType()); + + dataSource = mimeMessageParser.findAttachmentByName("it20one.pdf"); + assertNotNull(dataSource); + assertEquals("application/pdf", dataSource.getContentType()); + } +} Added: commons/proper/email/trunk/src/test/org/apache/commons/mail/util/URLFactoryTest.java URL: http://svn.apache.org/viewvc/commons/proper/email/trunk/src/test/org/apache/commons/mail/util/URLFactoryTest.java?rev=1029898&view=auto ============================================================================== --- commons/proper/email/trunk/src/test/org/apache/commons/mail/util/URLFactoryTest.java (added) +++ commons/proper/email/trunk/src/test/org/apache/commons/mail/util/URLFactoryTest.java Mon Nov 1 23:59:16 2010 @@ -0,0 +1,69 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.mail.util; + +import junit.framework.TestCase; +import org.apache.commons.mail.DefaultAuthenticator; + +import javax.mail.PasswordAuthentication; +import java.io.File; +import java.net.URL; + +/** + * JUnit test case for DefaultAuthenticator Class + * + * @since 1.0 + * @author <a href="mailto:[email protected]">Corey Scott</a> + * @version $Id: DefaultAuthenticatorTest.java 480401 2006-11-29 04:40:04Z bayard $ + */ + +public class URLFactoryTest extends TestCase +{ + public URLFactoryTest(String name) + { + super(name); + } + + // ====================================================================== + // Start of Tests + // ====================================================================== + + public void testCreateUrl() throws Exception + { + URL url; + URL baseUrl; + String location; + + // base URL + relative file name + location = "pom.xml"; + baseUrl = new File("").toURI().toURL(); + url = URLFactory.createUrl(baseUrl, location); + assertEquals(new File("pom.xml").toURI().toURL().toExternalForm(), url.toExternalForm()); + + // base URL + file URL + location = new File("pom.xml").toURI().toURL().toExternalForm(); + baseUrl = new File("").toURI().toURL(); + url = URLFactory.createUrl(baseUrl, location); + assertEquals(new File("pom.xml").toURI().toURL().toExternalForm(), url.toExternalForm()); + + // file URL only + location = new File("pom.xml").toURI().toURL().toExternalForm(); + baseUrl = null; + url = URLFactory.createUrl(baseUrl, location); + assertEquals(new File("pom.xml").toURI().toURL().toExternalForm(), url.toExternalForm()); + } +}
