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 rc...@apache.org on 2020/06/30 10:52:55 UTC

[james-project] 02/07: JAMES-3277 Rewrite AbstractMessageIdManagerStorageTest::setInMailboxesShouldIgnoreMessagesBelongingToOtherUsers

This is an automated email from the ASF dual-hosted git repository.

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 5c87926f3bd8ed13b7d23bd8a91e8dde4fab3648
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Jun 29 08:55:07 2020 +0700

    JAMES-3277 Rewrite AbstractMessageIdManagerStorageTest::setInMailboxesShouldIgnoreMessagesBelongingToOtherUsers
    
    The intent of this test was to show, that when a message is delegated only in some mailboxes, then the sharee cannot alter the setInMailboxes the message in the mailboes that were not delegated to him.
---
 .../james/mailbox/fixture/MailboxFixture.java      |  1 +
 .../store/AbstractMessageIdManagerStorageTest.java | 61 ++++++++++++++--------
 2 files changed, 41 insertions(+), 21 deletions(-)

diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/fixture/MailboxFixture.java b/mailbox/api/src/test/java/org/apache/james/mailbox/fixture/MailboxFixture.java
index 07274f0..fb020b1 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/fixture/MailboxFixture.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/fixture/MailboxFixture.java
@@ -31,4 +31,5 @@ public interface MailboxFixture {
     MailboxPath OUTBOX_ALICE = MailboxPath.forUser(ALICE, "OUTBOX");
     MailboxPath SENT_ALICE = MailboxPath.forUser(ALICE, "SENT");
     MailboxPath INBOX_BOB = MailboxPath.inbox(BOB);
+    MailboxPath BOB_2 = MailboxPath.forUser(BOB, "box2");
 }
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
index 25fe936..4c7f73a 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.mailbox.store;
 
+import static org.apache.james.mailbox.fixture.MailboxFixture.BOB;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
@@ -68,6 +69,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
     private Mailbox aliceMailbox2;
     private Mailbox aliceMailbox3;
     private Mailbox bobMailbox1;
+    private Mailbox bobMailbox2;
     private MailboxSession aliceSession;
     private MailboxSession bobSession;
     private MailboxSession systemSession;
@@ -77,7 +79,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
     @BeforeEach
     void setUp() throws Exception {
         aliceSession = MailboxSessionUtil.create(MailboxFixture.ALICE);
-        bobSession = MailboxSessionUtil.create(MailboxFixture.BOB);
+        bobSession = MailboxSessionUtil.create(BOB);
         systemSession = MailboxSessionUtil.create(Username.of("systemuser"));
         testingData = createTestingData();
         messageIdManager = testingData.getMessageIdManager();
@@ -86,6 +88,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
         aliceMailbox2 = testingData.createMailbox(MailboxFixture.OUTBOX_ALICE, aliceSession);
         aliceMailbox3 = testingData.createMailbox(MailboxFixture.SENT_ALICE, aliceSession);
         bobMailbox1 = testingData.createMailbox(MailboxFixture.INBOX_BOB, bobSession);
+        bobMailbox2 = testingData.createMailbox(MailboxFixture.BOB_2, bobSession);
     }
 
     @Test
