require_relative '../../../spec_helper' require 'net/http' require_relative 'fixtures/classes' describe "Net::HTTPHeader#content_length" do before :each do @headers = NetHTTPHeaderSpecs::Example.new end it "returns nil if no 'Content-Length' header entry is set" do @headers.content_length.should be_nil end it "raises a Net::HTTPHeaderSyntaxError when the 'Content-Length' header entry has an invalid format" do @headers["Content-Length"] = "invalid" -> { @headers.content_length }.should raise_error(Net::HTTPHeaderSyntaxError) end it "returns the value of the 'Content-Length' header entry as an Integer" do @headers["Content-Length"] = "123" @headers.content_length.should eql(123) @headers["Content-Length"] = "123valid" @headers.content_length.should eql(123) @headers["Content-Length"] = "valid123" @headers.content_length.should eql(123) end end describe "Net::HTTPHeader#content_length=" do before :each do @headers = NetHTTPHeaderSpecs::Example.new end it "removes the 'Content-Length' entry if passed false or nil" do @headers["Content-Length"] = "123" @headers.content_length = nil @headers["Content-Length"].should be_nil end it "sets the 'Content-Length' entry to the passed value" do @headers.content_length = "123" @headers["Content-Length"].should == "123" @headers.content_length = "123valid" @headers["Content-Length"].should == "123" end it "sets the 'Content-Length' entry to 0 if the passed value is not valid" do @headers.content_length = "invalid123" @headers["Content-Length"].should == "0" end end