5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23 package org.openjdk.skara.email;
24
25 import org.junit.jupiter.api.condition.DisabledOnOs;
26 import org.junit.jupiter.api.condition.OS;
27 import org.openjdk.skara.test.SMTPServer;
28
29 import org.junit.jupiter.api.Test;
30
31 import java.io.IOException;
32 import java.time.Duration;
33 import java.util.logging.Logger;
34
35 import static org.junit.jupiter.api.Assertions.*;
36
37 class SMTPTests {
38 private final static Logger log = Logger.getLogger("org.openjdk.skara.email");;
39
40 @Test
41 void simple() throws IOException {
42 log.info("Hello");
43 try (var server = new SMTPServer()) {
44 var sender = EmailAddress.from("Test", "test@test.email");
45 var recipient = EmailAddress.from("Dest", "dest@dest.email");
46 var sentMail = Email.create(sender, "Subject", "Body").recipient(recipient).build();
47
48 SMTP.send(server.address(), recipient, sentMail);
49 var email = server.receive(Duration.ofSeconds(10));
50 assertEquals(sentMail, email);
51 }
52 }
53
54 @Test
55 void withHeader() throws IOException {
56 log.info("Hello");
57 try (var server = new SMTPServer()) {
58 var sender = EmailAddress.from("Test", "test@test.email");
59 var author = EmailAddress.from("Auth", "auth@test.email");
60 var recipient = EmailAddress.from("Dest", "dest@dest.email");
61 var sentMail = Email.create(author, "Subject", "Body")
62 .sender(sender)
63 .recipient(recipient)
64 .header("Something", "Other")
65 .build();
66
67 SMTP.send(server.address(), recipient, sentMail);
68 var email = server.receive(Duration.ofSeconds(10));
69 assertEquals(sentMail, email);
70 }
71 }
72
73 @Test
74 @DisabledOnOs(OS.WINDOWS)
75 void encoded() throws IOException {
76 log.info("Hello");
77 try (var server = new SMTPServer()) {
78 var sender = EmailAddress.from("Señor Dévèlöper", "test@test.email");
79 var recipient = EmailAddress.from("Dêst", "dest@dest.email");
80 var sentMail = Email.create(sender, "Sübject", "Bödÿ")
81 .recipient(recipient)
82 .header("Something", "Öthè®")
83 .build();
84
85 SMTP.send(server.address(), recipient, sentMail);
86 var email = server.receive(Duration.ofSeconds(10));
87 assertEquals(sentMail, email);
88 }
89 }
90
91 @Test
92 void timeout() throws IOException {
93 log.info("Hello");
94 try (var server = new SMTPServer()) {
95 var sender = EmailAddress.from("Test", "test@test.email");
96 var recipient = EmailAddress.from("Dest", "dest@dest.email");
97 var sentMail = Email.create(sender, "Subject", "Body").recipient(recipient).build();
98
99 assertThrows(RuntimeException.class, () -> SMTP.send(server.address(), recipient, sentMail, Duration.ZERO));
100 }
101 }
102 }
|
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23 package org.openjdk.skara.email;
24
25 import org.openjdk.skara.test.SMTPServer;
26
27 import org.junit.jupiter.api.Test;
28 import org.junit.jupiter.api.condition.*;
29
30 import java.io.IOException;
31 import java.time.Duration;
32
33 import static org.junit.jupiter.api.Assertions.*;
34
35 class SMTPTests {
36 @Test
37 void simple() throws IOException {
38 try (var server = new SMTPServer()) {
39 var sender = EmailAddress.from("Test", "test@test.email");
40 var recipient = EmailAddress.from("Dest", "dest@dest.email");
41 var sentMail = Email.create(sender, "Subject", "Body").recipient(recipient).build();
42
43 SMTP.send(server.address(), recipient, sentMail);
44 var email = server.receive(Duration.ofSeconds(10));
45 assertEquals(sentMail, email);
46 }
47 }
48
49 @Test
50 void withHeader() throws IOException {
51 try (var server = new SMTPServer()) {
52 var sender = EmailAddress.from("Test", "test@test.email");
53 var author = EmailAddress.from("Auth", "auth@test.email");
54 var recipient = EmailAddress.from("Dest", "dest@dest.email");
55 var sentMail = Email.create(author, "Subject", "Body")
56 .sender(sender)
57 .recipient(recipient)
58 .header("Something", "Other")
59 .build();
60
61 SMTP.send(server.address(), recipient, sentMail);
62 var email = server.receive(Duration.ofSeconds(10));
63 assertEquals(sentMail, email);
64 }
65 }
66
67 @Test
68 @DisabledOnOs(OS.WINDOWS)
69 void encoded() throws IOException {
70 try (var server = new SMTPServer()) {
71 var sender = EmailAddress.from("Señor Dévèlöper", "test@test.email");
72 var recipient = EmailAddress.from("Dêst", "dest@dest.email");
73 var sentMail = Email.create(sender, "Sübject", "Bödÿ")
74 .recipient(recipient)
75 .header("Something", "Öthè®")
76 .build();
77
78 SMTP.send(server.address(), recipient, sentMail);
79 var email = server.receive(Duration.ofSeconds(10));
80 assertEquals(sentMail, email);
81 }
82 }
83
84 @Test
85 void timeout() throws IOException {
86 try (var server = new SMTPServer()) {
87 var sender = EmailAddress.from("Test", "test@test.email");
88 var recipient = EmailAddress.from("Dest", "dest@dest.email");
89 var sentMail = Email.create(sender, "Subject", "Body").recipient(recipient).build();
90
91 assertThrows(RuntimeException.class, () -> SMTP.send(server.address(), recipient, sentMail, Duration.ZERO));
92 }
93 }
94
95 @Test
96 void withDot() throws IOException {
97 try (var server = new SMTPServer()) {
98 var sender = EmailAddress.from("Test", "test@test.email");
99 var recipient = EmailAddress.from("Dest", "dest@dest.email");
100 var sentMail = Email.create(sender, "Subject", "Body\n.\nMore text").recipient(recipient).build();
101
102 SMTP.send(server.address(), recipient, sentMail);
103 var email = server.receive(Duration.ofSeconds(10));
104 assertEquals(sentMail, email);
105 }
106 }
107 }
|