INT-4098: IMAP Content Rendering Consistency
JIRA: https://jira.spring.io/browse/INT-4098 Polishing - What's New Schema Polishing Also fix a test to align it with changes to the test mail server.
This commit is contained in:
committed by
Artem Bilan
parent
76bb3ada32
commit
dfb6ab1e08
@@ -159,7 +159,29 @@ public class ImapMailReceiverTests {
|
||||
testIdleWithServerGuts(receiver, true);
|
||||
}
|
||||
|
||||
public void testIdleWithServerGuts(ImapMailReceiver receiver, boolean mapped) throws MessagingException {
|
||||
@Test
|
||||
public void testIdleWithServerDefaultSearchSimple() throws Exception {
|
||||
ImapMailReceiver receiver = new ImapMailReceiver("imap://user:pw@localhost:" + imapIdleServer.getPort()
|
||||
+ "/INBOX");
|
||||
receiver.setSimpleContent(true);
|
||||
testIdleWithServerGuts(receiver, false, true);
|
||||
assertTrue(imapIdleServer.assertReceived("searchWithUserFlag"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIdleWithMessageMappingSimple() throws Exception {
|
||||
ImapMailReceiver receiver = new ImapMailReceiver("imap://user:pw@localhost:" + imapIdleServer.getPort()
|
||||
+ "/INBOX");
|
||||
receiver.setSimpleContent(true);
|
||||
receiver.setHeaderMapper(new DefaultMailHeaderMapper());
|
||||
testIdleWithServerGuts(receiver, true, true);
|
||||
}
|
||||
|
||||
public void testIdleWithServerGuts(ImapMailReceiver receiver, boolean mapped) throws Exception {
|
||||
testIdleWithServerGuts(receiver, mapped, false);
|
||||
}
|
||||
|
||||
public void testIdleWithServerGuts(ImapMailReceiver receiver, boolean mapped, boolean simple) throws Exception {
|
||||
imapIdleServer.resetServer();
|
||||
Properties mailProps = new Properties();
|
||||
mailProps.put("mail.debug", "true");
|
||||
@@ -187,6 +209,14 @@ public class ImapMailReceiverTests {
|
||||
assertNotNull(received);
|
||||
assertNotNull(received.getPayload().getReceivedDate());
|
||||
assertTrue(received.getPayload().getLineCount() > -1);
|
||||
if (simple) {
|
||||
assertThat(received.getPayload().getContent(),
|
||||
equalTo(TestMailServer.MailServer.MailHandler.BODY + "\r\n"));
|
||||
}
|
||||
else {
|
||||
assertThat(received.getPayload().getContent(),
|
||||
equalTo(TestMailServer.MailServer.MailHandler.MESSAGE + "\r\n"));
|
||||
}
|
||||
}
|
||||
else {
|
||||
org.springframework.messaging.Message<?> received = channel.receive(10000);
|
||||
@@ -199,6 +229,12 @@ public class ImapMailReceiverTests {
|
||||
assertThat((String) received.getHeaders().get(MailHeaders.FROM), equalTo("Bar <bar@baz>"));
|
||||
assertThat(((String[]) received.getHeaders().get(MailHeaders.TO))[0], equalTo("Foo <foo@bar>"));
|
||||
assertThat((String) received.getHeaders().get(MailHeaders.SUBJECT), equalTo("Test Email"));
|
||||
if (simple) {
|
||||
assertThat(received.getPayload(), equalTo(TestMailServer.MailServer.MailHandler.BODY + "\r\n"));
|
||||
}
|
||||
else {
|
||||
assertThat(received.getPayload(), equalTo(TestMailServer.MailServer.MailHandler.MESSAGE + "\r\n"));
|
||||
}
|
||||
}
|
||||
assertNotNull(channel.receive(10000)); // new message after idle
|
||||
assertNull(channel.receive(10000)); // no new message after second and third idle
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
channel="channel"
|
||||
auto-startup="false"
|
||||
header-mapper="mapper"
|
||||
simple-content="true"
|
||||
embedded-parts-as-bytes="false"
|
||||
should-delete-messages="true"/>
|
||||
|
||||
|
||||
@@ -86,6 +86,7 @@ public class ImapIdleChannelAdapterParserTests {
|
||||
assertNull(adapterAccessor.getPropertyValue("adviceChain"));
|
||||
assertEquals(Boolean.FALSE, receiverAccessor.getPropertyValue("embeddedPartsAsBytes"));
|
||||
assertNotNull(receiverAccessor.getPropertyValue("headerMapper"));
|
||||
assertEquals(Boolean.TRUE, receiverAccessor.getPropertyValue("simpleContent"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -109,6 +110,7 @@ public class ImapIdleChannelAdapterParserTests {
|
||||
assertSame(context.getBean("errorChannel"), adapterAccessor.getPropertyValue("errorChannel"));
|
||||
assertEquals(Boolean.TRUE, receiverAccessor.getPropertyValue("embeddedPartsAsBytes"));
|
||||
assertNull(receiverAccessor.getPropertyValue("headerMapper"));
|
||||
assertEquals(Boolean.FALSE, receiverAccessor.getPropertyValue("simpleContent"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
<mail:inbound-channel-adapter id="imapShouldDeleteTrue"
|
||||
store-uri="imap:test" channel="testChannel" should-delete-messages="true"
|
||||
simple-content="true"
|
||||
auto-startup="false" />
|
||||
|
||||
<mail:inbound-channel-adapter id="imapShouldDeleteFalse"
|
||||
|
||||
@@ -105,16 +105,20 @@ public class InboundChannelAdapterParserTests {
|
||||
public void imapShouldDeleteTrue() {
|
||||
AbstractMailReceiver receiver = this.getReceiver("imapShouldDeleteTrue");
|
||||
assertEquals(ImapMailReceiver.class, receiver.getClass());
|
||||
Boolean value = (Boolean) new DirectFieldAccessor(receiver).getPropertyValue("shouldDeleteMessages");
|
||||
DirectFieldAccessor receiverAccessor = new DirectFieldAccessor(receiver);
|
||||
Boolean value = (Boolean) receiverAccessor.getPropertyValue("shouldDeleteMessages");
|
||||
assertTrue(value);
|
||||
assertEquals(Boolean.TRUE, receiverAccessor.getPropertyValue("simpleContent"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void imapShouldDeleteFalse() {
|
||||
AbstractMailReceiver receiver = this.getReceiver("imapShouldDeleteFalse");
|
||||
assertEquals(ImapMailReceiver.class, receiver.getClass());
|
||||
Boolean value = (Boolean) new DirectFieldAccessor(receiver).getPropertyValue("shouldDeleteMessages");
|
||||
DirectFieldAccessor receiverAccessor = new DirectFieldAccessor(receiver);
|
||||
Boolean value = (Boolean) receiverAccessor.getPropertyValue("shouldDeleteMessages");
|
||||
assertFalse(value);
|
||||
assertEquals(Boolean.FALSE, receiverAccessor.getPropertyValue("simpleContent"));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ public class Pop3Tests {
|
||||
assertEquals("Foo <foo@bar>", headers.get(MailHeaders.TO, String[].class)[0]);
|
||||
assertEquals("Bar <bar@baz>", headers.get(MailHeaders.FROM));
|
||||
assertEquals("Test Email", headers.get(MailHeaders.SUBJECT));
|
||||
assertEquals("foo\r\n", message.getPayload());
|
||||
assertEquals("foo\r\n\r\n", message.getPayload());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user