X-Git-Url: http://jaekl.net/gitweb/?p=cfb.git;a=blobdiff_plain;f=test%2Fnet%2Fjaekl%2Fqd%2Futil%2FSendMailTest.java;h=e420d7aba7b9cb75ba876aac08dabff3ba538710;hp=b7c64ef677488f79ed8ec252398ad4e0cd22bdc9;hb=378e3cda95d14407750348bcf203f5876bc5cc03;hpb=e1520fe079abf9b27dbd859c0e186eeee4898f7e diff --git a/test/net/jaekl/qd/util/SendMailTest.java b/test/net/jaekl/qd/util/SendMailTest.java index b7c64ef..e420d7a 100644 --- a/test/net/jaekl/qd/util/SendMailTest.java +++ b/test/net/jaekl/qd/util/SendMailTest.java @@ -45,7 +45,7 @@ public class SendMailTest { + "To: jane@jane.net\r\n" + "Subject: Me Tarzan, you Jane\r\n" + "MIME-Version: 1.0\r\n" - + "Content-Type: multipart/mixed; boundary=snip_snip\r\n" + + "Content-Type: multipart/mixed; boundary=\"snip_snip\"\r\n" + "\r\n" + "--snip_snip\r\n" + "Content-Type: text/plain\r\n" @@ -58,27 +58,82 @@ public class SendMailTest { + "--snip_snip--\r\n" + "\r\n.\r\n" + "QUIT\r\n"; + final String HTML = + "\n" + + "\n" + + "Me Tarzan; you Jane\n" + + "\n" + + "\n" + + "

Tarzan like Jane.
Tarzan come see Jane soon.

\n" + + "

Tarzan

\n" + + "\n" + + ""; + final String HTML_SENT = + "MAIL FROM: tarzan@jane.net\r\n" + + "RCPT TO: jane@jane.net\r\n" + + "DATA\r\n" + + "From: tarzan@jane.net\r\n" + + "To: jane@jane.net\r\n" + + "Subject: Me Tarzan, you Jane\r\n" + + "MIME-Version: 1.0\r\n" + + "Content-Type: multipart/mixed; boundary=\"snip_snip\"\r\n" + + "\r\n" + + "--snip_snip\r\n" + + "Content-Type: text/html\r\n" + + "\r\n" + + HTML + + "\r\n\r\n--snip_snip--\r\n" + + "\r\n.\r\n" + + "QUIT\r\n"; - SmtpConversationMock conversat = new SmtpConversationMock(TYPICAL_INIT, TYPICAL); - SendMailMock smm = new SendMailMock(conversat); - - smm.setFrom("tarzan@jane.net"); - smm.addTo("jane@jane.net"); - smm.setSubject("Me Tarzan, you Jane"); - - MimePart part = new MimePart("text/plain", "Tarzan like Jane\nTarzan come see Jane soon\n\nTarzan"); - smm.addPart(part); - - smm.send(); - - OutputStreamMock osm = conversat.getOutputStream(); - String result = osm.mock_getContent(Charset.forName(FileMock.UTF_8)); - - int pos = result.indexOf("\r\n"); - assertTrue(pos > 0); - String afterHELO = result.substring(pos + 2); + // Try sending a plain-text email + { + SmtpConversationMock conversat = new SmtpConversationMock(TYPICAL_INIT, TYPICAL); + SendMailMock smm = new SendMailMock(conversat); + + smm.setFrom("tarzan@jane.net"); + smm.addTo("jane@jane.net"); + smm.setSubject("Me Tarzan, you Jane"); + + MimePart part = new MimePart("text/plain", "Tarzan like Jane\nTarzan come see Jane soon\n\nTarzan"); + smm.addPart(part); + + smm.send(); + + OutputStreamMock osm = conversat.getOutputStream(); + String result = osm.mock_getContent(Charset.forName(FileMock.UTF_8)); + + int pos = result.indexOf("\r\n"); + assertTrue(pos > 0); + String afterHELO = result.substring(pos + 2); + + assertTrue(result.startsWith("HELO ")); + assertEquals(TYPICAL_SENT, afterHELO); + } - assertTrue(result.startsWith("HELO ")); - assertEquals(TYPICAL_SENT, afterHELO); + // Try sending an HTML email + { + SmtpConversationMock conversat = new SmtpConversationMock(TYPICAL_INIT, TYPICAL); + SendMailMock smm = new SendMailMock(conversat); + + smm.setFrom("tarzan@jane.net"); + smm.addTo("jane@jane.net"); + smm.setSubject("Me Tarzan, you Jane"); + + MimePart part = new MimePart("text/html", HTML); + smm.addPart(part); + + smm.send(); + + OutputStreamMock osm = conversat.getOutputStream(); + String result = osm.mock_getContent(Charset.forName(FileMock.UTF_8)); + + int pos = result.indexOf("\r\n"); + assertTrue(pos > 0); + String afterHELO = result.substring(pos + 2); + + assertTrue(result.startsWith("HELO ")); + assertEquals(HTML_SENT, afterHELO); + } } }