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 ad...@apache.org on 2017/01/24 15:33:16 UTC
[1/2] james-project git commit: JAMES-1919 Move should not fail when
user has no Trash folder
Repository: james-project
Updated Branches:
refs/heads/master 129480e17 -> f2d4d61bf
JAMES-1919 Move should not fail when user has no Trash folder
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/1b6020ef
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/1b6020ef
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/1b6020ef
Branch: refs/heads/master
Commit: 1b6020ef134fa485228879a4cce63e80145327ec
Parents: 9ff71bd
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Tue Jan 24 15:00:54 2017 +0100
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Tue Jan 24 15:00:54 2017 +0100
----------------------------------------------------------------------
.../integration/SetMessagesMethodTest.java | 46 ++++++++++++++++++++
.../methods/SetMessagesUpdateProcessor.java | 12 +++--
2 files changed, 55 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/1b6020ef/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 caf57a2..671f299 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
@@ -1716,6 +1716,52 @@ public abstract class SetMessagesMethodTest {
.body(firstMessage + ".mailboxIds", contains(heartFolderId));
}
+
+ @Test
+ public void mailboxIdsShouldBeInDestinationWhenUsingForMoveWithoutTrashFolder() throws Exception {
+ jmapServer.serverProbe().deleteMailbox("#private", USERNAME, "trash");
+ String newMailboxName = "heartFolder";
+ jmapServer.serverProbe().createMailbox("#private", USERNAME, newMailboxName);
+ Mailbox heartFolder = jmapServer.serverProbe().getMailbox("#private", USERNAME, newMailboxName);
+ String heartFolderId = heartFolder.getMailboxId().serialize();
+
+ ZonedDateTime dateTime = ZonedDateTime.parse("2014-10-30T14:12:00Z");
+ ComposedMessageId message = jmapServer.serverProbe().appendMessage(USERNAME, new MailboxPath("#private", USERNAME, "inbox"),
+ new ByteArrayInputStream("Subject: my test subject\r\n\r\ntestmail".getBytes(Charsets.UTF_8)), Date.from(dateTime.toInstant()), false, new Flags());
+
+ String messageToMoveId = message.getMessageId().serialize();
+ String requestBody = "[" +
+ " [" +
+ " \"setMessages\","+
+ " {" +
+ " \"update\": { \"" + messageToMoveId + "\" : {" +
+ " \"mailboxIds\": [\"" + heartFolderId + "\"]" +
+ " }}" +
+ " }," +
+ " \"#0\"" +
+ " ]" +
+ "]";
+
+ given()
+ .header("Authorization", accessToken.serialize())
+ .body(requestBody)
+ .when()
+ .post("/jmap");
+
+ String firstMessage = ARGUMENTS + ".list[0]";
+ given()
+ .header("Authorization", accessToken.serialize())
+ .body("[[\"getMessages\", {\"ids\": [\"" + messageToMoveId + "\"]}, \"#0\"]]")
+ .when()
+ .post("/jmap")
+ .then()
+ .statusCode(200)
+ .log().ifValidationFails()
+ .body(NAME, equalTo("messages"))
+ .body(ARGUMENTS + ".list", hasSize(1))
+ .body(firstMessage + ".mailboxIds", contains(heartFolderId));
+ }
+
@Test
public void mailboxIdsShouldNotBeAnymoreInSourceWhenUsingForMove() throws Exception {
String newMailboxName = "heartFolder";
http://git-wip-us.apache.org/repos/asf/james-project/blob/1b6020ef/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java
index 5ceaba0..aaae397 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesUpdateProcessor.java
@@ -29,6 +29,7 @@ import javax.inject.Inject;
import javax.mail.Flags;
import org.apache.commons.lang.NotImplementedException;
+import org.apache.james.jmap.exceptions.MailboxRoleNotFoundException;
import org.apache.james.jmap.model.MessageProperties;
import org.apache.james.jmap.model.SetError;
import org.apache.james.jmap.model.SetMessagesRequest;
@@ -141,9 +142,14 @@ public class SetMessagesUpdateProcessor implements SetMessagesProcessor {
}
private boolean isMoveToTrash(MailboxSession mailboxSession, List<MailboxId> mailboxIds) throws MailboxException {
- return mailboxIds.size() == 1
- && mailboxIds.get(0)
- .equals(systemMailboxesProvider.findMailbox(Role.TRASH, mailboxSession).getId());
+ try {
+ return mailboxIds.size() == 1
+ && mailboxIds.get(0)
+ .equals(systemMailboxesProvider.findMailbox(Role.TRASH, mailboxSession).getId());
+ } catch (MailboxRoleNotFoundException e) {
+ LOGGER.debug("Unable to find Trash mailbox for user: " + mailboxSession.getUser().getUserName(), e);
+ return false;
+ }
}
private void addMessageIdNotFoundToResponse(MessageId messageId, SetMessagesResponse.Builder builder) {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[2/2] james-project git commit: Merge remote-tracking branch
'rouazana/JAMES-1919'
Posted by ad...@apache.org.
Merge remote-tracking branch 'rouazana/JAMES-1919'
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/f2d4d61b
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/f2d4d61b
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/f2d4d61b
Branch: refs/heads/master
Commit: f2d4d61bfa2627ec6d8b364b4ae5f91b6e52166d
Parents: 129480e 1b6020e
Author: Antoine Duprat <ad...@linagora.com>
Authored: Tue Jan 24 16:32:49 2017 +0100
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Tue Jan 24 16:32:49 2017 +0100
----------------------------------------------------------------------
.../integration/SetMessagesMethodTest.java | 46 ++++++++++++++++++++
.../methods/SetMessagesUpdateProcessor.java | 12 +++--
2 files changed, 55 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org