]> source.dussan.org Git - vaadin-framework.git/commitdiff
#6175 FileTypeResolver doesn't resolve by extension ignoring case
authorArtur Signell <artur.signell@itmill.com>
Thu, 13 Jan 2011 16:18:01 +0000 (16:18 +0000)
committerArtur Signell <artur.signell@itmill.com>
Thu, 13 Jan 2011 16:18:01 +0000 (16:18 +0000)
svn changeset:16878/svn branch:6.5

src/com/vaadin/service/FileTypeResolver.java
tests/src/com/vaadin/tests/server/TestFileTypeResolver.java

index 5603a722d6be86168d6feef5063a4729822411cb..7e3dda29a3582fea056c28fc3e61fe9fbc283f1f 100644 (file)
@@ -193,7 +193,7 @@ public class FileTypeResolver implements Serializable {
             + "x-world/x-vrml                                  vrm vrml wrl";
 
     /**
-     * File extension to MIME type mapping.
+     * File extension to MIME type mapping. All extensions are in lower case.
      */
     static private Hashtable<String, String> extToMIMEMap = new Hashtable<String, String>();
 
@@ -255,7 +255,7 @@ public class FileTypeResolver implements Serializable {
             }
 
             // Return type from extension map, if found
-            final String type = extToMIMEMap.get(ext);
+            final String type = extToMIMEMap.get(ext.toLowerCase());
             if (type != null) {
                 return type;
             }
@@ -343,7 +343,7 @@ public class FileTypeResolver implements Serializable {
      *            the new mime-type for <code>extension</code>.
      */
     public static void addExtension(String extension, String MIMEType) {
-        extToMIMEMap.put(extension, MIMEType);
+        extToMIMEMap.put(extension.toLowerCase(), MIMEType);
     }
 
     /**
index 03b37470f7462f9e3b6a5e8d15f08cc5d44edf7b..8a368ead53c2d8fd8c59810d76294f8a399de6e5 100644 (file)
@@ -55,4 +55,25 @@ public class TestFileTypeResolver extends TestCase {
                 FileTypeResolver.getMIMEType("?param1"));
 
     }
+
+    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"));
+    }
+
+    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"));
+    }
 }