1afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein// Copyright 2011 Google Inc. All Rights Reserved.
2afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein
3afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sappersteinpackage com.android.mail.utils;
4afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein
5afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sappersteinimport android.test.AndroidTestCase;
6afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sappersteinimport android.test.suitebuilder.annotation.SmallTest;
7afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein
8afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein@SmallTest
9afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sappersteinpublic class MimeTypeTest extends AndroidTestCase {
10afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein
11afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein    private static final String TEST_MIME_TYPE = "test/mimetype";
12afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein    public void testInferMimeType() {
13afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein        // eml file
14afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein        assertEquals(MimeType.EML_ATTACHMENT_CONTENT_TYPE,
15afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein                MimeType.inferMimeType("filename.eml", MimeType.GENERIC_MIMETYPE));
16afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein
17afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein        // mpeg4 video files
18afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein        assertEquals("video/mp4", MimeType.inferMimeType("video.mp4", MimeType.GENERIC_MIMETYPE));
19afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein
20afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein        // file with no extension, should return the mimetype that was specified
21afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein        assertEquals(TEST_MIME_TYPE, MimeType.inferMimeType("filename", TEST_MIME_TYPE));
22afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein
23afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein        // file with extension, and empty mimetype, where an mimetype can be derived
24afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein        // from the extension.
25afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein        assertEquals("video/mp4", MimeType.inferMimeType("video.mp4", ""));
26afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein
27afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein        // file with extension, and empty mimetype, where an mimetype can not be derived
28afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein        // from the extension.
29afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein        assertEquals(MimeType.GENERIC_MIMETYPE, MimeType.inferMimeType("video.foo", ""));
30afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein
31afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein        // rtf files, with a generic mimetype
32afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein        assertEquals("text/rtf", MimeType.inferMimeType("filename.rtf", MimeType.GENERIC_MIMETYPE));
33afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein
34afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein        // rtf files, with a specified mimetype
35afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein        assertEquals("application/rtf", MimeType.inferMimeType("filename.rtf", "application/rtf"));
36afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein    }
37afb304ce8a5620449ff7a5c8813ebe8f7ab84af6Andrew Sapperstein}
38