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 ro...@apache.org on 2017/10/10 15:17:54 UTC
[2/9] james-project git commit: JAMES-2157 Add a test when at least
one mime type matches
JAMES-2157 Add a test when at least one mime type matches
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d6bf83ef
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d6bf83ef
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d6bf83ef
Branch: refs/heads/master
Commit: d6bf83ef69ee11f6df5ee00df1b162a38cccf73f
Parents: 43386fd
Author: benwa <bt...@linagora.com>
Authored: Fri Oct 6 10:47:16 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Oct 6 10:47:16 2017 +0700
----------------------------------------------------------------------
.../mailet/base/test/MimeMessageBuilder.java | 10 +-
.../transport/matchers/HasMimeTypeTest.java | 105 +++++++++++++------
2 files changed, 83 insertions(+), 32 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/d6bf83ef/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java b/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java
index 745e331..91dafc9 100644
--- a/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java
+++ b/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java
@@ -28,6 +28,7 @@ import java.util.List;
import java.util.Optional;
import java.util.Properties;
import java.util.function.Function;
+
import javax.activation.DataHandler;
import javax.mail.BodyPart;
import javax.mail.Message;
@@ -208,6 +209,7 @@ public class MimeMessageBuilder {
}
private Optional<String> text = Optional.empty();
+ private Optional<String> textContentType = Optional.empty();
private Optional<String> subject = Optional.empty();
private Optional<InternetAddress> sender = Optional.empty();
private Optional<MimeMultipart> content = Optional.empty();
@@ -222,6 +224,12 @@ public class MimeMessageBuilder {
return this;
}
+ public MimeMessageBuilder setText(String text, String contentType) {
+ this.text = Optional.of(text);
+ this.textContentType = Optional.of(contentType);
+ return this;
+ }
+
public MimeMessageBuilder addToRecipient(String text) throws AddressException {
this.to.add(new InternetAddress(text));
return this;
@@ -331,7 +339,7 @@ public class MimeMessageBuilder {
Preconditions.checkState(!(text.isPresent() && content.isPresent()), "Can not get at the same time a text and a content");
MimeMessage mimeMessage = new MimeMessage(Session.getInstance(new Properties()));
if (text.isPresent()) {
- mimeMessage.setContent(text.get(), "text/plain");
+ mimeMessage.setContent(text.get(), textContentType.orElse("text/plain"));
}
if (content.isPresent()) {
mimeMessage.setContent(content.get());
http://git-wip-us.apache.org/repos/asf/james-project/blob/d6bf83ef/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasMimeTypeTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasMimeTypeTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasMimeTypeTest.java
index 23dd533..70a80b2 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasMimeTypeTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasMimeTypeTest.java
@@ -20,19 +20,17 @@
package org.apache.james.transport.matchers;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.Assert.assertEquals;
+
+import javax.mail.internet.MimeMessage;
import org.apache.james.core.MailAddress;
+import org.apache.mailet.Mail;
import org.apache.mailet.base.test.FakeMail;
import org.apache.mailet.base.test.FakeMatcherConfig;
import org.apache.mailet.base.test.MimeMessageBuilder;
import org.junit.Before;
import org.junit.Test;
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
-import java.util.Collections;
-
public class HasMimeTypeTest {
private static final String RECIPIENT = "test@james.apache.org";
@@ -41,53 +39,98 @@ public class HasMimeTypeTest {
private static final String NON_MATCHING_MIME_TYPES = "text/plain, application/zip";
private HasMimeType matcher;
- private FakeMail mail;
@Before
public void setUp() throws Exception {
matcher = new HasMimeType();
- MimeMessage message = MimeMessageBuilder.mimeMessageBuilder()
- .setMultipartWithBodyParts(
- MimeMessageBuilder.bodyPartBuilder()
- .data("simple text")
- .disposition("text")
- .build(),
- MimeMessageBuilder.bodyPartBuilder()
- .filename("text_file.txt")
- .disposition("attachment")
- .build(),
- MimeMessageBuilder.bodyPartBuilder()
- .type("application/zip")
- .filename("zip_file.zip")
- .disposition("attachment")
- .build())
- .setSubject("test")
- .build();
-
- mail = FakeMail.builder()
- .mimeMessage(message)
- .sender(new MailAddress(FROM))
- .recipient(new MailAddress(RECIPIENT))
- .build();
}
@Test
- public void hasMimeType() throws MessagingException {
+ public void hasMimeType() throws Exception {
matcher.init(FakeMatcherConfig.builder()
.matcherName("HasMimeType")
.condition(MIME_TYPES)
.build());
+ MimeMessage message = MimeMessageBuilder.mimeMessageBuilder()
+ .setMultipartWithBodyParts(
+ MimeMessageBuilder.bodyPartBuilder()
+ .data("simple text")
+ .disposition("text")
+ .build(),
+ MimeMessageBuilder.bodyPartBuilder()
+ .filename("text_file.txt")
+ .disposition("attachment")
+ .build(),
+ MimeMessageBuilder.bodyPartBuilder()
+ .type("application/zip")
+ .filename("zip_file.zip")
+ .disposition("attachment")
+ .build())
+ .setSubject("test")
+ .build();
+
+ Mail mail = FakeMail.builder()
+ .mimeMessage(message)
+ .sender(new MailAddress(FROM))
+ .recipient(new MailAddress(RECIPIENT))
+ .build();
+
assertThat(matcher.match(mail)).containsAll(mail.getRecipients());
}
@Test
- public void doesNotHaveMimeType() throws MessagingException{
+ public void doesNotHaveMimeType() throws Exception {
matcher.init(FakeMatcherConfig.builder()
.matcherName("HasMimeType")
.condition(NON_MATCHING_MIME_TYPES)
.build());
+ MimeMessage message = MimeMessageBuilder.mimeMessageBuilder()
+ .setMultipartWithBodyParts(
+ MimeMessageBuilder.bodyPartBuilder()
+ .data("simple text")
+ .disposition("text")
+ .build(),
+ MimeMessageBuilder.bodyPartBuilder()
+ .filename("text_file.txt")
+ .disposition("attachment")
+ .build(),
+ MimeMessageBuilder.bodyPartBuilder()
+ .type("application/zip")
+ .filename("zip_file.zip")
+ .disposition("attachment")
+ .build())
+ .setSubject("test")
+ .build();
+
+ Mail mail = FakeMail.builder()
+ .mimeMessage(message)
+ .sender(new MailAddress(FROM))
+ .recipient(new MailAddress(RECIPIENT))
+ .build();
+
assertThat(matcher.match(mail)).isEmpty();
}
+
+ @Test
+ public void matchShouldReturnRecipientsWhenAtLeastOneMimeTypeMatch() throws Exception {
+ matcher.init(FakeMatcherConfig.builder()
+ .matcherName("HasMimeType")
+ .condition("text/md, text/html")
+ .build());
+
+ MimeMessage message = MimeMessageBuilder.mimeMessageBuilder()
+ .setText("content <b>in</b> <i>HTML</i>", "text/html")
+ .setSubject("test")
+ .build();
+
+ Mail mail = FakeMail.builder()
+ .mimeMessage(message)
+ .sender(new MailAddress(FROM))
+ .recipient(new MailAddress(RECIPIENT))
+ .build();
+
+ assertThat(matcher.match(mail)).containsExactlyElementsOf(mail.getRecipients());
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org