Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
- uses: actions/setup-java@v5
with:
distribution: corretto
java-version: 21
java-version: 25
cache: maven
- name: Run Integration Tests
run: mvn clean test -P errorprone
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<version.java>21</version.java>
<version.errorprone>2.45.0</version.errorprone>
<version.java>25</version.java>
<version.errorprone>2.46.0</version.errorprone>
<version.jsoup>1.22.1</version.jsoup>
<velocity.version>2.4.1</velocity.version>
<subetha.version>3.1.7</subetha.version>
Expand Down
60 changes: 31 additions & 29 deletions src/test/java/co/cfly/email/MailMessageTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ public class MailMessageTest {

private static final String ENVELOPE_FROM_ADDRESS = "ef@jboss.org";

static final String PNG_URL = "https://d3kxu0ch7gs9bq.cloudfront.net/images/Clearfly_Logo_Primary_FC.png";

@Test
public void testTextMailMessage() throws MessagingException, IOException {
SessionConfig mailConfig = TestMailConfigs.standardConfig();
Expand All @@ -72,7 +74,7 @@ public void testTextMailMessage() throws MessagingException, IOException {

Assert.assertEquals("Didn't receive the expected amount of messages. Expected 1 got " + wiser.getMessages().size(), 1, wiser.getMessages().size());

MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().get(0));
MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().getFirst());

Assert.assertEquals(MailTestUtil.getAddressHeader(fromName, fromAddress), mess.getHeader("From", null));
Assert.assertEquals(MailTestUtil.getAddressHeader(replyToAddress), mess.getHeader("Reply-To", null));
Expand Down Expand Up @@ -121,7 +123,7 @@ public void testTextMailMessageSpecialCharacters() throws MessagingException, IO

Assert.assertEquals("Didn't receive the expected amount of messages. Expected 1 got " + wiser.getMessages().size(), 1, wiser.getMessages().size());

MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().get(0));
MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().getFirst());

Assert.assertEquals("Subject has been modified", subject, MimeUtility.decodeText(MimeUtility.unfold(mess.getHeader("Subject", null))));

Expand Down Expand Up @@ -151,17 +153,16 @@ public void testHTMLMailMessage() throws MessagingException, IOException {
String replyToName = "No Reply";
try {
wiser.start();
e = new MailMessageImpl(mailConfig).from(MailTestUtil.getAddressHeader(fromName, fromAddress)).replyTo(MailTestUtil.getAddressHeader(replyToName, replyToAddress)).to(person).subject(
subject).bodyHtml(htmlBody).importance(MessagePriority.HIGH).addAttachment(new URLAttachment("https://design.jboss.org/seam/logo/final/seam_mail_85px.png", "seamLogo.png",
ContentDisposition.INLINE)).send();
e = new MailMessageImpl(mailConfig).from(MailTestUtil.getAddressHeader(fromName, fromAddress)).replyTo(MailTestUtil.getAddressHeader(replyToName, replyToAddress)).to(person)
.subject(subject).bodyHtml(htmlBody).importance(MessagePriority.HIGH).addAttachment(new URLAttachment(PNG_URL, "seamLogo.png", ContentDisposition.INLINE)).send();
}
finally {
stop(wiser);
}

Assert.assertEquals("Didn't receive the expected amount of messages. Expected 1 got " + wiser.getMessages().size(), 1, wiser.getMessages().size());

MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().get(0));
MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().getFirst());

Assert.assertEquals(MailTestUtil.getAddressHeader(fromName, fromAddress), mess.getHeader("From", null));
Assert.assertEquals(MailTestUtil.getAddressHeader(replyToName, replyToAddress), mess.getHeader("Reply-To", null));
Expand Down Expand Up @@ -204,17 +205,17 @@ public void testHTMLTextAltMailMessage() throws MessagingException, IOException
wiser.start();

new MailMessageImpl(mailConfig).from(MailTestUtil.getAddressHeader(fromName, fromAddress)).to(person).subject(subject).bodyHtmlTextAlt(htmlBody, textBody).importance(MessagePriority.LOW)
.deliveryReceipt(fromAddress).readReceipt(fromAddress).addAttachment("template.text.velocity", "text/plain", ContentDisposition.ATTACHMENT, Resources.asByteSource(Resources
.getResource("template.text.velocity")).read()).addAttachment(new URLAttachment("https://design.jboss.org/seam/logo/final/seam_mail_85px.png", "seamLogo.png",
ContentDisposition.INLINE)).send();
.deliveryReceipt(fromAddress).readReceipt(fromAddress)
.addAttachment("template.text.velocity", "text/plain", ContentDisposition.ATTACHMENT, Resources.asByteSource(Resources.getResource("template.text.velocity")).read())
.addAttachment(new URLAttachment(PNG_URL, "seamLogo.png", ContentDisposition.INLINE)).send();
}
finally {
stop(wiser);
}

