package com.vaadin.tests.server;
import static org.junit.Assert.assertEquals;
import java.io.File;
import org.junit.Test;
import com.vaadin.util.FileTypeResolver;
public class FileTypeResolverTest {
private static final String FLASH_MIME_TYPE = "application/x-shockwave-flash";
private static final String TEXT_MIME_TYPE = "text/plain";
private static final String HTML_MIME_TYPE = "text/html";
@Test
public void testMimeTypes() {
File plainFlash = new File("MyFlash.swf");
File plainText = new File("/a/b/MyFlash.txt");
File plainHtml = new File("c:\\MyFlash.html");
// Flash
assertEquals(FileTypeResolver.getMIMEType(plainFlash.getAbsolutePath()),
FLASH_MIME_TYPE);
assertEquals(
FileTypeResolver.getMIMEType(
plainFlash.getAbsolutePath() + "?param1=value1"),
FLASH_MIME_TYPE);
assertEquals(FileTypeResolver.getMIMEType(
plainFlash.getAbsolutePath() + "?param1=value1¶m2=value2"),
FLASH_MIME_TYPE);
// Plain text
assertEquals(FileTypeResolver.getMIMEType(plainText.getAbsolutePath()),
TEXT_MIME_TYPE);
assertEquals(
FileTypeResolver.getMIMEType(
plainText.getAbsolutePath() + "?param1=value1"),
TEXT_MIME_TYPE);
assertEquals(FileTypeResolver.getMIMEType(
plainText.getAbsolutePath() + "?param1=value1¶m2=value2"),
TEXT_MIME_TYPE);
// Plain text
assertEquals(FileTypeResolver.getMIMEType(plainHtml.getAbsolutePath()),
HTML_MIME_TYPE);
assertEquals(
FileTypeResolver.getMIMEType(
plainHtml.getAbsolutePath() + "?param1=value1"),
HTML_MIME_TYPE);
assertEquals(FileTypeResolver.getMIMEType(
plainHtml.getAbsolutePath() + "?param1=value1¶m2=value2"),
HTML_MIME_TYPE);
// Filename missing
assertEquals(FileTypeResolver.DEFAULT_MIME_TYPE,
FileTypeResolver.getMIMEType(""));
assertEquals(FileTypeResolver.DEFAULT_MIME_TYPE,
FileTypeResolver.getMIMEType("?param1"));
}
@Test
public void testExtensionCase() {
assertEquals("image/jpeg", FileTypeResolver.getMIMEType("abc.jpg"));
assertEquals("image/jpeg", FileTypeResolver.getMIMEType("abc.jPg"));
assertEquals("image/jpeg", FileTypeResolver.getMIMEType("abc.JPG"));
assertEquals("image/jpeg", FileTypeResolver.getMIMEType("abc.JPEG"));
assertEquals("image/jpeg", FileTypeResolver.getMIMEType("abc.Jpeg"));
assertEquals("image/jpeg", FileTypeResolver.getMIMEType("abc.JPE"));
}
@Test
public void testCustomMimeType() {
assertEquals(FileTypeResolver.DEFAULT_MIME_TYPE,
FileTypeResolver.getMIMEType("vaadin.foo"));
FileTypeResolver.addExtension("foo", "Vaadin Foo/Bar");
FileTypeResolver.addExtension("FOO2", "Vaadin Foo/Bar2");
assertEquals("Vaadin Foo/Bar",
FileTypeResolver.getMIMEType("vaadin.foo"));
assertEquals("Vaadin Foo/Bar2",
FileTypeResolver.getMIMEType("vaadin.Foo2"));
}
}