From 44f6a2479b5628c9d0b78da09590902d044a7616 Mon Sep 17 00:00:00 2001 From: Jan Berkel Date: Tue, 16 Dec 2014 10:56:13 +0100 Subject: [PATCH] Remove reference to K9#hideTimeZone() + test --- src/com/fsck/k9/activity/MessageCompose.java | 2 +- .../k9/controller/MessagingController.java | 2 +- src/com/fsck/k9/mail/Message.java | 2 +- .../fsck/k9/mail/internet/MimeMessage.java | 9 +++--- src/com/fsck/k9/mailstore/LocalMessage.java | 2 +- tests/src/com/fsck/k9/mail/MessageTest.java | 32 +++++++++++++++++-- .../mailstore/LocalMessageExtractorTest.java | 2 +- 7 files changed, 39 insertions(+), 12 deletions(-) diff --git a/src/com/fsck/k9/activity/MessageCompose.java b/src/com/fsck/k9/activity/MessageCompose.java index db2ee4e67..ff8cbc28d 100644 --- a/src/com/fsck/k9/activity/MessageCompose.java +++ b/src/com/fsck/k9/activity/MessageCompose.java @@ -1336,7 +1336,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, */ private MimeMessage createMessage(boolean isDraft) throws MessagingException { MimeMessage message = new MimeMessage(); - message.addSentDate(new Date()); + message.addSentDate(new Date(), K9.hideTimeZone()); Address from = new Address(mIdentity.getEmail(), mIdentity.getName()); message.setFrom(from); message.setRecipients(RecipientType.TO, getAddresses(mToView)); diff --git a/src/com/fsck/k9/controller/MessagingController.java b/src/com/fsck/k9/controller/MessagingController.java index b10d68c07..103808d85 100644 --- a/src/com/fsck/k9/controller/MessagingController.java +++ b/src/com/fsck/k9/controller/MessagingController.java @@ -2723,7 +2723,7 @@ public class MessagingController implements Runnable { long nowTime = System.currentTimeMillis(); Date nowDate = new Date(nowTime); message.setInternalDate(nowDate); - message.addSentDate(nowDate); + message.addSentDate(nowDate, K9.hideTimeZone()); message.setFrom(new Address(account.getEmail(), "K9mail internal")); localFolder.appendMessages(Collections.singletonList(message)); diff --git a/src/com/fsck/k9/mail/Message.java b/src/com/fsck/k9/mail/Message.java index ecc35f193..7815d16c9 100644 --- a/src/com/fsck/k9/mail/Message.java +++ b/src/com/fsck/k9/mail/Message.java @@ -87,7 +87,7 @@ public abstract class Message implements Part, CompositeBody { public abstract Date getSentDate(); - public abstract void setSentDate(Date sentDate) throws MessagingException; + public abstract void setSentDate(Date sentDate, boolean hideTimeZone) throws MessagingException; public abstract Address[] getRecipients(RecipientType type) throws MessagingException; diff --git a/src/com/fsck/k9/mail/internet/MimeMessage.java b/src/com/fsck/k9/mail/internet/MimeMessage.java index c58a46080..eff4ffa2e 100644 --- a/src/com/fsck/k9/mail/internet/MimeMessage.java +++ b/src/com/fsck/k9/mail/internet/MimeMessage.java @@ -33,7 +33,6 @@ import com.fsck.k9.mail.Message; import com.fsck.k9.mail.MessagingException; import com.fsck.k9.mail.Multipart; import com.fsck.k9.mail.Part; -import com.fsck.k9.K9; /** * An implementation of Message that stores all of it's metadata in RFC 822 and @@ -137,12 +136,12 @@ public class MimeMessage extends Message { * @param sentDate * @throws com.fsck.k9.mail.MessagingException */ - public void addSentDate(Date sentDate) throws MessagingException { + public void addSentDate(Date sentDate, boolean hideTimeZone) throws MessagingException { if (mDateFormat == null) { mDateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.US); } - if (K9.hideTimeZone()) { + if (hideTimeZone) { mDateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); } @@ -151,9 +150,9 @@ public class MimeMessage extends Message { } @Override - public void setSentDate(Date sentDate) throws MessagingException { + public void setSentDate(Date sentDate, boolean hideTimeZone) throws MessagingException { removeHeader("Date"); - addSentDate(sentDate); + addSentDate(sentDate, hideTimeZone); } public void setInternalSentDate(Date sentDate) { diff --git a/src/com/fsck/k9/mailstore/LocalMessage.java b/src/com/fsck/k9/mailstore/LocalMessage.java index 75365d922..ca28ce812 100644 --- a/src/com/fsck/k9/mailstore/LocalMessage.java +++ b/src/com/fsck/k9/mailstore/LocalMessage.java @@ -157,7 +157,7 @@ public class LocalMessage extends MimeMessage { } super.setReplyTo(mReplyTo); - super.setSentDate(this.getSentDate()); + super.setSentDate(this.getSentDate(), K9.hideTimeZone()); super.setRecipients(RecipientType.TO, mTo); super.setRecipients(RecipientType.CC, mCc); super.setRecipients(RecipientType.BCC, mBcc); diff --git a/tests/src/com/fsck/k9/mail/MessageTest.java b/tests/src/com/fsck/k9/mail/MessageTest.java index 1fabfc534..70d771df4 100644 --- a/tests/src/com/fsck/k9/mail/MessageTest.java +++ b/tests/src/com/fsck/k9/mail/MessageTest.java @@ -5,6 +5,9 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.util.Date; +import java.util.TimeZone; + import org.apache.commons.io.IOUtils; import org.apache.james.mime4j.codec.Base64InputStream; import org.apache.james.mime4j.util.MimeUtil; @@ -22,6 +25,11 @@ import com.fsck.k9.mail.internet.MimeMultipart; import com.fsck.k9.mail.internet.TextBody; public class MessageTest extends AndroidTestCase { + @Override + public void setUp() throws Exception { + super.setUp(); + TimeZone.setDefault(TimeZone.getTimeZone("Asia/Tokyo")); + } private static final String EIGHT_BIT_RESULT = "From: from@example.com\r\n" @@ -263,6 +271,28 @@ public class MessageTest extends AndroidTestCase { super(); } + public void testSetSendDateSetsSentDate() throws Exception { + Message message = sampleMessage(); + final int milliseconds = 0; + Date date = new Date(milliseconds); + message.setSentDate(date, false); + Date sentDate = message.getSentDate(); + assertNotNull(sentDate); + assertEquals(milliseconds, sentDate.getTime()); + } + + public void testSetSendDateFormatsHeaderCorrectlyWithCurrentTimeZone() throws Exception { + Message message = sampleMessage(); + message.setSentDate(new Date(0), false); + assertEquals("Thu, 01 Jan 1970 09:00:00 +0900", message.getHeader("Date")[0]); + } + + public void testSetSendDateFormatsHeaderCorrectlyWithoutTimeZone() throws Exception { + Message message = sampleMessage(); + message.setSentDate(new Date(0), true); + assertEquals("Thu, 01 Jan 1970 00:00:00 +0000", message.getHeader("Date")[0]); + } + public void testMessage() throws MessagingException, IOException { MimeMessage message; ByteArrayOutputStream out; @@ -374,7 +404,5 @@ public class MessageTest extends AndroidTestCase { sb.append(Integer.toString(mMimeBoundary++)); return sb.toString(); } - } - } diff --git a/tests/src/com/fsck/k9/mailstore/LocalMessageExtractorTest.java b/tests/src/com/fsck/k9/mailstore/LocalMessageExtractorTest.java index 2fc007caf..a6b417fa5 100644 --- a/tests/src/com/fsck/k9/mailstore/LocalMessageExtractorTest.java +++ b/tests/src/com/fsck/k9/mailstore/LocalMessageExtractorTest.java @@ -120,7 +120,7 @@ public class LocalMessageExtractorTest extends AndroidTestCase { // Create message/rfc822 body MimeMessage innerMessage = new MimeMessage(); - innerMessage.addSentDate(new Date(112, 02, 17)); + innerMessage.addSentDate(new Date(112, 02, 17), false); innerMessage.setRecipients(RecipientType.TO, new Address[] { new Address("to@example.com") }); innerMessage.setSubject("Subject"); innerMessage.setFrom(new Address("from@example.com"));