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
The following commit(s) were added to refs/heads/master by this push:
new 00a4ef8e6f JAMES-4077 Add a BackReference test for SearchSnippet/get
00a4ef8e6f is described below
commit 00a4ef8e6f6bf10fd8c5afea636d0a0b88c28bbe
Author: Quan Tran <[email protected]>
AuthorDate: Thu Nov 14 14:43:03 2024 +0700
JAMES-4077 Add a BackReference test for SearchSnippet/get
---
.../contract/SearchSnippetGetMethodContract.scala | 91 ++++++++++++++++++++++
1 file changed, 91 insertions(+)
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/SearchSnippetGetMethodContract.scala
b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/SearchSnippetGetMethodContract.scala
index 696272c801..f25a1d7d2c 100644
---
a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/SearchSnippetGetMethodContract.scala
+++
b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/SearchSnippetGetMethodContract.scala
@@ -198,6 +198,97 @@ trait SearchSnippetGetMethodContract {
}
}
+ @Test
+ def searchSnippetGetShouldSupportBackReference(server: GuiceJamesServer):
Unit = {
+
server.getProbe(classOf[MailboxProbeImpl]).createMailbox(MailboxPath.inbox(BOB))
+ val messageId = server.getProbe(classOf[MailboxProbeImpl])
+ .appendMessage(BOB.asString, MailboxPath.inbox(BOB),
AppendCommand.builder().build(
+ Message.Builder
+ .of
+ .setBody("You can close this page and return to the IDE intellij",
StandardCharsets.UTF_8)
+ .setSubject("Yet another day in paradise")
+ .build))
+ .getMessageId
+
+ val request: String =
+ s"""{
+ | "using": [
+ | "urn:ietf:params:jmap:core",
+ | "urn:ietf:params:jmap:mail"
+ | ],
+ | "methodCalls": [
+ | [
+ | "Email/query",
+ | {
+ | "accountId": "$ACCOUNT_ID",
+ | "filter": {
+ | "body": "IDE"
+ | },
+ | "sort": [
+ | {
+ | "isAscending": false,
+ | "property": "receivedAt"
+ | }
+ | ],
+ | "limit": 20
+ | },
+ | "c0"
+ | ],
+ | [
+ | "SearchSnippet/get",
+ | {
+ | "accountId": "$ACCOUNT_ID",
+ | "filter": {
+ | "body": "IDE"
+ | },
+ | "#emailIds": {
+ | "resultOf": "c0",
+ | "name": "Email/query",
+ | "path": "/ids/*"
+ | }
+ | },
+ | "c1"
+ | ]
+ | ]
+ |}""".stripMargin
+
+ awaitAtMostTenSeconds.untilAsserted { () =>
+ val response: ResponseBodyExtractionOptions = `given`
+ .header(ACCEPT.toString, ACCEPT_RFC8621_VERSION_HEADER)
+ .body(request)
+ .when
+ .post
+ .`then`
+ .statusCode(SC_OK)
+ .contentType(JSON)
+ .extract()
+ .body
+
+ assertThatJson(response.asString())
+ .withOptions(IGNORING_ARRAY_ORDER)
+ .inPath("methodResponses[1]")
+ .isEqualTo(
+ s"""[
+ | "SearchSnippet/get",
+ | {
+ | "accountId": "$ACCOUNT_ID",
+ | "list": [
+ | {
+ | "emailId": "${messageId.serialize}",
+ | "subject": null,
+ | "preview": "$${json-unit.ignore}"
+ | }
+ | ],
+ | "notFound": []
+ | },
+ | "c1"
+ |]""".stripMargin)
+
+
assertThat(response.jsonPath().get("methodResponses[1][1].list[0].preview").toString)
+ .contains("return to the <mark>IDE</mark> intellij")
+ }
+ }
+
@Test
def searchSnippetShouldAcceptSharedMailboxesWhenExtension(server:
GuiceJamesServer): Unit = {
// Given: andres inbox with a message
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]