JAMES-2514 JMAP integration tests for long mailbox names
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/614a3011 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/614a3011 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/614a3011 Branch: refs/heads/master Commit: 614a3011dfa3011e914a72a23f6d0d79486e00bd Parents: de70177 Author: Benoit Tellier <[email protected]> Authored: Fri Aug 3 09:37:45 2018 +0700 Committer: Benoit Tellier <[email protected]> Committed: Sat Aug 4 08:17:14 2018 +0700 ---------------------------------------------------------------------- .../CassandraSetMailboxesMethodTest.java | 19 ---------------- .../integration/SetMailboxesMethodTest.java | 23 +++++++++++++------- .../memory/MemorySetMailboxesMethodTest.java | 11 ---------- 3 files changed, 15 insertions(+), 38 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/614a3011/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSetMailboxesMethodTest.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSetMailboxesMethodTest.java b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSetMailboxesMethodTest.java index 91f3a59..b10e974 100644 --- a/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSetMailboxesMethodTest.java +++ b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSetMailboxesMethodTest.java @@ -26,7 +26,6 @@ import org.apache.james.DockerCassandraRule; import org.apache.james.GuiceJamesServer; import org.apache.james.jmap.methods.integration.SetMailboxesMethodTest; import org.junit.ClassRule; -import org.junit.Ignore; import org.junit.Rule; public class CassandraSetMailboxesMethodTest extends SetMailboxesMethodTest { @@ -47,22 +46,4 @@ public class CassandraSetMailboxesMethodTest extends SetMailboxesMethodTest { rule.await(); } - @Override - @Ignore("JAMES-2514 Cassandra 3.0 supports long mailbox names") - public void setMailboxesShouldCreateWhenOverLimitName() { - } - - @Override - @Ignore("JAMES-2514 Cassandra 3.0 supports long mailbox names") - public void setMailboxesShouldUpdateMailboxWhenOverLimitName() { - } - - @Override - @Ignore - public void setMailboxesShouldNotUpdateMailboxWhenOverLimitName() {} - - @Override - @Ignore - public void setMailboxesShouldNotCreateWhenOverLimitName() {} - } http://git-wip-us.apache.org/repos/asf/james-project/blob/614a3011/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMailboxesMethodTest.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMailboxesMethodTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMailboxesMethodTest.java index c1eaf4e..d562279 100644 --- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMailboxesMethodTest.java +++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMailboxesMethodTest.java @@ -49,6 +49,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.james.GuiceJamesServer; import org.apache.james.jmap.api.access.AccessToken; import org.apache.james.mailbox.DefaultMailboxes; +import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.model.MailboxACL; import org.apache.james.mailbox.model.MailboxACL.Right; import org.apache.james.mailbox.model.MailboxConstants; @@ -68,6 +69,7 @@ import org.junit.Test; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; + import io.restassured.RestAssured; public abstract class SetMailboxesMethodTest { @@ -177,14 +179,15 @@ public abstract class SetMailboxesMethodTest { } @Test - public void setMailboxesShouldCreateWhenOverLimitName() throws Exception { - String overLimitName = StringUtils.repeat("a", MAILBOX_NAME_LENGTH_64K); + public void setMailboxesCreateShouldFailWhenOverLimitName() { + String overLimitName = StringUtils.repeat("a", MailboxManager.MAX_MAILBOX_NAME_LENGTH + 1); + String creationId = "create-id01"; String requestBody = "[" + " [ \"setMailboxes\"," + " {" + " \"create\": {" + - " \"create-id01\" : {" + + " \"" + creationId + "\" : {" + " \"name\" : \"" + overLimitName + "\"" + " }" + " }" + @@ -201,12 +204,14 @@ public abstract class SetMailboxesMethodTest { .then() .statusCode(200) .body(NAME, equalTo("mailboxesSet")) - .body(ARGUMENTS + ".created", hasKey("create-id01")); + .body(ARGUMENTS + ".notCreated", hasKey(creationId)) + .body(ARGUMENTS + ".notCreated." + creationId + ".type", is("invalidArguments")) + .body(ARGUMENTS + ".notCreated." + creationId + ".description", is("The mailbox name length is too long")); } @Test - public void setMailboxesShouldUpdateMailboxWhenOverLimitName() throws Exception { - String overLimitName = StringUtils.repeat("a", MAILBOX_NAME_LENGTH_64K); + public void setMailboxesUpdateShouldFailWhenOverLimitName() throws Exception { + String overLimitName = StringUtils.repeat("a", MailboxManager.MAX_MAILBOX_NAME_LENGTH + 1); MailboxId mailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, username, "myBox"); String requestBody = "[" + @@ -229,9 +234,11 @@ public abstract class SetMailboxesMethodTest { .then() .statusCode(200) .body(NAME, equalTo("mailboxesSet")) - .body(ARGUMENTS + ".updated", contains(mailboxId.serialize())); + .body(ARGUMENTS + ".notUpdated", hasKey(mailboxId.serialize())) + .body(ARGUMENTS + ".notUpdated." + mailboxId.serialize() + ".type", is("invalidArguments")) + .body(ARGUMENTS + ".notUpdated." + mailboxId.serialize() + ".description", is("The mailbox name length is too long")); - assertThat(mailboxProbe.listSubscriptions(username)).contains(overLimitName); + assertThat(mailboxProbe.listSubscriptions(username)).doesNotContain(overLimitName); } @Test http://git-wip-us.apache.org/repos/asf/james-project/blob/614a3011/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySetMailboxesMethodTest.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySetMailboxesMethodTest.java b/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySetMailboxesMethodTest.java index 0e1744e..3ccb659 100644 --- a/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySetMailboxesMethodTest.java +++ b/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/MemorySetMailboxesMethodTest.java @@ -24,7 +24,6 @@ import java.io.IOException; import org.apache.james.GuiceJamesServer; import org.apache.james.MemoryJmapTestRule; import org.apache.james.jmap.methods.integration.SetMailboxesMethodTest; -import org.junit.Ignore; import org.junit.Rule; public class MemorySetMailboxesMethodTest extends SetMailboxesMethodTest { @@ -40,14 +39,4 @@ public class MemorySetMailboxesMethodTest extends SetMailboxesMethodTest { @Override protected void await() { } - - @Ignore - @Override - public void setMailboxesShouldNotCreateWhenOverLimitName() { - } - - @Ignore - @Override - public void setMailboxesShouldNotUpdateMailboxWhenOverLimitName() { - } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
