This is an automated email from the ASF dual-hosted git repository.

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 85adadcaa57e1e6a53f844491b9b83d3f079291e
Author: Tran Tien Duc <[email protected]>
AuthorDate: Mon Feb 10 14:38:49 2020 +0700

    JAMES-3034 Disable test case has been passing because one of 
SMTPMessageSender fault
    
    Before that, the message is altered by SMTPMessageSender, so Unicode
    characters are altered in '?', it leads to 7bit transfer-encoding.
    So the RemoteDelivery doesn't break the DKIM signature
---
 .../mailets/RemoteDeliveryDKIMIntegrationTest.java | 27 +++++++++++-----------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git 
a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryDKIMIntegrationTest.java
 
b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryDKIMIntegrationTest.java
index 02faba5..c2c5dbb 100644
--- 
a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryDKIMIntegrationTest.java
+++ 
b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RemoteDeliveryDKIMIntegrationTest.java
@@ -25,6 +25,7 @@ import static 
org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
 import static org.apache.james.mailets.configuration.Constants.PASSWORD;
 import static 
org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
 import java.io.File;
 import java.util.Optional;
@@ -37,6 +38,7 @@ import org.apache.james.core.MailAddress;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.dnsservice.api.InMemoryDNSService;
 import org.apache.james.jdkim.api.PublicKeyRecordRetriever;
+import org.apache.james.jdkim.exceptions.PermFailException;
 import org.apache.james.jdkim.mailets.ConvertTo7Bit;
 import org.apache.james.jdkim.mailets.DKIMSign;
 import org.apache.james.jdkim.mailets.DKIMVerifier;
@@ -57,9 +59,7 @@ import org.apache.james.utils.SMTPMessageSenderExtension;
 import org.apache.mailet.base.test.FakeMail;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Nested;
-import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 import org.junit.jupiter.api.io.TempDir;
 import org.junit.jupiter.params.ParameterizedTest;
@@ -128,11 +128,13 @@ class RemoteDeliveryDKIMIntegrationTest {
 
     @Nested
     class WhenEnable8BitMime {
-        @Disabled("JAMES-3016 assertion failed:" +
-            "org.apache.james.jdkim.exceptions.PermFailException: Computed 
bodyhash is different from the expected one")
-        @Test
-        void 
remoteDeliveryShouldNotBreakDKIMSignWhen7BitTextMessage(SMTPMessageSender 
messageSender, DockerMockSmtp dockerMockSmtp) throws Exception {
-
+        @CsvSource({
+            "a-mail-with-7bit-encoding, eml/message-text-only-7bit.eml",
+            "a-mail-with-8bit-encoding, eml/message-text-only-8bit.eml",
+        })
+        @ParameterizedTest
+        void remoteDeliveryCouldBreakDKIMSignWhenTextMessage(String mailName, 
String emlPath,
+                                                             SMTPMessageSender 
messageSender, DockerMockSmtp dockerMockSmtp) throws Exception {
             InMemoryDNSService inMemoryDNSService = new InMemoryDNSService()
                 .registerMxRecord(JAMES_ANOTHER_DOMAIN, 
dockerMockSmtp.getIPAddress());
 
@@ -150,30 +152,29 @@ class RemoteDeliveryDKIMIntegrationTest {
             dataProbe.addUser(FROM, PASSWORD);
 
             FakeMail mail = FakeMail.builder()
-                .name("a-mail-with-7bit-encoding")
+                .name(mailName)
                 .sender(new MailAddress(FROM))
                 .recipient(new MailAddress(RECIPIENT))
                 .mimeMessage(MimeMessageUtil.mimeMessageFromStream(
-                    
ClassLoader.getSystemResourceAsStream("eml/message-text-only-7bit.eml")))
+                    ClassLoader.getSystemResourceAsStream(emlPath)))
                 .build();
             messageSender.connect(LOCALHOST_IP, 
jamesServer.getProbe(SmtpGuiceProbe.class).getSmtpPort())
                 .sendMessage(mail);
 
             MimeMessage sendMessage = 
toMimeMessage(getFirstRecivedMail(dockerMockSmtp));
 
-            assertThat(dkimVerifier.verifyUsingCRLF(sendMessage))
-                .isNotEmpty();
+            assertThatThrownBy(() -> dkimVerifier.verifyUsingCRLF(sendMessage))
+                .isInstanceOf(PermFailException.class)
+                .hasMessageContaining("Computed bodyhash is different from the 
expected one");
         }
 
         @CsvSource({
             "a-mail-with-7bit-base64-encoding, eml/message-multipart-7bit.eml",
-            "a-mail-with-8bit-encoding, eml/message-text-only-8bit.eml",
             "a-mail-with-8bit-base64-encoding, eml/message-multipart-8bit.eml"
         })
         @ParameterizedTest
         void remoteDeliveryShouldNotBreakDKIMSign(String mailName, String 
emlPath,
                                                   SMTPMessageSender 
messageSender, DockerMockSmtp dockerMockSmtp) throws Exception {
-
             InMemoryDNSService inMemoryDNSService = new InMemoryDNSService()
                 .registerMxRecord(JAMES_ANOTHER_DOMAIN, 
dockerMockSmtp.getIPAddress());
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to