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

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

commit 0ca0becbcc86be8b144968647fc9e85dfcfa06d3
Author: Benoit Tellier <btell...@linagora.com>
AuthorDate: Wed Mar 6 11:10:01 2019 +0700

    JAMES-2665 DeletedMessageVault integration tests and sharing
---
 .../CassandraDeletedMessageVaultTest.java          |  2 +-
 .../integration/DeletedMessagesVaultTest.java      | 84 ++++++++++++++++++++--
 .../memory/MemoryDeletedMessagesVaultTest.java     |  2 +-
 .../rabbitmq/RabbitMQDeletedMessagesVaultTest.java |  2 +-
 4 files changed, 82 insertions(+), 8 deletions(-)

diff --git 
a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraDeletedMessageVaultTest.java
 
b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraDeletedMessageVaultTest.java
index 9381f3c..8c10c51 100644
--- 
a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraDeletedMessageVaultTest.java
+++ 
b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraDeletedMessageVaultTest.java
@@ -61,7 +61,7 @@ public class CassandraDeletedMessageVaultTest extends 
DeletedMessagesVaultTest {
     @Category(BasicFeature.class)
     @Override
     @Test
-    public void postShouldRestoreImapDeletedMailbox() {
+    public void vaultEndpointShouldRestoreImapDeletedMailbox() {
 
     }
 }
diff --git 
a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/DeletedMessagesVaultTest.java
 
b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/DeletedMessagesVaultTest.java
index e986f8c..bfbba3f 100644
--- 
a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/DeletedMessagesVaultTest.java
+++ 
b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/DeletedMessagesVaultTest.java
@@ -60,6 +60,7 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.junit.jupiter.api.Disabled;
+import org.testcontainers.shaded.com.google.common.collect.ImmutableList;
 
 import com.google.common.base.Strings;
 
@@ -122,7 +123,7 @@ public abstract class DeletedMessagesVaultTest {
 
     @Category(BasicFeature.class)
     @Test
-    public void postShouldRestoreJmapDeletedEmail() {
+    public void vaultEndpointShouldRestoreJmapDeletedEmail() {
         bartSendMessageToHomer();
         WAIT_TWO_MINUTES.until(() -> 
listMessageIdsForAccount(homerAccessToken).size() == 1);
 
@@ -146,7 +147,7 @@ public abstract class DeletedMessagesVaultTest {
 
     @Category(BasicFeature.class)
     @Test
-    public void postShouldRestoreImapDeletedEmail() throws Exception {
+    public void vaultEndpointShouldRestoreImapDeletedEmail() throws Exception {
         bartSendMessageToHomer();
         WAIT_TWO_MINUTES.until(() -> 
listMessageIdsForAccount(homerAccessToken).size() == 1);
 
@@ -176,7 +177,7 @@ public abstract class DeletedMessagesVaultTest {
     @Disabled("MAILBOX-379 PreDeletionHook are not yet triggered upon mailbox 
deletion")
     @Category(BasicFeature.class)
     @Test
-    public void postShouldRestoreImapDeletedMailbox() throws Exception {
+    public void vaultEndpointShouldRestoreImapDeletedMailbox() throws 
Exception {
         bartSendMessageToHomer();
         WAIT_TWO_MINUTES.until(() -> 
listMessageIdsForAccount(homerAccessToken).size() == 1);
 
@@ -276,7 +277,7 @@ public abstract class DeletedMessagesVaultTest {
     }
 
     @Test
-    public void postShouldNotRestoreItemsWhenTheVaultIsEmpty() throws 
Exception {
+    public void vaultEndpointShouldNotRestoreItemsWhenTheVaultIsEmpty() {
         bartSendMessageToHomer();
         WAIT_TWO_MINUTES.until(() -> 
listMessageIdsForAccount(homerAccessToken).size() == 1);
 
@@ -288,6 +289,75 @@ public abstract class DeletedMessagesVaultTest {
             .isEqualTo(1);
     }
 
+    @Test
+    public void vaultEndpointShouldNotRestoreMessageForSharee() {
+        bartSendMessageToHomer();
+        WAIT_TWO_MINUTES.until(() -> 
listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.until(() -> 
listMessageIdsForAccount(bartAccessToken).size() == 1);
+
+        String messageId = listMessageIdsForAccount(homerAccessToken).get(0);
+        homerMovesTheMailInAnotherMailbox(messageId);
+
+        homerSharesHisMailboxWithBart();
+
+        bartDeletesMessages(ImmutableList.of(messageId));
+        WAIT_TWO_MINUTES.until(() -> 
listMessageIdsForAccount(homerAccessToken).size() == 0);
+
+        restoreMessagesFor(BART);
+
+        Thread.sleep(Duration.FIVE_SECONDS.getValueInMS());
+
+        // No additional had been restored for Bart as the vault is empty
+        assertThat(listMessageIdsForAccount(bartAccessToken).size())
+            .isEqualTo(1);
+    }
+
+    @Test
+    public void vaultEndpointShouldRestoreMessageForSharer() {
+        bartSendMessageToHomer();
+        WAIT_TWO_MINUTES.until(() -> 
listMessageIdsForAccount(homerAccessToken).size() == 1);
+
+        String messageId = listMessageIdsForAccount(homerAccessToken).get(0);
+        homerMovesTheMailInAnotherMailbox(messageId);
+
+        homerSharesHisMailboxWithBart();
+
+        bartDeletesMessages(ImmutableList.of(messageId));
+        WAIT_TWO_MINUTES.until(() -> 
listMessageIdsForAccount(homerAccessToken).size() == 0);
+
+        restoreAllMessagesOfHomer();
+        WAIT_TWO_MINUTES.until(() -> 
listMessageIdsForAccount(homerAccessToken).size() == 1);
+
+        String newMessageId = 
listMessageIdsForAccount(homerAccessToken).get(0);
+        given()
+            .header("Authorization", homerAccessToken.serialize())
+            .body("[[\"getMessages\", {\"ids\": [\"" + newMessageId + "\"]}, 
\"#0\"]]")
+        .when()
+            .post("/jmap")
+            .then()
+            .statusCode(200)
+            .log().ifValidationFails()
+            .body(ARGUMENTS + ".list.subject", hasItem(SUBJECT));
+    }
+
+    private void homerSharesHisMailboxWithBart() {
+        with()
+            .header("Authorization", homerAccessToken.serialize())
+            .body("[" +
+                "  [ \"setMailboxes\"," +
+                "    {" +
+                "      \"update\": {" +
+                "        \"" + otherMailboxId.serialize() + "\" : {" +
+                "          \"sharedWith\" : {\"" + BART + "\": [\"a\", \"w\", 
\"r\"]}" +
+                "        }" +
+                "      }" +
+                "    }," +
+                "    \"#0\"" +
+                "  ]" +
+                "]")
+            .post("/jmap");
+    }
+
     private void bartSendMessageToHomer() {
         String messageCreationId = "creationId";
         String outboxId = getOutboxId(bartAccessToken);
@@ -340,8 +410,12 @@ public abstract class DeletedMessagesVaultTest {
     }
 
     private void restoreAllMessagesOfHomer() {
+        restoreMessagesFor(HOMER);
+    }
+
+    private void restoreMessagesFor(String user) {
         String taskId = webAdminApi.with()
-            .post("/deletedMessages/user/" + HOMER + "?action=restore")
+            .post("/deletedMessages/user/" + user + "?action=restore")
             .jsonPath()
             .get("taskId");
 
diff --git 
a/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryDeletedMessagesVaultTest.java
 
b/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryDeletedMessagesVaultTest.java
index df88db8..956d362 100644
--- 
a/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryDeletedMessagesVaultTest.java
+++ 
b/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemoryDeletedMessagesVaultTest.java
@@ -56,7 +56,7 @@ public class MemoryDeletedMessagesVaultTest extends 
DeletedMessagesVaultTest {
     @Category(BasicFeature.class)
     @Override
     @Test
-    public void postShouldRestoreImapDeletedMailbox() {
+    public void vaultEndpointShouldRestoreImapDeletedMailbox() {
 
     }
 }
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQDeletedMessagesVaultTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQDeletedMessagesVaultTest.java
index 0527b86..f60b8d9 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQDeletedMessagesVaultTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQDeletedMessagesVaultTest.java
@@ -61,7 +61,7 @@ public class RabbitMQDeletedMessagesVaultTest extends 
DeletedMessagesVaultTest {
     @Category(BasicFeature.class)
     @Override
     @Test
-    public void postShouldRestoreImapDeletedMailbox() {
+    public void vaultEndpointShouldRestoreImapDeletedMailbox() {
 
     }
     


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to