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 ma...@apache.org on 2017/10/05 18:02:39 UTC
[27/27] james-project git commit: MAILBOX-310 Adding additional tests
demonstrating per username/namespace search filtering on the manager layer
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 <bt...@linagora.com>
Authored: Thu Oct 5 09:54:26 2017 +0700
Committer: Matthieu Baechler <ma...@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-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org