You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

FileTypeResolverTest.java 3.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package com.vaadin.tests.server;
  2. import static org.junit.Assert.assertEquals;
  3. import java.io.File;
  4. import org.junit.Test;
  5. import com.vaadin.util.FileTypeResolver;
  6. public class FileTypeResolverTest {
  7. private static final String FLASH_MIME_TYPE = "application/x-shockwave-flash";
  8. private static final String TEXT_MIME_TYPE = "text/plain";
  9. private static final String HTML_MIME_TYPE = "text/html";
  10. @Test
  11. public void testMimeTypes() {
  12. File plainFlash = new File("MyFlash.swf");
  13. File plainText = new File("/a/b/MyFlash.txt");
  14. File plainHtml = new File("c:\\MyFlash.html");
  15. // Flash
  16. assertEquals(FileTypeResolver.getMIMEType(plainFlash.getAbsolutePath()),
  17. FLASH_MIME_TYPE);
  18. assertEquals(
  19. FileTypeResolver.getMIMEType(
  20. plainFlash.getAbsolutePath() + "?param1=value1"),
  21. FLASH_MIME_TYPE);
  22. assertEquals(FileTypeResolver.getMIMEType(
  23. plainFlash.getAbsolutePath() + "?param1=value1&param2=value2"),
  24. FLASH_MIME_TYPE);
  25. // Plain text
  26. assertEquals(FileTypeResolver.getMIMEType(plainText.getAbsolutePath()),
  27. TEXT_MIME_TYPE);
  28. assertEquals(
  29. FileTypeResolver.getMIMEType(
  30. plainText.getAbsolutePath() + "?param1=value1"),
  31. TEXT_MIME_TYPE);
  32. assertEquals(FileTypeResolver.getMIMEType(
  33. plainText.getAbsolutePath() + "?param1=value1&param2=value2"),
  34. TEXT_MIME_TYPE);
  35. // Plain text
  36. assertEquals(FileTypeResolver.getMIMEType(plainHtml.getAbsolutePath()),
  37. HTML_MIME_TYPE);
  38. assertEquals(
  39. FileTypeResolver.getMIMEType(
  40. plainHtml.getAbsolutePath() + "?param1=value1"),
  41. HTML_MIME_TYPE);
  42. assertEquals(FileTypeResolver.getMIMEType(
  43. plainHtml.getAbsolutePath() + "?param1=value1&param2=value2"),
  44. HTML_MIME_TYPE);
  45. // Filename missing
  46. assertEquals(FileTypeResolver.DEFAULT_MIME_TYPE,
  47. FileTypeResolver.getMIMEType(""));
  48. assertEquals(FileTypeResolver.DEFAULT_MIME_TYPE,
  49. FileTypeResolver.getMIMEType("?param1"));
  50. }
  51. @Test
  52. public void testExtensionCase() {
  53. assertEquals("image/jpeg", FileTypeResolver.getMIMEType("abc.jpg"));
  54. assertEquals("image/jpeg", FileTypeResolver.getMIMEType("abc.jPg"));
  55. assertEquals("image/jpeg", FileTypeResolver.getMIMEType("abc.JPG"));
  56. assertEquals("image/jpeg", FileTypeResolver.getMIMEType("abc.JPEG"));
  57. assertEquals("image/jpeg", FileTypeResolver.getMIMEType("abc.Jpeg"));
  58. assertEquals("image/jpeg", FileTypeResolver.getMIMEType("abc.JPE"));
  59. }
  60. @Test
  61. public void testCustomMimeType() {
  62. assertEquals(FileTypeResolver.DEFAULT_MIME_TYPE,
  63. FileTypeResolver.getMIMEType("vaadin.foo"));
  64. FileTypeResolver.addExtension("foo", "Vaadin Foo/Bar");
  65. FileTypeResolver.addExtension("FOO2", "Vaadin Foo/Bar2");
  66. assertEquals("Vaadin Foo/Bar",
  67. FileTypeResolver.getMIMEType("vaadin.foo"));
  68. assertEquals("Vaadin Foo/Bar2",
  69. FileTypeResolver.getMIMEType("vaadin.Foo2"));
  70. }
  71. }