This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 05a38ba764e990683a1126f897612e8e41f0ec3a Author: Benoit Tellier <[email protected]> AuthorDate: Wed Oct 28 08:50:53 2020 +0700 MAILBOX-401 Demonstrate '-' causes address matching to fail --- .../ElasticSearchIntegrationTest.java | 97 ++++++++++++++++++++++ 1 file changed, 97 insertions(+) diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java index 043a3dc..46eb518 100644 --- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java +++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java @@ -51,6 +51,7 @@ import org.apache.james.metrics.tests.RecordingMetricFactory; import org.apache.james.mime4j.dom.Message; import org.apache.james.mime4j.stream.RawField; import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -292,4 +293,100 @@ class ElasticSearchIntegrationTest extends AbstractMessageSearchIndexTest { assertThat(messageManager.search(SearchQuery.of(SearchQuery.address(SearchQuery.AddressType.To, "[email protected]")), session)) .containsOnly(messageId2.getUid()); } + + @Disabled("MAILBOX-401 '-' causes address matching to fail") + @Test + void localPartShouldBeMatchedWhenHyphen() throws Exception { + MailboxPath mailboxPath = MailboxPath.forUser(USERNAME, INBOX); + MailboxSession session = MailboxSessionUtil.create(USERNAME); + MessageManager messageManager = storeMailboxManager.getMailbox(mailboxPath, session); + + Message.Builder messageBuilder = Message.Builder + .of() + .setSubject("test") + .setBody("testmail", StandardCharsets.UTF_8); + + ComposedMessageId messageId1 = messageManager.appendMessage( + MessageManager.AppendCommand.builder().build( + messageBuilder + .addField(new RawField("To", "[email protected]")) + .build()), + session).getId(); + + ComposedMessageId messageId2 = messageManager.appendMessage( + MessageManager.AppendCommand.builder().build( + messageBuilder + .addField(new RawField("To", "[email protected]")) + .build()), + session).getId(); + + elasticSearch.awaitForElasticSearch(); + + assertThat(messageManager.search(SearchQuery.of(SearchQuery.address(SearchQuery.AddressType.To, "alice-test")), session)) + .containsOnly(messageId2.getUid()); + } + + @Disabled("MAILBOX-401 '-' causes address matching to fail") + @Test + void addressShouldBeMatchedWhenHyphen() throws Exception { + MailboxPath mailboxPath = MailboxPath.forUser(USERNAME, INBOX); + MailboxSession session = MailboxSessionUtil.create(USERNAME); + MessageManager messageManager = storeMailboxManager.getMailbox(mailboxPath, session); + + Message.Builder messageBuilder = Message.Builder + .of() + .setSubject("test") + .setBody("testmail", StandardCharsets.UTF_8); + + ComposedMessageId messageId1 = messageManager.appendMessage( + MessageManager.AppendCommand.builder().build( + messageBuilder + .addField(new RawField("To", "[email protected]")) + .build()), + session).getId(); + + ComposedMessageId messageId2 = messageManager.appendMessage( + MessageManager.AppendCommand.builder().build( + messageBuilder + .addField(new RawField("To", "[email protected]")) + .build()), + session).getId(); + + elasticSearch.awaitForElasticSearch(); + + assertThat(messageManager.search(SearchQuery.of(SearchQuery.address(SearchQuery.AddressType.To, "[email protected]")), session)) + .containsOnly(messageId1.getUid()); + } + + @Disabled("MAILBOX-401 '-' causes address matching to fail") + @Test + void domainPartShouldBeMatchedWhenHyphen() throws Exception { + MailboxPath mailboxPath = MailboxPath.forUser(USERNAME, INBOX); + MailboxSession session = MailboxSessionUtil.create(USERNAME); + MessageManager messageManager = storeMailboxManager.getMailbox(mailboxPath, session); + + Message.Builder messageBuilder = Message.Builder + .of() + .setSubject("test") + .setBody("testmail", StandardCharsets.UTF_8); + + ComposedMessageId messageId1 = messageManager.appendMessage( + MessageManager.AppendCommand.builder().build( + messageBuilder + .addField(new RawField("To", "[email protected]")) + .build()), + session).getId(); + + ComposedMessageId messageId2 = messageManager.appendMessage( + MessageManager.AppendCommand.builder().build( + messageBuilder + .addField(new RawField("To", "[email protected]")) + .build()), + session).getId(); + + elasticSearch.awaitForElasticSearch(); + + assertThat(messageManager.search(SearchQuery.of(SearchQuery.address(SearchQuery.AddressType.To, "domain-test.tld")), session)) + .containsOnly(messageId1.getUid()); + } } \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
