summaryrefslogtreecommitdiff
path: root/spec/ruby/library/net/http/httprequest/initialize_spec.rb
blob: 88e9fb1c77dda6a6fc18e0d9ae363264ace9d243 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
require_relative '../../../../spec_helper'
require 'net/http'

module NetHTTPRequestSpecs
  class TestRequest < Net::HTTPRequest
    METHOD = "TEST"
    REQUEST_HAS_BODY  = false
    RESPONSE_HAS_BODY = true
  end
end

describe "Net::HTTPRequest#initialize" do
  before :each do
    @req = NetHTTPRequestSpecs::TestRequest.allocate
  end

  it "uses the METHOD constants to set the request method" do
    @req.send(:initialize, "/some/path")
    @req.method.should == "TEST"
  end

  it "uses the REQUEST_HAS_BODY to set whether the Request has a body or not" do
    @req.send(:initialize, "/some/path")
    @req.request_body_permitted?.should be_false
  end

  it "uses the RESPONSE_HAS_BODY to set whether the Response can have a body or not" do
    @req.send(:initialize, "/some/path")
    @req.response_body_permitted?.should be_true
  end

  describe "when passed path" do
    it "sets self's path to the passed path" do
      @req.send(:initialize, "/some/path")
      @req.path.should == "/some/path"
    end
  end

  describe "when passed path, headers" do
    it "uses the passed headers Hash to initialize self's header entries" do
      @req.send(:initialize, "/some/path", "Content-Type" => "text/html")
      @req["Content-Type"].should == "text/html"
    end
  end
end