From 0647748b731757d0bfdb0dee98f154323dcbd507 Mon Sep 17 00:00:00 2001 From: Vaibhav Date: Tue, 27 Jun 2017 10:09:37 +0530 Subject: [PATCH] Case Sensitive Issue In Regex --- lib/carrierwave/uploader/extension_whitelist.rb | 3 ++- spec/uploader/extension_whitelist_spec.rb | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/carrierwave/uploader/extension_whitelist.rb b/lib/carrierwave/uploader/extension_whitelist.rb index 64f0d7110..25723e627 100644 --- a/lib/carrierwave/uploader/extension_whitelist.rb +++ b/lib/carrierwave/uploader/extension_whitelist.rb @@ -43,7 +43,8 @@ def check_extension_whitelist!(new_file) end def whitelisted_extension?(extension) - Array(extension_whitelist).any? { |item| extension =~ /\A#{item}\z/i } + downcase_extension = extension.downcase + Array(extension_whitelist).any? { |item| downcase_extension =~ /\A#{item}\z/i } end end # ExtensionWhitelist diff --git a/spec/uploader/extension_whitelist_spec.rb b/spec/uploader/extension_whitelist_spec.rb index 04fbac569..955073312 100644 --- a/spec/uploader/extension_whitelist_spec.rb +++ b/spec/uploader/extension_whitelist_spec.rb @@ -82,6 +82,14 @@ @uploader.cache!(File.open(file_path('test.jpeg'))) }).not_to raise_error end + + it "accepts extensions as regular expressions in a case insensitive manner" do + + allow(@uploader).to receive(:extension_whitelist).and_return([/jpe?g/, 'gif', 'png']) + expect(running { + @uploader.cache!(File.open(file_path('case.JPG'))) + }).not_to raise_error + end end context "when the whitelist is a single value" do