diff options
| author | Stormwind <stormwind@stormwinds-page.de> | 2012-11-23 21:24:37 +0100 | 
|---|---|---|
| committer | Stormwind <stormwind@stormwinds-page.de> | 2012-11-23 21:24:37 +0100 | 
| commit | bffdca6cb18280442996e0c753afe14ca331cad5 (patch) | |
| tree | c3b357080d5821b6d06a1906f2f471d900eec68e | |
| parent | fea8ac2bbd04fd4abea929fef1b7e8ac305b4ca1 (diff) | |
Delete Content-Length. Conten-Type and body on status 204
Should work, but somehow it doesn't...
| -rw-r--r-- | lib/zero/response.rb | 16 | ||||
| -rw-r--r-- | spec/unit/response/response_spec.rb | 11 | 
2 files changed, 22 insertions, 5 deletions
| diff --git a/lib/zero/response.rb b/lib/zero/response.rb index fefa320..c86e5df 100644 --- a/lib/zero/response.rb +++ b/lib/zero/response.rb @@ -30,12 +30,18 @@ module Zero      #      # @return [Array]      # -    def to_a() +    def to_a        # TODO Remove content length and body, on certain status codes -      # Set content length, if not already set -      content_length unless header.has_key? 'Content-Length' -      # Set content type, if not already set -      content_type 'text/html' unless header.has_key? 'Content-Type' +      if status == 204 +        header.delete('Content-Length') +        header.delete('Content-Type') +        body = [] +      else +        # Set content length, if not already set +        content_length unless header.has_key? 'Content-Length' +        # Set content type, if not already set +        content_type 'text/html' unless header.has_key? 'Content-Type' +      end        [status, header, body]      end diff --git a/spec/unit/response/response_spec.rb b/spec/unit/response/response_spec.rb index 18612ce..7a02ced 100644 --- a/spec/unit/response/response_spec.rb +++ b/spec/unit/response/response_spec.rb @@ -45,6 +45,17 @@ describe Zero::Response do        value[1]['Content-Type'].should eq('text/html')  # Headers      end + +    it "removes Content-Type, Content-Length and body on status code 204" do +      subject.body.push '"foobar"' +      subject.content_type 'application/json' +      subject.header['Content-Length'] = 8 + +      subject.status = 204 +      value = subject.to_a + +      value[1].should eq({})  # Headers +    end    end    describe '#status' do | 
