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 84386f6537125cf4dc45669066c5a0564c9afb52 Author: Matthieu Baechler <matth...@apache.org> AuthorDate: Fri Nov 29 15:29:55 2019 +0100 JAMES-2979 avoid message to be detected as spam Also, send only 100 mails as it's already long enough and create Inbox before starting to avoid race conditions for Inbox creation --- server/container/guice/guice-common/pom.xml | 5 ++++ .../apache/james/MailsShouldBeWellReceived.java | 35 +++++++++++++++++----- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/server/container/guice/guice-common/pom.xml b/server/container/guice/guice-common/pom.xml index 0ca1dbd..f3622a6 100644 --- a/server/container/guice/guice-common/pom.xml +++ b/server/container/guice/guice-common/pom.xml @@ -62,6 +62,11 @@ </dependency> <dependency> <groupId>${james.groupId}</groupId> + <artifactId>james-server-guice-mailbox</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>${james.groupId}</groupId> <artifactId>james-server-guice-imap</artifactId> <scope>test</scope> </dependency> diff --git a/server/container/guice/guice-common/src/test/java/org/apache/james/MailsShouldBeWellReceived.java b/server/container/guice/guice-common/src/test/java/org/apache/james/MailsShouldBeWellReceived.java index 0088658..e06e1b5 100644 --- a/server/container/guice/guice-common/src/test/java/org/apache/james/MailsShouldBeWellReceived.java +++ b/server/container/guice/guice-common/src/test/java/org/apache/james/MailsShouldBeWellReceived.java @@ -19,11 +19,16 @@ package org.apache.james; +import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.util.UUID; import org.apache.james.core.Domain; +import org.apache.james.mailbox.DefaultMailboxes; +import org.apache.james.modules.MailboxProbeImpl; import org.apache.james.modules.protocols.ImapGuiceProbe; import org.apache.james.modules.protocols.SmtpGuiceProbe; +import org.apache.james.util.Port; import org.apache.james.utils.DataProbeImpl; import org.apache.james.utils.IMAPMessageReader; import org.apache.james.utils.SMTPMessageSender; @@ -33,14 +38,15 @@ import org.awaitility.Duration; import org.awaitility.core.ConditionFactory; import org.junit.jupiter.api.Test; -import com.github.fge.lambdas.runnable.ThrowingRunnable; +import com.github.fge.lambdas.Throwing; +import com.google.common.io.Resources; import reactor.core.publisher.Mono; import reactor.core.scheduler.Schedulers; interface MailsShouldBeWellReceived { String JAMES_SERVER_HOST = "127.0.0.1"; - String DOMAIN = "domain"; + String DOMAIN = "apache.org"; String JAMES_USER = "james-user@" + DOMAIN; String PASSWORD = "secret"; ConditionFactory CALMLY_AWAIT = Awaitility @@ -72,17 +78,25 @@ interface MailsShouldBeWellReceived { } @Test - default void twoHundredMailsShouldBeWellReceived(GuiceJamesServer server) throws Exception { + default void oneHundredMailsShouldBeWellReceived(GuiceJamesServer server) throws Exception { server.getProbe(DataProbeImpl.class).fluent() .addDomain(DOMAIN) .addUser(JAMES_USER, PASSWORD); - int messageCount = 200; + MailboxProbeImpl mailboxProbe = server.getProbe(MailboxProbeImpl.class); + mailboxProbe.createMailbox("#private", JAMES_USER, DefaultMailboxes.INBOX); + + int messageCount = 100; + + Port smtpPort = server.getProbe(SmtpGuiceProbe.class).getSmtpPort(); + String message = Resources.toString(Resources.getResource("eml/htmlMail.eml"), StandardCharsets.UTF_8); try (SMTPMessageSender sender = new SMTPMessageSender(Domain.LOCALHOST.asString())) { - Mono.fromRunnable(((ThrowingRunnable) () -> - sender.connect(JAMES_SERVER_HOST, server.getProbe(SmtpGuiceProbe.class).getSmtpPort()) - .sendMessageWithHeaders("b...@any.com", JAMES_USER, "UUID " + UUID.randomUUID().toString()))) + Mono.fromRunnable( + Throwing.runnable(() -> { + sender.connect(JAMES_SERVER_HOST, smtpPort); + sendUniqueMessage(sender, message); + })) .repeat(messageCount - 1) .subscribeOn(Schedulers.elastic()) .blockLast(); @@ -94,7 +108,12 @@ interface MailsShouldBeWellReceived { reader.connect(JAMES_SERVER_HOST, server.getProbe(ImapGuiceProbe.class).getImapPort()) .login(JAMES_USER, PASSWORD) .select(IMAPMessageReader.INBOX) - .awaitMessageCount(CALMLY_AWAIT_FIVE_MINUTE, messageCount); + .awaitMessageCount(CALMLY_AWAIT, messageCount); } } + + default void sendUniqueMessage(SMTPMessageSender sender, String message) throws IOException { + String uniqueMessage = message.replace("banana", "UUID " + UUID.randomUUID().toString()); + sender.sendMessageWithHeaders("b...@apache.org", JAMES_USER, uniqueMessage); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org