Assert.assertEquals("Didn't receive the expected amount of messages. Expected 1 got " + wiser.getMessages().size(), 1, wiser.getMessages().size());

MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().get(0));
MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().getFirst());

Assert.assertEquals(MailTestUtil.getAddressHeader(fromName, fromAddress), mess.getHeader("From", null));
Assert.assertEquals(MailTestUtil.getAddressHeader(toName, toAddress), mess.getHeader("To", null));
Expand Down Expand Up @@ -264,18 +265,18 @@ public void testHTMLAutoTextAltMailMessage() throws MessagingException, IOExcept
try {
wiser.start();

new MailMessageImpl(mailConfig).from(MailTestUtil.getAddressHeader(fromName, fromAddress)).to(person).subject(subject).bodyHtml(htmlBody).createTextAlternative(true).importance(
MessagePriority.LOW).deliveryReceipt(fromAddress).readReceipt(fromAddress).addAttachment("template.text.velocity", "text/plain", ContentDisposition.ATTACHMENT, Resources
.asByteSource(Resources.getResource("template.text.velocity")).read()).addAttachment(new URLAttachment("https://design.jboss.org/seam/logo/final/seam_mail_85px.png",
"seamLogo.png", ContentDisposition.INLINE)).send();
new MailMessageImpl(mailConfig).from(MailTestUtil.getAddressHeader(fromName, fromAddress)).to(person).subject(subject).bodyHtml(htmlBody).createTextAlternative(true)
.importance(MessagePriority.LOW).deliveryReceipt(fromAddress).readReceipt(fromAddress)
.addAttachment("template.text.velocity", "text/plain", ContentDisposition.ATTACHMENT, Resources.asByteSource(Resources.getResource("template.text.velocity")).read())
.addAttachment(new URLAttachment(PNG_URL, "seamLogo.png", ContentDisposition.INLINE)).send();
}
finally {
stop(wiser);
}

Assert.assertEquals("Didn't receive the expected amount of messages. Expected 1 got " + wiser.getMessages().size(), 1, wiser.getMessages().size());

MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().get(0));
MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().getFirst());

Assert.assertEquals(MailTestUtil.getAddressHeader(fromName, fromAddress), mess.getHeader("From", null));
Assert.assertEquals(MailTestUtil.getAddressHeader(toName, toAddress), mess.getHeader("To", null));
Expand Down Expand Up @@ -335,16 +336,16 @@ public void testTextMailMessageLongFields() throws MessagingException, IOExcepti
try {
wiser.start();

e = new MailMessageImpl(mailConfig).from(MailTestUtil.getAddressHeader(longFromName, longFromAddress)).to(MailTestUtil.getAddressHeader(longToName, longToAddress)).cc(MailTestUtil
.getAddressHeader(longCcName, longCcAddress)).subject(subject).bodyText(textBody).importance(MessagePriority.HIGH).send();
e = new MailMessageImpl(mailConfig).from(MailTestUtil.getAddressHeader(longFromName, longFromAddress)).to(MailTestUtil.getAddressHeader(longToName, longToAddress))
.cc(MailTestUtil.getAddressHeader(longCcName, longCcAddress)).subject(subject).bodyText(textBody).importance(MessagePriority.HIGH).send();
}
finally {
stop(wiser);
}

Assert.assertEquals("Didn't receive the expected amount of messages. Expected 2 got " + wiser.getMessages().size(), 2, wiser.getMessages().size());

MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().get(0));
MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().getFirst());

Assert.assertEquals(MailTestUtil.getAddressHeader(longFromName, longFromAddress), MimeUtility.unfold(mess.getHeader("From", null)));
Assert.assertEquals(MailTestUtil.getAddressHeader(longToName, longToAddress), MimeUtility.unfold(mess.getHeader("To", null)));
Expand Down Expand Up @@ -381,8 +382,8 @@ public void testTextMailMessageSendFailed() {
try {
wiser.start();

new MailMessageImpl(mailConfig).from(MailTestUtil.getAddressHeader(fromName, fromAddress)).replyTo(replyToAddress).to(toAddress).subject(subject).bodyText(textBody).importance(
MessagePriority.HIGH).messageId(messageId).send();
new MailMessageImpl(mailConfig).from(MailTestUtil.getAddressHeader(fromName, fromAddress)).replyTo(replyToAddress).to(toAddress).subject(subject).bodyText(textBody)
.importance(MessagePriority.HIGH).messageId(messageId).send();
}
finally {
stop(wiser);
Expand Down Expand Up @@ -427,16 +428,16 @@ public void testTextMailMessageUsingPerson() throws MessagingException, IOExcept
try {
wiser.start();

e = new MailMessageImpl(mailConfig).from(MailTestUtil.getAddressHeader(fromName, fromAddress)).replyTo(replyToAddress).to(person).subject(subject).bodyText(textBody).importance(
MessagePriority.HIGH).messageId(messageId).send();
e = new MailMessageImpl(mailConfig).from(MailTestUtil.getAddressHeader(fromName, fromAddress)).replyTo(replyToAddress).to(person).subject(subject).bodyText(textBody)
.importance(MessagePriority.HIGH).messageId(messageId).send();
}
finally {
stop(wiser);
}

Assert.assertEquals("Didn't receive the expected amount of messages. Expected 1 got " + wiser.getMessages().size(), 1, wiser.getMessages().size());

MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().get(0));
MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().getFirst());

