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 a44eac63c2aa3939c0ce6c47997451eb3b81842a Author: Benoit Tellier <[email protected]> AuthorDate: Wed Nov 11 12:03:42 2020 +0700 JAMES-3377 Split case sensitivity test case for subject --- .../search/AbstractMessageSearchIndexTest.java | 8 +++ .../contract/EmailQueryMethodContract.scala | 61 +++++++++++++++++++++- 2 files changed, 68 insertions(+), 1 deletion(-) diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java index 5e3d2e9..b0500ef 100644 --- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java +++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java @@ -827,6 +827,14 @@ public abstract class AbstractMessageSearchIndexTest { } @Test + void headerContainsShouldBeCaseInsensitive() throws Exception { + SearchQuery searchQuery = SearchQuery.of(SearchQuery.headerContains("Precedence", "LiSt")); + + assertThat(messageSearchIndex.search(session, mailbox, searchQuery).toStream()) + .containsOnly(m1.getUid(), m6.getUid(), m8.getUid(), m9.getUid()); + } + + @Test void headerExistsShouldReturnUidsOfMessageHavingThisHeader() throws Exception { SearchQuery searchQuery = SearchQuery.of(SearchQuery.headerExists("Precedence")); diff --git a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailQueryMethodContract.scala b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailQueryMethodContract.scala index 9007184..9f9078a 100644 --- a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailQueryMethodContract.scala +++ b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailQueryMethodContract.scala @@ -4682,10 +4682,69 @@ trait EmailQueryMethodContract { .appendMessage(BOB.asString, MailboxPath.inbox(BOB), AppendCommand.builder().build( messageBuilder.build)) .getMessageId + + val request = + s"""{ + | "using": [ + | "urn:ietf:params:jmap:core", + | "urn:ietf:params:jmap:mail"], + | "methodCalls": [[ + | "Email/query", + | { + | "accountId": "29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6", + | "filter" : { + | "subject": "paradise" + | } + | }, + | "c1"]] + |}""".stripMargin + + awaitAtMostTenSeconds.untilAsserted { () => + val response = `given` + .header(ACCEPT.toString, ACCEPT_RFC8621_VERSION_HEADER) + .body(request) + .when + .post + .`then` + .statusCode(SC_OK) + .contentType(JSON) + .extract + .body + .asString + + assertThatJson(response) + .withOptions(new Options(IGNORING_ARRAY_ORDER)) + .inPath("$.methodResponses[0][1].ids") + .isEqualTo(s"""["${messageId1.serialize}"]""") + } + } + + @Test + def subjectShouldBeCaseInsensitive(server: GuiceJamesServer): Unit = { + server.getProbe(classOf[MailboxProbeImpl]).createMailbox(MailboxPath.inbox(BOB)) + def messageBuilder = Message.Builder + .of + .setBody("testmail", StandardCharsets.UTF_8) + val messageId1 = server.getProbe(classOf[MailboxProbeImpl]) + .appendMessage(BOB.asString, MailboxPath.inbox(BOB), AppendCommand.builder().build( + messageBuilder + .setSubject("Yet another day in paradise") + .build)) + .getMessageId + val messageId2 = server.getProbe(classOf[MailboxProbeImpl]) + .appendMessage(BOB.asString, MailboxPath.inbox(BOB), AppendCommand.builder().build( + messageBuilder + .setSubject("Welcome to hell") + .build)) + .getMessageId + val messageId3 = server.getProbe(classOf[MailboxProbeImpl]) + .appendMessage(BOB.asString, MailboxPath.inbox(BOB), AppendCommand.builder().build( + messageBuilder.build)) + .getMessageId val messageId4 = server.getProbe(classOf[MailboxProbeImpl]) .appendMessage(BOB.asString, MailboxPath.inbox(BOB), AppendCommand.builder().build( messageBuilder - .setSubject("Yet another day in PaRaDiSeS") + .setSubject("Yet another day in PaRaDiSe") .build)) .getMessageId --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
