Don't force iterating chunked (streamed) responses #30

Merged
pdf merged 2 commits from dont_mess_with_chunk_endcoded into master 2013-03-19 13:31:40 +00:00
2 changed files with 18 additions and 1 deletions
Showing only changes of commit 6b93954231 - Show all commits

View File

@ -59,7 +59,9 @@ module Rack
else
status, headers, body = result = @app.call(env)
if (headers['Content-Type'] and headers['Content-Type']['text/event-stream']) or headers['Transfer-Encoding'] == 'chunked'
if (headers['Content-Type'] and headers['Content-Type']['text/event-stream']) or
headers['Transfer-Encoding'] == 'chunked' or
headers['Content-Disposition'] =~ %r{^inline}
return result
end

View File

@ -94,6 +94,21 @@ describe Rack::LiveReload do
end
end
context 'inline disposition' do
let(:body) { [ '<head></head>' ] }
let(:ret) { [ 200, { 'Content-Disposition' => 'inline; filename=my_inlined_file' }, body ] }
before do
app.stubs(:call).with(env).returns(ret)
body.expects(:close).never
body.stubs(:respond_to?).with(:close).returns(true)
end
it 'should pass through' do
middleware.call(env).should == ret
end
end
context 'unknown Content-Type' do
let(:ret) { [ 200, {}, [ 'hey ho' ] ] }