Assert.assertEquals(MailTestUtil.getAddressHeader(fromName, fromAddress), mess.getHeader("From", null));
Assert.assertEquals(MailTestUtil.getAddressHeader(replyToAddress), mess.getHeader("Reply-To", null));
Expand Down Expand Up @@ -474,16 +475,16 @@ public void testTextMailMessageUsingDefaultSession() throws MessagingException,
wiser.setHostname(mailConfig.getServerHost());
try {
wiser.start();
e = new MailMessageImpl(mailConfig).from(MailTestUtil.getAddressHeader(fromName, fromAddress)).replyTo(replyToAddress).to(person).subject(subject).bodyText(textBody).importance(
MessagePriority.HIGH).messageId(messageId).send();
e = new MailMessageImpl(mailConfig).from(MailTestUtil.getAddressHeader(fromName, fromAddress)).replyTo(replyToAddress).to(person).subject(subject).bodyText(textBody)
.importance(MessagePriority.HIGH).messageId(messageId).send();
}
finally {
stop(wiser);
}

Assert.assertEquals("Didn't receive the expected amount of messages. Expected 1 got " + wiser.getMessages().size(), 1, wiser.getMessages().size());

MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().get(0));
MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().getFirst());

Assert.assertEquals(MailTestUtil.getAddressHeader(fromName, fromAddress), mess.getHeader("From", null));
Assert.assertEquals(MailTestUtil.getAddressHeader(replyToAddress), mess.getHeader("Reply-To", null));
Expand Down Expand Up @@ -519,16 +520,17 @@ public void testTextMailWithCC() throws MessagingException {
String ccAddress = "red.hatty@jboss.org";
try {
wiser.start();
new MailMessageImpl(mailConfig).from(MailTestUtil.getAddressHeader(fromName, fromAddress)).replyTo(replyToAddress).to(MailTestUtil.getAddressHeader(toName, toAddress)).cc(MailTestUtil
.getAddressHeader(ccName, ccAddress)).subject(subject).bodyText(textBody).importance(MessagePriority.HIGH).messageId(messageId).envelopeFrom(ENVELOPE_FROM_ADDRESS).send();
new MailMessageImpl(mailConfig).from(MailTestUtil.getAddressHeader(fromName, fromAddress)).replyTo(replyToAddress).to(MailTestUtil.getAddressHeader(toName, toAddress))
.cc(MailTestUtil.getAddressHeader(ccName, ccAddress)).subject(subject).bodyText(textBody).importance(MessagePriority.HIGH).messageId(messageId).envelopeFrom(ENVELOPE_FROM_ADDRESS)
.send();
}
finally {
stop(wiser);
}

Assert.assertEquals("Didn't receive the expected amount of messages. Expected 2 got " + wiser.getMessages().size(), 2, wiser.getMessages().size());

MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().get(0));
MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().getFirst());

Assert.assertEquals(MailTestUtil.getAddressHeader(fromName, fromAddress), mess.getHeader("From", null));
Assert.assertEquals(MailTestUtil.getAddressHeader(replyToAddress), mess.getHeader("Reply-To", null));
Expand Down
17 changes: 8 additions & 9 deletions src/test/java/co/cfly/email/VelocityMailMessageTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ public void testVelocityTextMailMessage() throws IOException, jakarta.mail.Messa

Assert.assertEquals("Didn't receive the expected amount of messages. Expected 1 got " + wiser.getMessages().size(), 1, wiser.getMessages().size());

MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().get(0));
MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().getFirst());

Assert.assertEquals(MailTestUtil.getAddressHeader(fromName, fromAddress), mess.getHeader("From", null));
Assert.assertEquals(MailTestUtil.getAddressHeader(replyToAddress), mess.getHeader("Reply-To", null));
Expand Down Expand Up @@ -127,7 +127,7 @@ public void testTextMailMessageSpecialCharacters() throws MessagingException, IO

