diff --git a/lib/prerender_rails.rb b/lib/prerender_rails.rb index af264c9..e35d0c7 100644 --- a/lib/prerender_rails.rb +++ b/lib/prerender_rails.rb @@ -242,7 +242,10 @@ def get_prerender_service_url def build_rack_response_from_prerender(prerendered_response) - response = Rack::Response.new(prerendered_response.body, prerendered_response.code, prerendered_response) + headers = {} + prerendered_response.each_header { |key, value| headers[key] = value } + + response = Rack::Response.new(prerendered_response.body, prerendered_response.code, headers) @options[:build_rack_response_from_prerender].call(response, prerendered_response) if @options[:build_rack_response_from_prerender] diff --git a/prerender_rails.gemspec b/prerender_rails.gemspec index d42c40d..7a0c03f 100644 --- a/prerender_rails.gemspec +++ b/prerender_rails.gemspec @@ -15,10 +15,10 @@ Gem::Specification.new do |spec| spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) spec.require_paths = ["lib"] - spec.add_dependency 'rack', '~> 2.2.2' + spec.add_dependency 'rack', '>= 2.2', '< 4' spec.add_dependency 'activesupport', '>= 0' - spec.add_development_dependency "bundler", "~> 2.1.2" + spec.add_development_dependency "bundler", ">= 2.1" spec.add_development_dependency "rake" spec.add_development_dependency "webmock" end diff --git a/test/lib/prerender_rails.rb b/test/lib/prerender_rails.rb index 719b61e..b8c6023 100644 --- a/test/lib/prerender_rails.rb +++ b/test/lib/prerender_rails.rb @@ -21,7 +21,7 @@ assert_equal response[2], [""] assert_equal response[0], 301 - assert_equal( { 'location' => 'http://google.com'}, response[1] ) + assert_equal 'http://google.com', response[1]['location'] end @@ -156,7 +156,7 @@ assert_equal ["cached2"], response[2] assert_equal response[0], 200 - assert_equal( { 'test' => 'test2Header'}, response[1] ) + assert_equal 'test2Header', response[1]['test'] end it "should return a prerendered response stripped of hop-by-hop headers" do @@ -177,7 +177,10 @@ assert_equal response[2], [""] assert_equal response[0], 401 - assert_equal( { 'content-type' => 'text/html', 'x-drop-test' => 'ShouldAlwaysHappen'}, response[1] ) + assert_equal 'text/html', response[1]['content-type'] + assert_equal 'ShouldAlwaysHappen', response[1]['x-drop-test'] + assert_nil response[1]['transfer-encoding'] + assert_nil response[1]['connection'] end it "should return a prerendered response stripped of custom-defined hop-by-hop headers" do @@ -193,7 +196,9 @@ assert_equal response[2], [""] assert_equal response[0], 200 - assert_equal( { 'content-type' => 'text/html' }, response[1] ) + assert_equal 'text/html', response[1]['content-type'] + assert_nil response[1]['x-drop-test'] + assert_nil response[1]['connection'] end describe '#buildApiUrl' do