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/06/19 03:23:22 UTC

[james-project] 01/07: JAMES-2790 Add a role for Restored-Messages mailbox

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 d4d2d0b996ea7e3c37f409cd6f4203015bb1d589
Author: Rene Cordier <rc...@linagora.com>
AuthorDate: Fri Jun 14 14:35:39 2019 +0700

    JAMES-2790 Add a role for Restored-Messages mailbox
---
 .../org/apache/james/mailbox/DefaultMailboxes.java     |  1 +
 .../src/main/java/org/apache/james/mailbox/Role.java   |  4 +++-
 .../test/java/org/apache/james/mailbox/RoleTest.java   | 18 +++++++++++++++++-
 .../org/apache/james/jmap/model/mailbox/SortOrder.java |  1 +
 .../james/jmap/methods/GetMailboxesMethodTest.java     |  2 ++
 5 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/DefaultMailboxes.java b/mailbox/api/src/main/java/org/apache/james/mailbox/DefaultMailboxes.java
index 0fa4401..fabc8ff 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/DefaultMailboxes.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/DefaultMailboxes.java
@@ -34,6 +34,7 @@ public interface DefaultMailboxes {
     String ARCHIVE = "Archive";
     String SPAM = "Spam";
     String TEMPLATES = "Templates";
+    String RESTORED_MESSAGES = "Restored-Messages";
 
     List<String> DEFAULT_MAILBOXES = ImmutableList.of(INBOX, OUTBOX, SENT, TRASH, DRAFTS, SPAM);
 }
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/Role.java b/mailbox/api/src/main/java/org/apache/james/mailbox/Role.java
index 675b91b..a6ccfb0 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/Role.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/Role.java
@@ -42,9 +42,11 @@ public class Role {
     public static final Role ARCHIVE = new Role("archive", DefaultMailboxes.ARCHIVE, CASE_SENSITIVE_COMPARATOR);
     public static final Role SPAM = new Role("spam", DefaultMailboxes.SPAM, CASE_SENSITIVE_COMPARATOR);
     public static final Role TEMPLATES = new Role("templates", DefaultMailboxes.TEMPLATES, CASE_SENSITIVE_COMPARATOR);
+    public static final Role RESTORED_MESSAGES =
+        new Role("restored messages", DefaultMailboxes.RESTORED_MESSAGES, CASE_SENSITIVE_COMPARATOR);
     
     private static final List<Role> ROLES = 
-            ImmutableList.<Role>of(INBOX, DRAFTS, OUTBOX, SENT, TRASH, ARCHIVE, SPAM, TEMPLATES);
+            ImmutableList.<Role>of(INBOX, DRAFTS, OUTBOX, SENT, TRASH, ARCHIVE, SPAM, TEMPLATES, RESTORED_MESSAGES);
     
     private final String name;
     private final String defaultMailbox;
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/RoleTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/RoleTest.java
index 134ecf3..6352a07 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/RoleTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/RoleTest.java
@@ -23,7 +23,6 @@ import static org.assertj.core.api.Assertions.assertThat;
 import java.util.Locale;
 import java.util.Optional;
 
-import org.apache.james.mailbox.Role;
 import org.junit.Test;
 
 public class RoleTest {
@@ -96,6 +95,11 @@ public class RoleTest {
     }
 
     @Test
+    public void isSystemRoleShouldBeTrueWhenRestoredMessages() {
+        assertThat(Role.RESTORED_MESSAGES.isSystemRole()).isTrue();
+    }
+
+    @Test
     public void isSystemRoleShouldBeFalseWhenUserDefinedRole() {
         Role userRole = Role.from(Role.USER_DEFINED_ROLE_PREFIX + "myRole").get();
         assertThat(userRole.isSystemRole()).isFalse();
@@ -160,4 +164,16 @@ public class RoleTest {
         Optional<Role> role = Role.from("TrAsH");
         assertThat(role).isEmpty();
     }
+
+    @Test
+    public void theRestoredMessagesMailboxNameShouldBeASystemMailbox() {
+        Role role = Role.from("Restored-Messages").get();
+        assertThat(role.isSystemRole()).isTrue();
+    }
+
+    @Test
+    public void theReStOrEdMeSsAgEsMailboxNameShouldNotBeASystemMailbox() {
+        Optional<Role> role = Role.from("ReStOrEd-MeSsAgEs");
+        assertThat(role).isEmpty();
+    }
 }
\ No newline at end of file
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/SortOrder.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/SortOrder.java
index 27c2a65..7442a75 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/SortOrder.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/mailbox/SortOrder.java
@@ -41,6 +41,7 @@ public class SortOrder implements Comparable<SortOrder> {
                 .put(Role.TRASH, SortOrder.of(60))
                 .put(Role.SPAM, SortOrder.of(70))
                 .put(Role.TEMPLATES, SortOrder.of(80))
+                .put(Role.RESTORED_MESSAGES, SortOrder.of(90))
                 .build();
 
     private static Optional<SortOrder> getDefaultSortOrder(Role role) {
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
index e5c2c31..ae0f9aa 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
@@ -380,6 +380,7 @@ public class GetMailboxesMethodTest {
         mailboxManager.createMailbox(MailboxPath.forUser(USERNAME, "Trash"), mailboxSession);
         mailboxManager.createMailbox(MailboxPath.forUser(USERNAME, "Spam"), mailboxSession);
         mailboxManager.createMailbox(MailboxPath.forUser(USERNAME, "Templates"), mailboxSession);
+        mailboxManager.createMailbox(MailboxPath.forUser(USERNAME, "Restored-Messages"), mailboxSession);
         mailboxManager.createMailbox(MailboxPath.forUser(USERNAME, "WITHOUT ROLE"), mailboxSession);
 
         GetMailboxesRequest getMailboxesRequest = GetMailboxesRequest.builder()
@@ -403,6 +404,7 @@ public class GetMailboxesMethodTest {
                         Tuple.tuple("Trash", Optional.of(Role.TRASH)),
                         Tuple.tuple("Spam", Optional.of(Role.SPAM)),
                         Tuple.tuple("Templates", Optional.of(Role.TEMPLATES)),
+                        Tuple.tuple("Restored-Messages", Optional.of(Role.RESTORED_MESSAGES)),
                         Tuple.tuple("WITHOUT ROLE", Optional.empty()));
     }
 }


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