summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorTony Mantler <nicoya@google.com>2014-05-21 10:25:08 -0700
committerTony Mantler <nicoya@google.com>2014-05-21 10:25:08 -0700
commit5a93b8f7c6e25eee5b3d84330576ebbfd7472fab (patch)
tree2e8b5a8a314c9d5bdaee672c1be285dcee2be02d /tests
parent2fbd8c269c9e0c74b120e9d2ec498b0620b67c84 (diff)
downloadandroid_packages_apps_Email-5a93b8f7c6e25eee5b3d84330576ebbfd7472fab.tar.gz
android_packages_apps_Email-5a93b8f7c6e25eee5b3d84330576ebbfd7472fab.tar.bz2
android_packages_apps_Email-5a93b8f7c6e25eee5b3d84330576ebbfd7472fab.zip
Test encode/decode of attachments
b/15089448 Change-Id: Ifd2afcfb36c9820c5d64ebbcc3230603b2a27089
Diffstat (limited to 'tests')
-rw-r--r--tests/src/com/android/email/LegacyConversionsTest.java88
1 files changed, 88 insertions, 0 deletions
diff --git a/tests/src/com/android/email/LegacyConversionsTest.java b/tests/src/com/android/email/LegacyConversionsTest.java
index d3e7dcd6a..1656f4b3d 100644
--- a/tests/src/com/android/email/LegacyConversionsTest.java
+++ b/tests/src/com/android/email/LegacyConversionsTest.java
@@ -16,23 +16,41 @@
package com.android.email;
+import android.content.Context;
import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+import com.android.emailcommon.TempDirectory;
import com.android.emailcommon.internet.MimeBodyPart;
import com.android.emailcommon.internet.MimeMessage;
+import com.android.emailcommon.internet.MimeMultipart;
import com.android.emailcommon.mail.Address;
import com.android.emailcommon.mail.Message.RecipientType;
import com.android.emailcommon.mail.MessagingException;
+import com.android.emailcommon.mail.Multipart;
import com.android.emailcommon.mail.Part;
import com.android.emailcommon.provider.EmailContent;
+import com.android.emailcommon.provider.EmailContent.Attachment;
import com.android.emailcommon.utility.ConversionUtilities;
import com.android.emailcommon.utility.ConversionUtilities.BodyFieldData;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Date;
+@SmallTest
public class LegacyConversionsTest extends AndroidTestCase {
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ TempDirectory.setTempDirectory(getContext());
+ }
+
/**
* Test basic fields conversion from Store message to Provider message.
*/
@@ -172,4 +190,74 @@ public class LegacyConversionsTest extends AndroidTestCase {
final BodyFieldData data = ConversionUtilities.parseBodyFields(viewables);
assertNull(data.textContent);
}
+
+ /**
+ * Test adding an attachment to a message, and then parsing it back out.
+ * @throws MessagingException
+ */
+ public void testAttachmentRoundTrip() throws Exception {
+ final Context context = getContext();
+ final MimeMultipart mp = new MimeMultipart();
+ mp.setSubType("mixed");
+
+ final long size;
+
+ final File tempDir = context.getCacheDir();
+ if (!tempDir.isDirectory() && !tempDir.mkdirs()) {
+ fail("Could not create temporary directory");
+ }
+
+ final File tempAttachmentFile = File.createTempFile("testAttachmentRoundTrip", ".txt",
+ tempDir);
+
+ try {
+ final OutputStream attOut = new FileOutputStream(tempAttachmentFile);
+ try {
+ attOut.write("TestData".getBytes());
+ } finally {
+ attOut.close();
+ }
+ size = tempAttachmentFile.length();
+ final InputStream attIn = new FileInputStream(tempAttachmentFile);
+ LegacyConversions.addAttachmentPart(mp, "text/plain", size, "test.txt",
+ "testContentId", attIn);
+ } finally {
+ if (!tempAttachmentFile.delete()) {
+ fail("Setup failure: Could not clean up temp file");
+ }
+ }
+
+ final MimeMessage outMessage = new MimeMessage();
+ outMessage.setBody(mp);
+
+ final MimeMessage inMessage;
+
+ final File tempBodyFile = File.createTempFile("testAttachmentRoundTrip", ".eml",
+ context.getCacheDir());
+ try {
+ final OutputStream bodyOut = new FileOutputStream(tempBodyFile);
+ try {
+ outMessage.writeTo(bodyOut);
+ } finally {
+ bodyOut.close();
+ }
+ final InputStream bodyIn = new FileInputStream(tempBodyFile);
+ try {
+ inMessage = new MimeMessage(bodyIn);
+ } finally {
+ bodyIn.close();
+ }
+ } finally {
+ if (!tempBodyFile.delete()) {
+ fail("Setup failure: Could not clean up temp file");
+ }
+ }
+ final Multipart inBody = (Multipart) inMessage.getBody();
+ final Part attPart = inBody.getBodyPart(0);
+ final Attachment att = LegacyConversions.mimePartToAttachment(attPart);
+ assertEquals(att.mFileName, "test.txt");
+ assertEquals(att.mMimeType, "text/plain");
+ assertEquals(att.mSize, size);
+ assertEquals(att.mContentId, "testContentId");
+ }
}