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