@@ -268,11 +271,27 @@ public abstract class AbstractMessageIdManagerStorageTest {
 
     @Test
     void setInMailboxesShouldIgnoreMessagesBelongingToOtherUsers() throws Exception {
-        MessageId messageId = testingData.persist(bobMailbox1.getMailboxId(), messageUid1, FLAGS, bobSession);
+        MessageId messageId = testingData.persist(aliceMailbox1.getMailboxId(), messageUid1, FLAGS, bobSession);
 
-        messageIdManager.setInMailboxes(messageId, ImmutableList.of(aliceMailbox1.getMailboxId()), aliceSession);
+        messageIdManager.setInMailboxes(messageId, ImmutableList.of(aliceMailbox1.getMailboxId(), aliceMailbox2.getMailboxId()), aliceSession);
 
-        assertThat(messageIdManager.getMessage(messageId, FetchGroup.MINIMAL, aliceSession)).isEmpty();
+        testingData.getMailboxManager().setRights(aliceMailbox1.getMailboxId(),
+            MailboxACL.EMPTY.apply(MailboxACL.command()
+                .forUser(BOB)
+                .rights(MailboxACL.FULL_RIGHTS)
+                .asAddition()),
+            aliceSession);
+
+        messageIdManager.setInMailboxes(messageId, ImmutableList.of(bobMailbox1.getMailboxId(), bobMailbox2.getMailboxId()), bobSession);
+
+        // Bob couldn't alter the message in the mailbox he could not access
+        assertThat(messageIdManager.getMessage(messageId, FetchGroup.MINIMAL, aliceSession))
+            .extracting(MessageResult::getMailboxId)
+            .containsOnly(aliceMailbox2.getMailboxId());
+        // Bob succeeded to copy the message in his mailboxes
+        assertThat(messageIdManager.getMessage(messageId, FetchGroup.MINIMAL, bobSession))
+            .extracting(MessageResult::getMailboxId)
+            .containsOnly(bobMailbox1.getMailboxId(), bobMailbox2.getMailboxId());
     }
 
     @Test
@@ -582,7 +601,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
         testingData.setACL(aliceMailbox1.getMailboxId(),
             MailboxACL.EMPTY.apply(
                 MailboxACL.command()
-                    .forUser(MailboxFixture.BOB)
+                    .forUser(BOB)
                     .rights(new Rfc4314Rights(Right.Read))
                     .asAddition()),
             aliceSession);
@@ -601,7 +620,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
         testingData.setACL(aliceMailbox1.getMailboxId(),
             MailboxACL.EMPTY.apply(
                 MailboxACL.command()
-                    .forUser(MailboxFixture.BOB)
+                    .forUser(BOB)
                     .rights(Rfc4314Rights.allExcept(Right.Read))
                     .asAddition()),
             aliceSession);
@@ -618,7 +637,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
         testingData.setACL(aliceMailbox1.getMailboxId(),
             MailboxACL.EMPTY.apply(
                 MailboxACL.command()
-                    .forUser(MailboxFixture.BOB)
+                    .forUser(BOB)
                     .rights(new Rfc4314Rights(Right.Write))
                     .asAddition()),
             aliceSession);
@@ -639,7 +658,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
         testingData.setACL(aliceMailbox1.getMailboxId(),
             MailboxACL.EMPTY.apply(
                 MailboxACL.command()
-                    .forUser(MailboxFixture.BOB)
+                    .forUser(BOB)
                     .rights(Rfc4314Rights.allExcept(Right.Write))
                     .asAddition()),
             aliceSession);
@@ -662,7 +681,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
         testingData.setACL(aliceMailbox1.getMailboxId(),
             MailboxACL.EMPTY.apply(
                 MailboxACL.command()
-                    .forUser(MailboxFixture.BOB)
+                    .forUser(BOB)
                     .rights(new Rfc4314Rights(Right.Read))
                     .asAddition()),
             aliceSession);
@@ -687,7 +706,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
         testingData.setACL(aliceMailbox1.getMailboxId(),
             MailboxACL.EMPTY.apply(
                 MailboxACL.command()
-                    .forUser(MailboxFixture.BOB)
+                    .forUser(BOB)
                     .rights(Rfc4314Rights.allExcept(Right.Read))
                     .asAddition()),
             aliceSession);
@@ -712,7 +731,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
         testingData.setACL(aliceMailbox1.getMailboxId(),
             MailboxACL.EMPTY.apply(
                 MailboxACL.command()
-                    .forUser(MailboxFixture.BOB)
+                    .forUser(BOB)
                     .rights(new Rfc4314Rights(Right.Insert, Right.Read))
                     .asAddition()),
             aliceSession);
@@ -737,7 +756,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
         testingData.setACL(aliceMailbox1.getMailboxId(),
             MailboxACL.EMPTY.apply(
                 MailboxACL.command()
-                    .forUser(MailboxFixture.BOB)
+                    .forUser(BOB)
                     .rights(Rfc4314Rights.allExcept(Right.Insert))
                     .asAddition()),
             aliceSession);
@@ -766,7 +785,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
         testingData.setACL(aliceMailbox1.getMailboxId(),
             MailboxACL.EMPTY.apply(
                 MailboxACL.command()
-                    .forUser(MailboxFixture.BOB)
+                    .forUser(BOB)
                     .rights(new Rfc4314Rights(Right.Lookup, Right.Read, Right.DeleteMessages))
                     .asAddition()),
             aliceSession);
@@ -791,7 +810,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
         testingData.setACL(aliceMailbox1.getMailboxId(),
             MailboxACL.EMPTY.apply(
                 MailboxACL.command()
-                    .forUser(MailboxFixture.BOB)
+                    .forUser(BOB)
                     .rights(Rfc4314Rights.allExcept(Right.DeleteMessages))
                     .asAddition()),
             aliceSession);
@@ -820,7 +839,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
         testingData.setACL(aliceMailbox2.getMailboxId(),
             MailboxACL.EMPTY.apply(
                 MailboxACL.command()
-                    .forUser(MailboxFixture.BOB)
+                    .forUser(BOB)
                     .rights(MailboxACL.FULL_RIGHTS)
                     .asAddition()),
             aliceSession);
@@ -855,7 +874,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
         testingData.setACL(aliceMailbox1.getMailboxId(),
             MailboxACL.EMPTY.apply(
                 MailboxACL.command()
-                    .forUser(MailboxFixture.BOB)
+                    .forUser(BOB)
                     .rights(new Rfc4314Rights(Right.Read, Right.Lookup, Right.DeleteMessages))
                     .asAddition()),
             aliceSession);
@@ -873,7 +892,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
         testingData.setACL(aliceMailbox1.getMailboxId(),
             MailboxACL.EMPTY.apply(
                 MailboxACL.command()
-                    .forUser(MailboxFixture.BOB)
+                    .forUser(BOB)
                     .rights(Rfc4314Rights.allExcept(Right.DeleteMessages))
                     .asAddition()),
             aliceSession);
@@ -894,7 +913,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
         testingData.setACL(aliceMailbox1.getMailboxId(),
             MailboxACL.EMPTY.apply(
                 MailboxACL.command()
-                    .forUser(MailboxFixture.BOB)
+                    .forUser(BOB)
                     .rights(new Rfc4314Rights(Right.Read, Right.Lookup))
                     .asAddition()),
             aliceSession);
@@ -911,7 +930,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
         testingData.setACL(aliceMailbox1.getMailboxId(),
             MailboxACL.EMPTY.apply(
                 MailboxACL.command()
-                    .forUser(MailboxFixture.BOB)
+                    .forUser(BOB)
                     .rights(Rfc4314Rights.allExcept(Right.Read))
                     .asAddition()),
             aliceSession);
@@ -928,7 +947,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
         testingData.setACL(aliceMailbox1.getMailboxId(),
             MailboxACL.EMPTY.apply(
                 MailboxACL.command()
-                    .forUser(MailboxFixture.BOB)
+                    .forUser(BOB)
                     .rights(new Rfc4314Rights(Right.Read, Right.Lookup, Right.Insert))
                     .asAddition()),
             aliceSession);
@@ -948,7 +967,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
         testingData.setACL(aliceMailbox1.getMailboxId(),
             MailboxACL.EMPTY.apply(
                 MailboxACL.command()
-                    .forUser(MailboxFixture.BOB)
+                    .forUser(BOB)
                     .rights(new Rfc4314Rights(Right.Read, Right.Lookup, Right.Insert, Right.Write))
                     .asAddition()),
             aliceSession);


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