From ab4e7256bb3899d9fd950e26215ddc27a8331b8d Mon Sep 17 00:00:00 2001 From: Enric Lluelles Date: Mon, 23 Jan 2012 20:51:08 +0100 Subject: [PATCH 1/2] Added failing test --- spec/rack/livereload_spec.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/spec/rack/livereload_spec.rb b/spec/rack/livereload_spec.rb index 96d1cba..12fd1b9 100644 --- a/spec/rack/livereload_spec.rb +++ b/spec/rack/livereload_spec.rb @@ -53,6 +53,18 @@ describe Rack::LiveReload do end end + context 'unknown Content-Type' do + let(:ret) { [ 200, {}, [ 'hey ho' ] ] } + + before do + app.stubs(:call).with(env).returns(ret) + end + + it 'should not break' do + middleware.call(env).should_not raise_error(NoMethodError, /You have a nil object/) + end + end + context 'text/html' do before do app.stubs(:call).with(env).returns([ 200, { 'Content-Type' => 'text/html', 'Content-Length' => 0 }, [ '' ] ]) -- 2.40.1 From 90b9a75b35bea38967734b7ac56b21b5b5caf746 Mon Sep 17 00:00:00 2001 From: Enric Lluelles Date: Mon, 23 Jan 2012 20:51:59 +0100 Subject: [PATCH 2/2] Check that the content-type header is there first --- lib/rack/livereload.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rack/livereload.rb b/lib/rack/livereload.rb index bfba052..3de003d 100644 --- a/lib/rack/livereload.rb +++ b/lib/rack/livereload.rb @@ -50,7 +50,7 @@ module Rack status, headers, body = @app.call(env) if !ignored?(env['PATH_INFO']) && !bad_browser?(env['HTTP_USER_AGENT']) - if headers['Content-Type'][%r{text/html}] + if headers['Content-Type'] && headers['Content-Type'][%r{text/html}] content_length = 0 body.each do |line| -- 2.40.1