Assert.assertEquals("Didn't receive the expected amount of messages. Expected 1 got " + wiser.getMessages().size(), 1, wiser.getMessages().size());

MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().get(0));
MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().getFirst());

Assert.assertEquals("Subject has been modified", subject, MimeUtility.decodeText(MimeUtility.unfold(mess.getHeader("Subject", null))));

Expand Down Expand Up @@ -161,16 +161,15 @@ public void testVelocityHTMLMailMessage() throws MessagingException, IOException

emailMessage = new MailMessageImpl(mailConfig).from(MailTestUtil.getAddressHeader(fromName, fromAddress)).replyTo(MailTestUtil.getAddressHeader(replyToName, replyToAddress)).to(person)
.subject(subject).bodyHtml(new VelocityTemplate(Resources.asCharSource(Resources.getResource("template.html.velocity"), StandardCharsets.UTF_8).read())).put("version", version)
.put("person", person).importance(MessagePriority.HIGH)
.addAttachment(new URLAttachment("https://design.jboss.org/seam/logo/final/seam_mail_85px.png", "seamLogo.png", ContentDisposition.INLINE)).send();
.put("person", person).importance(MessagePriority.HIGH).addAttachment(new URLAttachment(MailMessageTest.PNG_URL, "seamLogo.png", ContentDisposition.INLINE)).send();
}
finally {
stop(wiser);
}

Assert.assertEquals("Didn't receive the expected amount of messages. Expected 1 got " + wiser.getMessages().size(), 1, wiser.getMessages().size());

MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().get(0));
MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().getFirst());

Assert.assertEquals(MailTestUtil.getAddressHeader(fromName, fromAddress), mess.getHeader("From", null));
Assert.assertEquals(MailTestUtil.getAddressHeader(replyToName, replyToAddress), mess.getHeader("Reply-To", null));
Expand Down Expand Up @@ -221,15 +220,15 @@ public void testVelocityHTMLTextAltMailMessage() throws MessagingException, IOEx
new VelocityTemplate(Resources.asCharSource(Resources.getResource("template.text.velocity"), StandardCharsets.UTF_8).read())).importance(MessagePriority.LOW)
.deliveryReceipt(fromAddress).readReceipt(fromAddress)
.addAttachment("template.html.velocity", "text/html", ContentDisposition.ATTACHMENT, Resources.asByteSource(Resources.getResource("template.html.velocity")).read())
.addAttachment(new URLAttachment("https://design.jboss.org/seam/logo/final/seam_mail_85px.png", "seamLogo.png", ContentDisposition.INLINE)).send();
.addAttachment(new URLAttachment(MailMessageTest.PNG_URL, "seamLogo.png", ContentDisposition.INLINE)).send();
}
finally {
stop(wiser);
}

Assert.assertEquals("Didn't receive the expected amount of messages. Expected 1 got " + wiser.getMessages().size(), 1, wiser.getMessages().size());

MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().get(0));
MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().getFirst());

Assert.assertEquals(MailTestUtil.getAddressHeader(fromName, fromAddress), mess.getHeader("From", null));
Assert.assertEquals(MailTestUtil.getAddressHeader(toName, toAddress), mess.getHeader("To", null));
Expand Down Expand Up @@ -286,15 +285,15 @@ public void testSMTPSessionAuthentication() throws MessagingException, IOExcepti
new VelocityTemplate(Resources.asCharSource(Resources.getResource("template.text.velocity"), StandardCharsets.UTF_8).read())).importance(MessagePriority.LOW)
.deliveryReceipt(fromAddress).readReceipt(fromAddress)
.addAttachment("template.html.velocity", "text/html", ContentDisposition.ATTACHMENT, Resources.asByteSource(Resources.getResource("template.html.velocity")).read())
.addAttachment(new URLAttachment("https://design.jboss.org/seam/logo/final/seam_mail_85px.png", "seamLogo.png", ContentDisposition.INLINE)).send();
.addAttachment(new URLAttachment(MailMessageTest.PNG_URL, "seamLogo.png", ContentDisposition.INLINE)).send();
}
finally {
stop(wiser);
}

Assert.assertEquals("Didn't receive the expected amount of messages. Expected 1 got " + wiser.getMessages().size(), 1, wiser.getMessages().size());

MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().get(0));
MimeMessage mess = MailUtilityTest.fromWiser(wiser.getMessages().getFirst());

Assert.assertEquals("Subject has been modified", subject, MimeUtility.unfold(mess.getHeader("Subject", null)));
EmailMessage convertedMessage = MessageConverter.convert(mess);
Expand Down