|
1 | 1 | package org.simplejavamail.converter;
|
2 | 2 |
|
3 | 3 | import jakarta.mail.util.ByteArrayDataSource;
|
| 4 | +import org.assertj.core.api.Condition; |
4 | 5 | import org.jetbrains.annotations.NotNull;
|
5 | 6 | import org.junit.Test;
|
6 | 7 | import org.simplejavamail.api.email.AttachmentResource;
|
7 | 8 | import org.simplejavamail.api.email.CalendarMethod;
|
8 | 9 | import org.simplejavamail.api.email.ContentTransferEncoding;
|
9 | 10 | import org.simplejavamail.api.email.Email;
|
10 | 11 | import org.simplejavamail.api.email.EmailAssert;
|
| 12 | +import org.simplejavamail.api.email.OriginalSmimeDetails; |
11 | 13 | import org.simplejavamail.api.email.Recipient;
|
12 | 14 | import testutil.ConfigLoaderTestHelper;
|
13 | 15 | import testutil.EmailHelper;
|
@@ -335,6 +337,36 @@ private static String contentIDExtractor(String eml, String filename) {
|
335 | 337 | return matcher.group("uuid");
|
336 | 338 | }
|
337 | 339 |
|
| 340 | + @Test |
| 341 | + public void testGithub486_InvalidSignedOutlookMessage() { |
| 342 | + Email emailMime = EmailConverter.emlToEmail(new File(RESOURCE_TEST_MESSAGES + "/#486 TestValidSignedMimeMessage.eml")); |
| 343 | + Email emailOutlook = EmailConverter.outlookMsgToEmail(new File(RESOURCE_TEST_MESSAGES + "/#486 TestInvalidSignedOutlookMessage.msg")); |
| 344 | + |
| 345 | + assertThat(emailMime.getEmbeddedImages()).areExactly(1, new Condition<>(at -> at.getName().contains(".jpg"), null)); |
| 346 | + assertThat(emailMime.getAttachments()).areExactly(1, new Condition<>(at -> at.getName().contains(".jpg"), null)); |
| 347 | + |
| 348 | + assertThat(emailMime.getOriginalSmimeDetails().getSmimeMode()).isEqualTo(OriginalSmimeDetails.SmimeMode.SIGNED); |
| 349 | + assertThat(emailOutlook.getOriginalSmimeDetails().getSmimeMode()).isEqualTo(OriginalSmimeDetails.SmimeMode.SIGNED); |
| 350 | + assertThat(emailMime.getFromRecipient()).isEqualTo(emailOutlook.getFromRecipient()); |
| 351 | + assertThat(emailMime.getId()).isEqualTo(emailOutlook.getId()); |
| 352 | + assertThat(emailMime.getSentDate()).isEqualTo(emailOutlook.getSentDate()); |
| 353 | + assertThat(emailMime.getBounceToRecipient()).isEqualTo(emailOutlook.getBounceToRecipient()); |
| 354 | + assertThat(emailMime.getPlainText()).isEqualTo(emailOutlook.getPlainText()); |
| 355 | + assertThat(emailMime.getCalendarText()).isEqualTo(emailOutlook.getCalendarText()); |
| 356 | + assertThat(emailMime.getCalendarMethod()).isEqualTo(emailOutlook.getCalendarMethod()); |
| 357 | + assertThat(emailMime.getHTMLText()).isEqualTo(emailOutlook.getHTMLText()); |
| 358 | + assertThat(emailMime.getSubject()).isEqualTo(emailOutlook.getSubject()); |
| 359 | + assertThat(emailMime.getRecipients()).containsExactlyElementsOf(emailOutlook.getRecipients()); |
| 360 | + assertThat(emailMime.getOverrideReceivers()).containsExactlyElementsOf(emailOutlook.getOverrideReceivers()); |
| 361 | + assertThat(emailMime.getEmbeddedImages()).containsExactlyElementsOf(emailOutlook.getEmbeddedImages()); |
| 362 | + assertThat(emailMime.getUseDispositionNotificationTo()).isEqualTo(emailOutlook.getUseDispositionNotificationTo()); |
| 363 | + assertThat(emailMime.getUseReturnReceiptTo()).isEqualTo(emailOutlook.getUseReturnReceiptTo()); |
| 364 | + assertThat(emailMime.getDispositionNotificationTo()).isEqualTo(emailOutlook.getDispositionNotificationTo()); |
| 365 | + assertThat(emailMime.getPkcs12ConfigForSmimeSigning()).isEqualTo(emailOutlook.getPkcs12ConfigForSmimeSigning()); |
| 366 | + assertThat(emailMime.getX509CertificateForSmimeEncryption()).isEqualTo(emailOutlook.getX509CertificateForSmimeEncryption()); |
| 367 | + assertThat(emailMime.getReturnReceiptTo()).isEqualTo(emailOutlook.getReturnReceiptTo()); |
| 368 | + } |
| 369 | + |
338 | 370 | @NotNull
|
339 | 371 | private List<AttachmentResource> asList(AttachmentResource attachment) {
|
340 | 372 | List<AttachmentResource> collectionAttachment = new ArrayList<>();
|
|
0 commit comments