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