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 rc...@apache.org on 2020/08/21 02:26:54 UTC
[james-project] 06/14: JAMES-3359 Mailbox/set update should handle
subscription
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 fa160b841fbe7e8095398903928cf349dadfb59e
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Aug 17 14:44:20 2020 +0700
JAMES-3359 Mailbox/set update should handle subscription
The test requires mailbox/set create subscription support to pass and is thus disabled for now.
---
.../contract/MailboxSetMethodContract.scala | 43 +++++++++++++++++++++-
1 file changed, 42 insertions(+), 1 deletion(-)
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/MailboxSetMethodContract.scala b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/MailboxSetMethodContract.scala
index fefaebc..d57b247 100644
--- a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/MailboxSetMethodContract.scala
+++ b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/MailboxSetMethodContract.scala
@@ -38,6 +38,7 @@ import org.apache.james.mime4j.dom.Message
import org.apache.james.modules.{ACLProbeImpl, MailboxProbeImpl}
import org.apache.james.utils.DataProbeImpl
import org.assertj.core.api.Assertions
+import org.assertj.core.api.Assertions.assertThat
import org.hamcrest.Matchers.{equalTo, hasSize}
import org.junit.jupiter.api.{BeforeEach, Disabled, Test}
@@ -2166,6 +2167,47 @@ trait MailboxSetMethodContract {
}
@Test
+ def updateShouldRenameSubscriptions(server: GuiceJamesServer): Unit = {
+ val request =
+ s"""
+ |{
+ | "using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ],
+ | "methodCalls": [
+ | ["Mailbox/set",
+ | {
+ | "accountId": "29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
+ | "create": {
+ | "C43": {
+ | "name": "mailbox"
+ | }
+ | }
+ | },
+ | "c1"],
+ | ["Mailbox/set",
+ | {
+ | "accountId": "29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6",
+ | "update": {
+ | "#C43" : {
+ | "/name": "newName"
+ | }
+ | }
+ | },
+ | "c2"]
+ | ]
+ |}
+ |""".stripMargin
+
+ `with`()
+ .header(ACCEPT.toString, ACCEPT_RFC8621_VERSION_HEADER)
+ .body(request)
+ .post
+
+ assertThat(server.getProbe(classOf[MailboxProbeImpl]).listSubscriptions(BOB.asString()))
+ .contains("newName")
+ .doesNotContain("mailbox")
+ }
+
+ @Test
def updateShouldFailWhenTargetMailboxAlreadyExist(server: GuiceJamesServer): Unit = {
val mailboxId1: MailboxId = server.getProbe(classOf[MailboxProbeImpl]).createMailbox(MailboxPath.forUser(BOB, "previousName"))
server.getProbe(classOf[MailboxProbeImpl]).createMailbox(MailboxPath.forUser(BOB, "newName"))
@@ -2278,6 +2320,5 @@ trait MailboxSetMethodContract {
// TODO invalid path handling (unknown property, invalid name)
// TODO disable destroy / rename of system mailbox
- // TODO test that renames keeps subscriptions
// TODO renaming delegated mailboxes is not allowed
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org