Skip to content

Commit 244397e

Browse files
committed
Added junit live email test for calendar attachment, fixed subsequent bug
1 parent f9a9ecf commit 244397e

File tree

12 files changed

+42
-32
lines changed

12 files changed

+42
-32
lines changed

modules/simple-java-mail/src/main/java/org/simplejavamail/converter/internal/mimemessage/MimeMessageParseException.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class MimeMessageParseException extends MailException {
1717
static final String ERROR_PARSING_ADDRESS = "Error parsing [%s] address [%s]";
1818
static final String ERROR_PARSING_DISPOSITION = "Error parsing MimeMessage disposition";
1919
static final String ERROR_PARSING_CONTENT = "Error parsing MimeMessage Content";
20+
static final String ERROR_PARSING_CALENDAR_CONTENT = "Error parsing MimeMessage Calendar content";
2021
static final String ERROR_PARSING_MULTIPART_COUNT = "Error parsing MimeMessage multipart count";
2122
static final String ERROR_GETTING_BODYPART_AT_INDEX = "Error getting bodypart at index %s";
2223
static final String ERROR_GETTING_CONTENT_ID = "Error getting content ID";

modules/simple-java-mail/src/main/java/org/simplejavamail/converter/internal/mimemessage/MimeMessageParser.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import javax.mail.internet.MimeUtility;
2727
import javax.mail.internet.ParseException;
2828
import javax.mail.util.ByteArrayDataSource;
29+
import javax.mail.util.SharedByteArrayInputStream;
2930
import java.io.IOException;
3031
import java.io.InputStream;
3132
import java.io.UnsupportedEncodingException;
@@ -42,6 +43,7 @@
4243
import java.util.regex.Pattern;
4344

4445
import static java.lang.String.format;
46+
import static java.nio.charset.StandardCharsets.UTF_8;
4547
import static org.simplejavamail.internal.util.MiscUtil.extractCID;
4648
import static org.simplejavamail.internal.util.MiscUtil.valueNullOrEmpty;
4749
import static org.simplejavamail.internal.util.SimpleOptional.ofNullable;
@@ -140,7 +142,12 @@ private static void parseMimePartTree(@NotNull final MimePart currentPart, @NotN
140142
//noinspection RedundantCast
141143
parsedComponents.htmlContent.append((Object) parseContent(currentPart));
142144
} else if (isMimeType(currentPart, "text/calendar") && parsedComponents.calendarContent == null && !Part.ATTACHMENT.equalsIgnoreCase(disposition)) {
143-
parsedComponents.calendarContent = parseContent(currentPart);
145+
final SharedByteArrayInputStream calendarContent = parseContent(currentPart);
146+
try {
147+
parsedComponents.calendarContent = MiscUtil.readInputStreamToString(calendarContent, UTF_8);
148+
} catch (IOException e) {
149+
throw new MimeMessageParseException(MimeMessageParseException.ERROR_PARSING_CALENDAR_CONTENT, e);
150+
}
144151
parsedComponents.calendarMethod = parseCalendarMethod(currentPart);
145152
} else if (isMimeType(currentPart, "multipart/*")) {
146153
final Multipart mp = parseContent(currentPart);

modules/simple-java-mail/src/test/java/org/simplejavamail/api/email/EmailTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,8 +205,8 @@ public void testEqualsEmail_EqualityFieldByField() throws IOException {
205205
assertEmailEqual(b().withCalendarText(ADD, "moo").buildEmail(), b().withCalendarText(REPLY, "moo").buildEmail(), false);
206206
assertEmailEqual(b().withCalendarText(ADD, "moo").buildEmail(), b().buildEmail(), false);
207207
// forWardEmail
208-
final Email email = EmailHelper.createDummyEmailBuilder(true, false, true, true, false).buildEmail();
209-
final Email emailOther = EmailHelper.createDummyEmailBuilder(false, true, false, false, false).buildEmail();
208+
final Email email = EmailHelper.createDummyEmailBuilder(true, false, true, true, false, false).buildEmail();
209+
final Email emailOther = EmailHelper.createDummyEmailBuilder(false, true, false, false, false, false).buildEmail();
210210
assertEmailEqual(f(email).buildEmail(), f(email).buildEmail(), true);
211211
assertEmailEqual(f(email).buildEmail(), b().buildEmail(), false);
212212
assertEmailEqual(f(email).buildEmail(), f(emailOther).buildEmail(), false);

modules/simple-java-mail/src/test/java/org/simplejavamail/converter/internal/mimemessage/ImmutableDelegatingSMTPMessageTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public void testSMTPMessageMethodsShouldBeDelegated() {
6464

6565
@Test
6666
public void testSMTPMessageMethodsShouldReturnFalseInAbsenceOfAProperDelegate() throws IOException {
67-
Email email = createDummyEmailBuilder("<id>", true, false, true, true, true, false).buildEmail();
67+
Email email = createDummyEmailBuilder("<id>", true, false, true, true, true, false, false).buildEmail();
6868
ImmutableDelegatingSMTPMessage subject = new ImmutableDelegatingSMTPMessage(emailToMimeMessage(email), "[email protected]");
6969

7070
assertThat(subject.getAllow8bitMIME()).isFalse();
@@ -77,7 +77,7 @@ public void testSMTPMessageMethodsShouldReturnFalseInAbsenceOfAProperDelegate()
7777

7878
@Test
7979
public void testGettersResultInEqualValues() throws MessagingException, IOException {
80-
Email email = createDummyEmailBuilder("<id>", true, false, true, true, true, false).clearBounceTo().buildEmail();
80+
Email email = createDummyEmailBuilder("<id>", true, false, true, true, true, false, false).clearBounceTo().buildEmail();
8181
MimeMessage message = emailToMimeMessage(email);
8282
message.setSender(new InternetAddress("[email protected]", "abcom"));
8383

@@ -174,7 +174,7 @@ public void testIrrelevantGettersAndAllowedMutatorsAreDelegatedProperly() throws
174174

175175
@Test
176176
public void testImmutability() throws IOException {
177-
Email email = createDummyEmailBuilder("<id>", true, false, true, true, true, false).buildEmail();
177+
Email email = createDummyEmailBuilder("<id>", true, false, true, true, true, false, false).buildEmail();
178178
final ImmutableDelegatingSMTPMessage subject = new ImmutableDelegatingSMTPMessage(emailToMimeMessage(email), "[email protected]");
179179

180180
assertThatThrownBy(new ThrowingCallable() { public void call() { subject.setMessageNumber(5); }}).hasMessageContaining("protected in the delegate");

modules/simple-java-mail/src/test/java/org/simplejavamail/converter/internal/mimemessage/MimeMessageHelperTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ private ByteArrayDataSource getDataSource(@Nullable String name)
115115
@Test
116116
public void testSignMessageWithDKIM_ShouldFailSpecificallyBecauseItWillTryToSign()
117117
throws IOException, ClassNotFoundException {
118-
final Email email = EmailHelper.createDummyEmailBuilder(true, false, false, true, false)
118+
final Email email = EmailHelper.createDummyEmailBuilder(true, false, false, true, false, false)
119119
.signWithDomainKey("dummykey", "moo.com", "selector")
120120
.buildEmail();
121121

@@ -132,7 +132,7 @@ public void call() {
132132
@Test
133133
public void testSignMessageWithDKIM_ShouldFailSpecificallyBecauseDKIMLibraryIsMissing()
134134
throws IOException, ClassNotFoundException {
135-
final Email email = EmailHelper.createDummyEmailBuilder(true, false, false, true, false)
135+
final Email email = EmailHelper.createDummyEmailBuilder(true, false, false, true, false, false)
136136
.signWithDomainKey("dummykey", "moo.com", "selector")
137137
.buildEmail();
138138

@@ -165,7 +165,7 @@ public void call() {
165165
@Test
166166
public void filenameWithSpaceEncoding() throws IOException, MessagingException {
167167
final String fileName = "file name.txt";
168-
final Email email = EmailHelper.createDummyEmailBuilder(true, true, false, false, false)
168+
final Email email = EmailHelper.createDummyEmailBuilder(true, true, false, false, false, false)
169169
.clearAttachments().withAttachment(fileName, "abc".getBytes(), "text/plain").buildEmail();
170170
final MimeMessage mimeMessage = EmailConverter.emailToMimeMessage(email);
171171
final BodyPart bodyPart = ((MimeMultipart) mimeMessage.getContent()).getBodyPart(1);

modules/simple-java-mail/src/test/java/org/simplejavamail/converter/internal/mimemessage/MimeMessageParserTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public void setup() {
4949
@Test
5050
public void testBasicParsing()
5151
throws IOException {
52-
Email originalEmail = EmailHelper.createDummyEmailBuilder(true, true, false, true, false).buildEmail();
52+
Email originalEmail = EmailHelper.createDummyEmailBuilder(true, true, false, true, false, false).buildEmail();
5353

5454
MimeMessage mimeMessage = EmailConverter.emailToMimeMessage(originalEmail);
5555
ParsedMimeMessageComponents mimeMessageParts = MimeMessageParser.parseMimeMessage(mimeMessage);

modules/simple-java-mail/src/test/java/org/simplejavamail/email/internal/EmailPopulatingBuilderImpl1Test.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1291,7 +1291,7 @@ private void verifyEmbeddedImage(final Email email, String expectedContainsWithC
12911291

12921292
@Test
12931293
public void testClearingValues() throws IOException {
1294-
EmailPopulatingBuilder emailBuilder = EmailHelper.createDummyEmailBuilder("<id>", true, false, true, true, true, false)
1294+
EmailPopulatingBuilder emailBuilder = EmailHelper.createDummyEmailBuilder("<id>", true, false, true, true, true, false, false)
12951295
.notMergingSingleSMIMESignedAttachment()
12961296
.signWithDomainKey("dkim_key", "dkim_domain", "dkim_selector")
12971297
.signWithSmime(new ByteArrayInputStream(new byte[]{}), "storePassword", "keyAlias", "keyPassword")
@@ -1367,7 +1367,7 @@ public void testClearingValues() throws IOException {
13671367

13681368
@Test
13691369
public void testClearingValuesAlternativeFlows() throws IOException {
1370-
EmailPopulatingBuilder emailBuilder = EmailHelper.createDummyEmailBuilder("<id>", true, false, true, true, true, false)
1370+
EmailPopulatingBuilder emailBuilder = EmailHelper.createDummyEmailBuilder("<id>", true, false, true, true, true, false, false)
13711371
.signWithDomainKey(new ByteArrayInputStream(new byte[]{}), "dkim_domain", "dkim_selector");
13721372

13731373
Email emailNormal = emailBuilder.buildEmail();

modules/simple-java-mail/src/test/java/org/simplejavamail/email/internal/EmailPopulatingBuilderUsingDefaultsFromPropertyFileTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public void testBuilderSimpleBuildWithStandardEmail()
4747
.withEmbeddedImage("thumbsup", parseBase64Binary(base64String), "image/png")
4848
.buildEmail();
4949

50-
assertThat(EmailHelper.createDummyEmailBuilder(true, true, false, false, false).buildEmail()).isEqualTo(email);
50+
assertThat(EmailHelper.createDummyEmailBuilder(true, true, false, false, false, false).buildEmail()).isEqualTo(email);
5151
}
5252

5353
@SuppressWarnings("SameParameterValue")
@@ -82,6 +82,6 @@ public void testBuilderSimpleBuildWithStandardEmail_PlusOptionals()
8282
.withHeader("anotherDummyHeader", "anotherDummyHeaderValue")
8383
.buildEmail();
8484

85-
assertThat(EmailHelper.createDummyEmailBuilder(true, false, true, false, false).buildEmail()).isEqualTo(email);
85+
assertThat(EmailHelper.createDummyEmailBuilder(true, false, true, false, false, false).buildEmail()).isEqualTo(email);
8686
}
8787
}

modules/simple-java-mail/src/test/java/org/simplejavamail/mailer/MailerLiveTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,37 +67,37 @@ public void setup() {
6767
@Test
6868
public void createMailSession_EmptySubjectAndBody()
6969
throws IOException, MessagingException, ExecutionException, InterruptedException {
70-
assertSendingEmail(EmailHelper.createDummyEmailBuilder(true, true, false, true, false), true, false, false, false, false);
70+
assertSendingEmail(EmailHelper.createDummyEmailBuilder(true, true, false, true, false, false), true, false, false, false, false);
7171
}
7272

7373
@Test
7474
public void createMailSession_StandardDummyMailBasicFields()
7575
throws IOException, MessagingException, ExecutionException, InterruptedException {
76-
assertSendingEmail(EmailHelper.createDummyEmailBuilder(true, true, false, true, false), true, false, false, false, false);
76+
assertSendingEmail(EmailHelper.createDummyEmailBuilder(true, true, false, true, false, false), true, false, false, false, false);
7777
}
7878

7979
@Test
8080
public void createMailSession_StandardDummyMailBasicFields_Async()
8181
throws IOException, MessagingException, ExecutionException, InterruptedException {
82-
assertSendingEmail(EmailHelper.createDummyEmailBuilder(true, true, false, true, false), true, false, true, false, false);
82+
assertSendingEmail(EmailHelper.createDummyEmailBuilder(true, true, false, true, false, false), true, false, true, false, false);
8383
}
8484

8585
@Test
8686
public void createMailSession_StandardDummyMail_AllFields()
8787
throws IOException, MessagingException, ExecutionException, InterruptedException {
88-
assertSendingEmail(EmailHelper.createDummyEmailBuilder(true, false, false, true, true), true, false, false, false, true);
88+
assertSendingEmail(EmailHelper.createDummyEmailBuilder(true, false, false, true, true, true), true, false, false, false, true);
8989
}
9090

9191
@Test
9292
public void createMailSession_StandardDummyMail_IncludingCustomHeaders()
9393
throws IOException, MessagingException, ExecutionException, InterruptedException {
94-
assertSendingEmail(EmailHelper.createDummyEmailBuilder(true, false, true, true, false), true, false, false, false, false);
94+
assertSendingEmail(EmailHelper.createDummyEmailBuilder(true, false, true, true, false, false), true, false, false, false, false);
9595
}
9696

9797
@Test
9898
public void createMailSession_StandardDummyMailWithIdAndSendDate()
9999
throws IOException, MessagingException, ExecutionException, InterruptedException {
100-
assertSendingEmail(EmailHelper.createDummyEmailBuilder("<123@456>", true, false, false, true, true, false), true, false, false, true, false);
100+
assertSendingEmail(EmailHelper.createDummyEmailBuilder("<123@456>", true, false, false, true, true, false, false), true, false, false, true, false);
101101
}
102102

103103
@Test

modules/simple-java-mail/src/test/java/org/simplejavamail/mailer/MailerSOCKSLiveTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public void testSOCKSPassthrough_Anonymous() throws Exception {
3737
.withProxy("localhost", PROXY_SERVER_PORT)
3838
.buildMailer();
3939

40-
assertSendingEmail(mailer, EmailHelper.createDummyEmailBuilder(true, true, false, false, false), false);
40+
assertSendingEmail(mailer, EmailHelper.createDummyEmailBuilder(true, true, false, false, false, false), false);
4141
}
4242

4343
@Test
@@ -49,7 +49,7 @@ public void testSOCKSPassthrough_Authenticating() throws Exception {
4949
.withProxy("localhost", PROXY_SERVER_PORT, "username", "password")
5050
.buildMailer();
5151

52-
assertSendingEmail(mailer, EmailHelper.createDummyEmailBuilder(true, true, false, false, false), false);
52+
assertSendingEmail(mailer, EmailHelper.createDummyEmailBuilder(true, true, false, false, false, false), false);
5353
}
5454

5555
private void assertSendingEmail(final Mailer mailer, final EmailPopulatingBuilder originalEmailPopulatingBuilder, boolean async) throws Exception {

0 commit comments

Comments
 (0)