diff --git a/lib/zero/response.rb b/lib/zero/response.rb index 2660924..eec4559 100644 --- a/lib/zero/response.rb +++ b/lib/zero/response.rb @@ -32,8 +32,8 @@ module Zero # def to_a() # TODO Remove content length and body, on certain status codes - # TODO Set content length, if not already set - content_length + # Set content length, if not already set + content_length unless header.has_key? 'Content-Length' # TODO Set content type, if not already set [status, header, body] diff --git a/spec/unit/response/response_spec.rb b/spec/unit/response/response_spec.rb index 9f6a3a0..b6428fc 100644 --- a/spec/unit/response/response_spec.rb +++ b/spec/unit/response/response_spec.rb @@ -19,12 +19,19 @@ describe Zero::Response do end it "returns the content length in the header" do - subject.body = ['foobar'] - + subject.body = ['foobar'] value = subject.to_a value[1].should eq({'Content-Length' => 6}) # Headers end + + it "does not fix the Content-Length, if it's already set" do + subject.body = ['foobar'] + subject.header = {'Content-Length' => 3} + value = subject.to_a + + value[1].should eq({'Content-Length' => 3}) # Headers + end end describe '#status' do