JAMES-2529 Filter case sensitivity integration test
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/443f3c61 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/443f3c61 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/443f3c61 Branch: refs/heads/master Commit: 443f3c612ae2f63513f0c63b3e914bff05df0f07 Parents: 2dcde78 Author: Raphael Ouazana <raphael.ouaz...@linagora.com> Authored: Wed Aug 29 17:31:35 2018 +0200 Committer: Antoine Duprat <adup...@linagora.com> Committed: Thu Aug 30 15:11:55 2018 +0200 ---------------------------------------------------------------------- .../jmap/methods/integration/FilterTest.java | 113 +++++++++++++++++++ 1 file changed, 113 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/443f3c61/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/FilterTest.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/FilterTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/FilterTest.java index f56615c..e87c417 100644 --- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/FilterTest.java +++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/FilterTest.java @@ -41,6 +41,7 @@ import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.hasSize; import java.io.IOException; +import java.util.Locale; import org.apache.james.GuiceJamesServer; import org.apache.james.jmap.JmapCommonRequests; @@ -1219,6 +1220,62 @@ public abstract class FilterTest { () -> JmapCommonRequests.isAnyMessageFoundInRecipientsMailbox(accessToken, inbox)); } + + @Test + public void messageShouldBeAppendedInInboxWhenSubjectRuleDoesNotMatchRuleBecaseOfCase() { + given() + .header("Authorization", accessToken.serialize()) + .body("[[" + + " \"setFilter\", " + + " {" + + " \"singleton\": [" + + " {" + + " \"id\": \"3000-345\"," + + " \"name\": \"Emails from bob\"," + + " \"condition\": {" + + " \"field\": \"subject\"," + + " \"comparator\": \"contains\"," + + " \"value\": \"different case value\"" + + " }," + + " \"action\": {" + + " \"appendIn\": {" + + " \"mailboxIds\": [\"" + matchedMailbox.serialize() + "\"]" + + " }" + + " }" + + " }" + + " ]}, " + + "\"#0\"" + + "]]") + .when() + .post("/jmap") + .then() + .statusCode(200); + + String messageCreationId = "creationId1337"; + String requestBody = "[[" + + " \"setMessages\"," + + " {" + + " \"create\": { \"" + messageCreationId + "\" : {" + + " \"from\": { \"name\": \"Me\", \"email\": \"" + BOB + "\"}," + + " \"to\": [{ \"name\": \"Alice\", \"email\": \"" + ALICE + "\"},{ \"name\": \"Cedric\", \"email\": \"" + CEDRIC + "\"}]," + + " \"subject\": \"DIFFERENT CASE VALUE\"," + + " \"mailboxIds\": [\"" + getOutboxId(bobAccessToken) + "\"]" + + " }}" + + " }," + + " \"#0\"" + + "]]"; + + with() + .header("Authorization", bobAccessToken.serialize()) + .body(requestBody) + .post("/jmap") + .then() + .statusCode(200); + + calmlyAwait.until( + () -> JmapCommonRequests.isAnyMessageFoundInRecipientsMailbox(accessToken, inbox)); + } + @Test public void messageShouldBeAppendedInSpecificMailboxWhenContainsComparatorMatches() { given() @@ -1494,6 +1551,62 @@ public abstract class FilterTest { () -> JmapCommonRequests.isAnyMessageFoundInRecipientsMailbox(accessToken, matchedMailbox)); } + + @Test + public void messageShouldBeAppendedInSpecificMailboxWhenExactlyEqualsMatchesCaseInsensitivelyFullHeader() { + given() + .header("Authorization", accessToken.serialize()) + .body("[[" + + " \"setFilter\", " + + " {" + + " \"singleton\": [" + + " {" + + " \"id\": \"3000-345\"," + + " \"name\": \"Emails from bob\"," + + " \"condition\": {" + + " \"field\": \"from\"," + + " \"comparator\": \"exactly-equals\"," + + " \"value\": \"bob <" + BOB.toUpperCase(Locale.ENGLISH) + ">\"" + + " }," + + " \"action\": {" + + " \"appendIn\": {" + + " \"mailboxIds\": [\"" + matchedMailbox.serialize() + "\"]" + + " }" + + " }" + + " }" + + " ]}, " + + "\"#0\"" + + "]]") + .when() + .post("/jmap") + .then() + .statusCode(200); + + String messageCreationId = "creationId1337"; + String requestBody = "[[" + + " \"setMessages\"," + + " {" + + " \"create\": { \"" + messageCreationId + "\" : {" + + " \"from\": { \"name\": \"Bob\", \"email\": \"" + BOB + "\"}," + + " \"to\": [{ \"name\": \"Alice\", \"email\": \"" + ALICE + "\"}]," + + " \"subject\": \"subject\"," + + " \"mailboxIds\": [\"" + getOutboxId(bobAccessToken) + "\"]" + + " }}" + + " }," + + " \"#0\"" + + "]]"; + + with() + .header("Authorization", bobAccessToken.serialize()) + .body(requestBody) + .post("/jmap") + .then() + .statusCode(200); + + calmlyAwait.until( + () -> JmapCommonRequests.isAnyMessageFoundInRecipientsMailbox(accessToken, matchedMailbox)); + } + @Test public void messageShouldBeAppendedInInboxWhenExactlyEqualsComparatorDoesNotMatch() { given() --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org