Repository: james-project
Updated Branches:
  refs/heads/master 344251c5f -> 213965f40


JAMES-2363 Demonstrate that memory implementation behaves incorrectly regarding 
mimie message ids


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/f03eece3
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/f03eece3
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/f03eece3

Branch: refs/heads/master
Commit: f03eece3cb77eda980e6b64508606496743d1e6e
Parents: 5240e58
Author: Raphael Ouazana <[email protected]>
Authored: Thu Mar 22 18:11:44 2018 +0100
Committer: benwa <[email protected]>
Committed: Thu Mar 29 11:56:10 2018 +0700

----------------------------------------------------------------------
 .../integration/SetMessagesMethodTest.java      | 53 ++++++++++++++++++++
 .../memory/MemorySetMessagesMethodTest.java     |  9 ++++
 2 files changed, 62 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/f03eece3/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
 
b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
index 0575403..b3c52b5 100644
--- 
a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
+++ 
b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
@@ -5793,4 +5793,57 @@ public abstract class SetMessagesMethodTest {
             .body(ARGUMENTS + ".list[0].isDraft", equalTo(false))
             .body(ARGUMENTS + ".list[0].isForwarded", equalTo(true));
     }
+
+    @Test
+    public void mimeMessageIdShouldBePreservedWhenSending() {
+        String messageCreationId = "creationId1337";
+        String requestBody = "[" +
+            "  [" +
+            "    \"setMessages\"," +
+            "    {" +
+            "      \"create\": { \"" + messageCreationId  + "\" : {" +
+            "        \"from\": { \"name\": \"Bob\", \"email\": \"" + BOB + 
"\"}," +
+            "        \"to\": [{ \"name\": \"Me\", \"email\": \"" + USERNAME + 
"\"}]," +
+            "        \"subject\": \"Hi!\"," +
+            "        \"textBody\": \"How are you?\"," +
+            "        \"mailboxIds\": [\"" + getOutboxId(bobAccessToken) + 
"\"]" +
+            "      }}" +
+            "    }," +
+            "    \"#0\"" +
+            "  ]" +
+            "]";
+
+        String creationMimeMessageId = given()
+            .header("Authorization", bobAccessToken.serialize())
+            .body(requestBody)
+        .when()
+            .post("/jmap")
+        .then()
+            .extract()
+            .body()
+            .path(ARGUMENTS + ".created." + messageCreationId + 
".headers['Message-ID']");
+
+        calmlyAwait.atMost(30, TimeUnit.SECONDS).until(() -> 
isAnyMessageFoundInInbox(accessToken));
+
+        String jmapMessageId = with()
+            .header("Authorization", accessToken.serialize())
+            .body("[[\"getMessageList\", {}, \"#0\"]]")
+        .when()
+            .post("/jmap")
+        .then()
+            .extract()
+            .path(ARGUMENTS + ".messageIds[0]");
+
+        String receivedMimeMessageId = with()
+            .header("Authorization", accessToken.serialize())
+            .body("[[\"getMessages\", {\"ids\": [\"" + jmapMessageId + "\"]}, 
\"#0\"]]")
+        .when()
+            .post("/jmap")
+        .then()
+            .extract()
+            .path(ARGUMENTS + ".list[0].headers['Message-ID']");
+
+        assertThat(receivedMimeMessageId).isEqualTo(creationMimeMessageId);
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f03eece3/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySetMessagesMethodTest.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySetMessagesMethodTest.java
 
b/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySetMessagesMethodTest.java
index bb337e8..61c14b7 100644
--- 
a/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySetMessagesMethodTest.java
+++ 
b/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySetMessagesMethodTest.java
@@ -26,7 +26,9 @@ import org.apache.james.MemoryJmapTestRule;
 import org.apache.james.jmap.methods.integration.SetMessagesMethodTest;
 import org.apache.james.mailbox.inmemory.InMemoryMessageId;
 import org.apache.james.mailbox.model.MessageId;
+import org.junit.Ignore;
 import org.junit.Rule;
+import org.junit.Test;
 
 public class MemorySetMessagesMethodTest extends SetMessagesMethodTest {
 
@@ -48,4 +50,11 @@ public class MemorySetMessagesMethodTest extends 
SetMessagesMethodTest {
     protected MessageId randomMessageId() {
         return new 
InMemoryMessageId.Factory().fromString(String.valueOf(random.nextInt(100000) + 
100));
     }
+
+    @Ignore("JAMES-2363 Bug: memory implementation should preserver mime 
message ids")
+    @Override
+    @Test
+    public void mimeMessageIdShouldBePreservedWhenSending() {
+    }
+
 }


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

Reply via email to