diff --git a/models/site.rb b/models/site.rb index 9b26a8ab..fda6cace 100644 --- a/models/site.rb +++ b/models/site.rb @@ -493,7 +493,7 @@ class Site < Sequel::Model # extname = uploaded_file[:filename] #end - unless (Site::VALID_MIME_TYPES.include?(mime_type) || mime_type =~ /text/) && + unless (Site::VALID_MIME_TYPES.include?(mime_type) || mime_type =~ /text/ || mime_type =~ /inode\/x-empty/) && Site::VALID_EXTENSIONS.include?(extname.sub(/^./, '').downcase) return false end diff --git a/tests/site_file_tests.rb b/tests/site_file_tests.rb index d0e8d8da..33b9b945 100644 --- a/tests/site_file_tests.rb +++ b/tests/site_file_tests.rb @@ -48,6 +48,11 @@ describe 'site_files' do end describe 'upload' do + it 'works with empty files' do + upload 'files[]' => Rack::Test::UploadedFile.new('./tests/files/empty.js', 'text/javascript') + File.exists?(@site.files_path('empty.js')).must_equal true + end + it 'manages files with invalid UTF8' do upload 'files[]' => Rack::Test::UploadedFile.new('./tests/files/invalidutf8.html', 'text/html') File.exists?(@site.files_path('invalidutf8.html')).must_equal true