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 ro...@apache.org on 2019/10/29 16:09:47 UTC
[james-project] branch master updated: JAMES-2935 Add test to
ensure that over-specific filter does not exclude valid matches in
GetMessagesList
This is an automated email from the ASF dual-hosted git repository.
rouazana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
The following commit(s) were added to refs/heads/master by this push:
new 6c93851 JAMES-2935 Add test to ensure that over-specific filter does not exclude valid matches in GetMessagesList
6c93851 is described below
commit 6c93851c527a306511076c73348c43307912ca48
Author: Gautier DI FOLCO <gd...@linagora.com>
AuthorDate: Mon Oct 28 14:39:58 2019 +0100
JAMES-2935 Add test to ensure that over-specific filter does not exclude valid matches in GetMessagesList
---
.../integration/GetMessageListMethodTest.java | 34 ++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMessageListMethodTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMessageListMethodTest.java
index 7bf5613..53ea813 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMessageListMethodTest.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/GetMessageListMethodTest.java
@@ -50,7 +50,11 @@ import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;
+import java.util.List;
import java.util.concurrent.TimeUnit;
+import java.util.function.Supplier;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
import javax.mail.Flags;
@@ -62,12 +66,14 @@ import org.apache.james.jmap.draft.model.Number;
import org.apache.james.mailbox.DefaultMailboxes;
import org.apache.james.mailbox.FlagsBuilder;
import org.apache.james.mailbox.MessageManager;
+import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.ComposedMessageId;
import org.apache.james.mailbox.model.MailboxACL.Rfc4314Rights;
import org.apache.james.mailbox.model.MailboxACL.Right;
import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.mailbox.model.MessageId;
import org.apache.james.mime4j.dom.Message;
import org.apache.james.mime4j.dom.Multipart;
import org.apache.james.mime4j.message.BodyPartBuilder;
@@ -83,6 +89,8 @@ import org.apache.james.util.date.ImapDateTimeFormatter;
import org.apache.james.utils.DataProbeImpl;
import org.apache.james.utils.IMAPMessageReader;
import org.apache.james.jmap.draft.JmapGuiceProbe;
+
+import com.github.fge.lambdas.Throwing;
import org.awaitility.Duration;
import org.hamcrest.Matchers;
import org.junit.After;
@@ -91,6 +99,7 @@ import org.junit.Test;
import org.junit.experimental.categories.Category;
import io.restassured.RestAssured;
+import scala.collection.immutable.Stream;
public abstract class GetMessageListMethodTest {
public static final int LIMIT_TO_3_MESSAGES = 3;
@@ -889,6 +898,31 @@ public abstract class GetMessageListMethodTest {
.body(ARGUMENTS + ".messageIds", contains(message.getMessageId().serialize()));
}
+ @Category(BasicFeature.class)
+ @Test
+ public void getMessageListShouldNotExcludeMessagesWhenInMailboxesFilterMatchesMailboxAndText() throws Exception {
+ MailboxId mailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE, "mailbox");
+ List<String> messageIds = IntStream.range(0, 3)
+ .boxed()
+ .map(Throwing.function((ignored) -> mailboxProbe.appendMessage(ALICE, MailboxPath.forUser(ALICE, "mailbox"),
+ new ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes()), new Date(), false, new Flags())).sneakyThrow())
+ .map(ComposedMessageId::getMessageId)
+ .map(MessageId::serialize)
+ .collect(Collectors.toList());
+
+ await();
+
+ given()
+ .header("Authorization", aliceAccessToken.serialize())
+ .body("[[\"getMessageList\", {\"filter\":{\"inMailboxes\":[\"" + mailboxId.serialize() + "\"],\"text\":\"test\"}}, \"#0\"]]")
+ .when()
+ .post("/jmap")
+ .then()
+ .statusCode(200)
+ .body(NAME, equalTo("messageList"))
+ .body(ARGUMENTS + ".messageIds", equalTo(messageIds));
+ }
+
@Test
public void getMessageListShouldExcludeMessagesWhenMultipleInMailboxesFilterMatches() throws Exception {
MailboxId mailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE, "mailbox");
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org