From 0f1a1159bced73791ecfacbd1828d08253181483 Mon Sep 17 00:00:00 2001 From: Ripta Pasay Date: Thu, 17 Jul 2008 16:14:24 -0400 Subject: [PATCH] Case-insensitize looking up mime types by extension --- actionpack/lib/action_controller/mime_type.rb | 4 ++-- actionpack/test/controller/mime_type_test.rb | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/actionpack/lib/action_controller/mime_type.rb b/actionpack/lib/action_controller/mime_type.rb index a7215e6..6918736 100644 --- a/actionpack/lib/action_controller/mime_type.rb +++ b/actionpack/lib/action_controller/mime_type.rb @@ -53,7 +53,7 @@ module Mime end def lookup_by_extension(extension) - EXTENSION_LOOKUP[extension] + EXTENSION_LOOKUP[extension.to_s.downcase] end # Registers an alias that's not used on mime type lookup, but can be referenced directly. Especially useful for @@ -68,7 +68,7 @@ module Mime SET << Mime.const_get(symbol.to_s.upcase) ([string] + mime_type_synonyms).each { |string| LOOKUP[string] = SET.last } unless skip_lookup - ([symbol.to_s] + extension_synonyms).each { |ext| EXTENSION_LOOKUP[ext] = SET.last } + ([symbol.to_s] + extension_synonyms).each { |ext| EXTENSION_LOOKUP[ext.to_s.downcase] = SET.last } end def parse(accept_header) diff --git a/actionpack/test/controller/mime_type_test.rb b/actionpack/test/controller/mime_type_test.rb index f16a3c6..fa4e672 100644 --- a/actionpack/test/controller/mime_type_test.rb +++ b/actionpack/test/controller/mime_type_test.rb @@ -81,4 +81,14 @@ class MimeTypeTest < Test::Unit::TestCase assert verified.all? { |type| Mime.const_get(type.to_s.upcase).verify_request? }, "Not all Mime Types are verified: #{verified.inspect}" assert unverified.all? { |type| !Mime.const_get(type.to_s.upcase).verify_request? }, "Some Mime Types are verified: #{unverified.inspect}" end + + def test_lookup_mime_type_by_extension_is_case_insensitive + Mime::Type.register("image/jpeg", :jpg) + assert_nothing_raised do + assert_equal Mime::Type.lookup_by_extension("jpg"), Mime::Type.lookup_by_extension("JPG") + end + ensure + Mime.module_eval { remove_const :JPG if const_defined?(:JPG) } + end + end -- 1.5.6.2