From 179fef4cbcb7bfc85c9472cd8c57e0546a5de71f Mon Sep 17 00:00:00 2001 From: Steve Burkett Date: Mon, 23 May 2011 14:28:23 -0700 Subject: [PATCH 1/2] 204, 304 must not have a body --- .gitignore | 3 +++ .idea/dictionaries/steveburkett.xml | 7 +++++++ lib/faraday/response.rb | 2 +- test/response_middleware_test.rb | 27 +++++++++++++++++++++++++++ 4 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 .idea/dictionaries/steveburkett.xml diff --git a/.gitignore b/.gitignore index bb8ebf79..5ca44ccf 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,9 @@ tmtags ## VIM *.swp +## RUBYMINE +.idea + ## PROJECT::GENERAL coverage rdoc diff --git a/.idea/dictionaries/steveburkett.xml b/.idea/dictionaries/steveburkett.xml new file mode 100644 index 00000000..fb2266ab --- /dev/null +++ b/.idea/dictionaries/steveburkett.xml @@ -0,0 +1,7 @@ + + + + upcaser + + + \ No newline at end of file diff --git a/lib/faraday/response.rb b/lib/faraday/response.rb index 276b85d9..921d1b3d 100644 --- a/lib/faraday/response.rb +++ b/lib/faraday/response.rb @@ -14,7 +14,7 @@ module Faraday # Calls the `parse` method if defined def on_complete(env) if respond_to? :parse - env[:body] = parse(env[:body]) + env[:body] = parse(env[:body]) unless [204,304].index env[:status] end end end diff --git a/test/response_middleware_test.rb b/test/response_middleware_test.rb index c811ef99..ff75232a 100644 --- a/test/response_middleware_test.rb +++ b/test/response_middleware_test.rb @@ -45,3 +45,30 @@ class ResponseMiddlewareTest < Faraday::TestCase assert_equal '', @conn.get('ok').body end end + +class ResponseNoBodyMiddleWareTest < Faraday::TestCase + def setup + @conn = Faraday.new do |b| + b.response :raise_error + b.adapter :test do |stub| + stub.get('not modified') { [304, nil, nil] } + stub.get('no content') { [204, nil, nil] } + end + end + @conn.builder.insert(0, NotCalled) + end + + class NotCalled < Faraday::Response::Middleware + def parse(body) + raise "this should not be called" + end + end + + def test_204 + assert_equal nil, @conn.get('no content').body + end + + def test_304 + assert_equal nil, @conn.get('not modified').body + end +end \ No newline at end of file From adcb73704a2347babecbea3226bbea0b77cabb2f Mon Sep 17 00:00:00 2001 From: Steve Burkett Date: Mon, 23 May 2011 14:35:26 -0700 Subject: [PATCH 2/2] remove the xml file --- .idea/dictionaries/steveburkett.xml | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 .idea/dictionaries/steveburkett.xml diff --git a/.idea/dictionaries/steveburkett.xml b/.idea/dictionaries/steveburkett.xml deleted file mode 100644 index fb2266ab..00000000 --- a/.idea/dictionaries/steveburkett.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - upcaser - - - \ No newline at end of file