From 66f8997671c41278a4045ca6c3e3a19c8175a7ed Mon Sep 17 00:00:00 2001 From: Javan Makhmali Date: Wed, 3 Sep 2014 11:16:37 -0400 Subject: Add support for Rack::ContentLength middelware --- actionpack/lib/action_dispatch/http/response.rb | 4 ++++ actionpack/test/dispatch/response_test.rb | 14 ++++++++++++++ 2 files changed, 18 insertions(+) (limited to 'actionpack') diff --git a/actionpack/lib/action_dispatch/http/response.rb b/actionpack/lib/action_dispatch/http/response.rb index a58e904c11..c5e18048da 100644 --- a/actionpack/lib/action_dispatch/http/response.rb +++ b/actionpack/lib/action_dispatch/http/response.rb @@ -380,6 +380,10 @@ module ActionDispatch # :nodoc: def to_path @response.stream.to_path end + + def to_ary + nil + end end def rack_response(status, header) diff --git a/actionpack/test/dispatch/response_test.rb b/actionpack/test/dispatch/response_test.rb index af188191e3..48342e252a 100644 --- a/actionpack/test/dispatch/response_test.rb +++ b/actionpack/test/dispatch/response_test.rb @@ -1,4 +1,6 @@ require 'abstract_unit' +require 'timeout' +require 'rack/content_length' class ResponseTest < ActiveSupport::TestCase def setup @@ -238,6 +240,18 @@ class ResponseTest < ActiveSupport::TestCase end end + test "compatibility with Rack::ContentLength" do + @response.body = 'Hello' + app = lambda { |env| @response.to_a } + env = Rack::MockRequest.env_for("/") + + status, headers, body = app.call(env) + assert_nil headers['Content-Length'] + + status, headers, body = Rack::ContentLength.new(app).call(env) + assert_equal '5', headers['Content-Length'] + end + test "implicit destructuring and Array conversion is deprecated" do response = ActionDispatch::Response.new(404, { 'Content-Type' => 'text/plain' }, ['Not Found']) -- cgit v1.2.3