MAILBOX-310 Adding additional tests demonstrating per username/namespace search 
filtering on the manager layer


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

Branch: refs/heads/master
Commit: 93aac90e3173bbc08f7e84106a1450838368b81b
Parents: 636e5a4
Author: benwa <btell...@linagora.com>
Authored: Thu Oct 5 09:54:26 2017 +0700
Committer: Matthieu Baechler <matth...@apache.org>
Committed: Thu Oct 5 20:00:39 2017 +0200

----------------------------------------------------------------------
 .../james/mailbox/MailboxManagerTest.java       | 59 ++++++++++++++++++++
 1 file changed, 59 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/93aac90e/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java 
b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
index f04cfa5..7568ea7 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
@@ -484,6 +484,65 @@ public abstract class MailboxManagerTest {
     }
 
     @Test
+    public void searchShouldAllowUserFiltering() throws MailboxException {
+        
Assume.assumeTrue(mailboxManager.hasCapability(MailboxCapabilities.ACL));
+        MailboxSession session1 = mailboxManager.createSystemSession(USER_1);
+        MailboxSession session2 = mailboxManager.createSystemSession(USER_2);
+        MailboxPath inbox1 = MailboxPath.inbox(session1);
+        MailboxPath inbox2 = MailboxPath.inbox(session2);
+        mailboxManager.createMailbox(inbox1, session1);
+        mailboxManager.createMailbox(inbox2, session2);
+        mailboxManager.setRights(inbox1,
+            MailboxACL.EMPTY.apply(MailboxACL.command()
+                .forUser(USER_2)
+                .rights(MailboxACL.Right.Read)
+                .asAddition()),
+            session1);
+
+        MailboxQuery mailboxQuery = MailboxQuery.builder()
+            .username(USER_1)
+            .matchesAllMailboxNames()
+            .build();
+
+        assertThat(mailboxManager.search(mailboxQuery, session2))
+            .extracting(MailboxMetaData::getPath)
+            .containsOnly(inbox1);
+    }
+
+    @Test
+    public void searchShouldAllowNamespaceFiltering() throws MailboxException {
+        
Assume.assumeTrue(mailboxManager.hasCapability(MailboxCapabilities.ACL));
+        MailboxSession session1 = mailboxManager.createSystemSession(USER_1);
+        MailboxSession session2 = mailboxManager.createSystemSession(USER_2);
+        MailboxPath inbox1 = MailboxPath.inbox(session1);
+        String specificNamespace = "specificNamespace";
+        MailboxPath mailboxPath1 = new MailboxPath(specificNamespace, USER_1, 
"mailbox");
+        mailboxManager.createMailbox(inbox1, session1);
+        mailboxManager.createMailbox(mailboxPath1, session1);
+        mailboxManager.setRights(inbox1,
+            MailboxACL.EMPTY.apply(MailboxACL.command()
+                .forUser(USER_2)
+                .rights(MailboxACL.Right.Read)
+                .asAddition()),
+            session1);
+        mailboxManager.setRights(mailboxPath1,
+            MailboxACL.EMPTY.apply(MailboxACL.command()
+                .forUser(USER_2)
+                .rights(MailboxACL.Right.Read)
+                .asAddition()),
+            session1);
+
+        MailboxQuery mailboxQuery = MailboxQuery.builder()
+            .namespace(specificNamespace)
+            .matchesAllMailboxNames()
+            .build();
+
+        assertThat(mailboxManager.search(mailboxQuery, session2))
+            .extracting(MailboxMetaData::getPath)
+            .containsOnly(mailboxPath1);
+    }
+
+    @Test
     public void searchShouldNotReturnNoMoreDelegatedMailboxes() throws 
MailboxException {
         
Assume.assumeTrue(mailboxManager.hasCapability(MailboxCapabilities.ACL));
         MailboxSession session1 = mailboxManager.createSystemSession(USER_1);


---------------------------------------------------------------------
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