You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/03/12 03:19:46 UTC
[james-project] 08/15: JAMES-2665 Add more tests for the vault
feature
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 5b6c3e91e816533b4ab7dc574a4e701796ddedec
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Mar 6 10:16:18 2019 +0700
JAMES-2665 Add more tests for the vault feature
---
.../integration/DeletedMessagesVaultTest.java | 62 ++++++++++++++++++++--
1 file changed, 57 insertions(+), 5 deletions(-)
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 9e035ab..f44247a 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
@@ -29,6 +29,7 @@ import static org.apache.james.jmap.TestingConstants.ARGUMENTS;
import static org.apache.james.jmap.TestingConstants.DOMAIN;
import static org.apache.james.jmap.TestingConstants.calmlyAwait;
import static org.apache.james.jmap.TestingConstants.jmapRequestSpecBuilder;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.hamcrest.Matchers.hasItem;
import static org.hamcrest.Matchers.is;
@@ -47,7 +48,6 @@ import org.apache.james.utils.DataProbeImpl;
import org.apache.james.utils.JmapGuiceProbe;
import org.apache.james.utils.WebAdminGuiceProbe;
import org.apache.james.webadmin.WebAdminUtils;
-import org.apache.james.webadmin.routes.TasksRoutes;
import org.awaitility.Duration;
import org.awaitility.core.ConditionFactory;
import org.junit.After;
@@ -132,6 +132,52 @@ public abstract class DeletedMessagesVaultTest {
.body(ARGUMENTS + ".list.subject", hasItem(SUBJECT));
}
+ @Test
+ public void restoreShouldNotImpactOtherUsers() {
+ bartSendMessageToHomer();
+ WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+
+ homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
+ WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+
+ bartDeletesMessages(listMessageIdsForAccount(bartAccessToken));
+ WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(bartAccessToken).size() == 0);
+
+ restoreAllMessagesOfHomer();
+ WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+
+ // No messages restored for bart
+ assertThat(listMessageIdsForAccount(bartAccessToken).size()).isEqualTo(0);
+ }
+
+ @Test
+ public void restoredMessagesShouldNotBeRemovedFromTheVault() {
+ bartSendMessageToHomer();
+ WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+
+ homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
+ WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+
+ restoreAllMessagesOfHomer();
+ WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+
+ restoreAllMessagesOfHomer();
+ WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 2);
+ }
+
+ @Test
+ public void postShouldNotRestoreItemsWhenTheVaultIsEmpty() throws Exception {
+ bartSendMessageToHomer();
+ WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+
+ restoreAllMessagesOfHomer();
+ Thread.sleep(Duration.FIVE_SECONDS.getValueInMS());
+
+ // No additional had been restored as the vault is empty
+ assertThat(listMessageIdsForAccount(homerAccessToken).size())
+ .isEqualTo(1);
+ }
+
private void bartSendMessageToHomer() {
String messageCreationId = "creationId";
String outboxId = getOutboxId(bartAccessToken);
@@ -165,12 +211,20 @@ public abstract class DeletedMessagesVaultTest {
}
private void homerDeletesMessages(List<String> idsToDestroy) {
+ deleteMessages(homerAccessToken, idsToDestroy);
+ }
+
+ private void bartDeletesMessages(List<String> idsToDestroy) {
+ deleteMessages(bartAccessToken, idsToDestroy);
+ }
+
+ private void deleteMessages(AccessToken accessToken, List<String> idsToDestroy) {
String idString = idsToDestroy.stream()
.map(id -> "\"" + id + "\"")
.collect(Collectors.joining(","));
with()
- .header("Authorization", homerAccessToken.serialize())
+ .header("Authorization", accessToken.serialize())
.body("[[\"setMessages\", {\"destroy\": [" + idString + "]}, \"#0\"]]")
.post("/jmap");
}
@@ -182,9 +236,7 @@ public abstract class DeletedMessagesVaultTest {
.get("taskId");
webAdminApi.given()
- .basePath(TasksRoutes.BASE)
- .when()
- .get(taskId + "/await")
+ .get("/tasks/" + taskId + "/await")
.then()
.body("status", is("completed"));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org