From 9b46f693819008f16cfe319e3dbe7f9d67cd2083 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 25 Feb 2007 20:16:58 +0000 Subject: Allow send_file/send_data to use a registered mime type as the :type parameter #7620 [jonathan] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6233 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/CHANGELOG | 2 ++ actionpack/lib/action_controller/streaming.rb | 2 +- actionpack/test/controller/send_file_test.rb | 6 ++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 1767443f12..59a3ab413e 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Allow send_file/send_data to use a registered mime type as the :type parameter #7620 [jonathan] + * Allow routing requirements on map.resource(s) #7633 [quixoten]. Example: map.resources :network_interfaces, :requirements => { :id => /^\d+\.\d+\.\d+\.\d+$/ } diff --git a/actionpack/lib/action_controller/streaming.rb b/actionpack/lib/action_controller/streaming.rb index f82d7cf397..2e934067ac 100644 --- a/actionpack/lib/action_controller/streaming.rb +++ b/actionpack/lib/action_controller/streaming.rb @@ -124,7 +124,7 @@ module ActionController #:nodoc: headers.update( 'Content-Length' => options[:length], - 'Content-Type' => options[:type].strip, # fixes a problem with extra '\r' with some browsers + 'Content-Type' => options[:type].to_s.strip, # fixes a problem with extra '\r' with some browsers 'Content-Disposition' => disposition, 'Content-Transfer-Encoding' => 'binary' ) diff --git a/actionpack/test/controller/send_file_test.rb b/actionpack/test/controller/send_file_test.rb index 86f83d4539..2d876c1bb0 100644 --- a/actionpack/test/controller/send_file_test.rb +++ b/actionpack/test/controller/send_file_test.rb @@ -26,6 +26,8 @@ SendFileController.view_paths = [ File.dirname(__FILE__) + "/../fixtures/" ] class SendFileTest < Test::Unit::TestCase include TestFileUtils + Mime::Type.register "image/png", :png unless defined? Mime::PNG + def setup @controller = SendFileController.new @request = ActionController::TestRequest.new @@ -83,7 +85,7 @@ class SendFileTest < Test::Unit::TestCase def test_send_file_headers! options = { :length => 1, - :type => 'type', + :type => Mime::PNG, :disposition => 'disposition', :filename => 'filename' } @@ -98,7 +100,7 @@ class SendFileTest < Test::Unit::TestCase h = @controller.headers assert_equal 1, h['Content-Length'] - assert_equal 'type', h['Content-Type'] + assert_equal 'image/png', h['Content-Type'] assert_equal 'disposition; filename="filename"', h['Content-Disposition'] assert_equal 'binary', h['Content-Transfer-Encoding'] -- cgit v1.2.3