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 <gdifo...@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-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org