summaryrefslogtreecommitdiff
path: root/spec/ruby/library/net/http/http/request_spec.rb
blob: e63dde9c8d727c32ecd4bbf98dd5456cae5a8aea (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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
require_relative '../../../../spec_helper'
require 'net/http'
require_relative 'fixtures/http_server'

describe "Net::HTTP#request" do
  before :each do
    NetHTTPSpecs.start_server
    @http = Net::HTTP.start("localhost", NetHTTPSpecs.port)
  end

  after :each do
    @http.finish if @http.started?
    NetHTTPSpecs.stop_server
  end

  describe "when passed request_object" do
    it "makes a HTTP Request based on the passed request_object" do
      response = @http.request(Net::HTTP::Get.new("/request"), "test=test")
      response.body.should == "Request type: GET"

      response = @http.request(Net::HTTP::Head.new("/request"), "test=test")
      response.body.should be_nil

      response = @http.request(Net::HTTP::Post.new("/request"), "test=test")
      response.body.should == "Request type: POST"

      response = @http.request(Net::HTTP::Put.new("/request"), "test=test")
      response.body.should == "Request type: PUT"

      response = @http.request(Net::HTTP::Proppatch.new("/request"), "test=test")
      response.body.should == "Request type: PROPPATCH"

      response = @http.request(Net::HTTP::Lock.new("/request"), "test=test")
      response.body.should == "Request type: LOCK"

      response = @http.request(Net::HTTP::Unlock.new("/request"), "test=test")
      response.body.should == "Request type: UNLOCK"

      # TODO: Does not work?
      #response = @http.request(Net::HTTP::Options.new("/request"), "test=test")
      #response.body.should be_nil

      response = @http.request(Net::HTTP::Propfind.new("/request"), "test=test")
      response.body.should == "Request type: PROPFIND"

      response = @http.request(Net::HTTP::Delete.new("/request"), "test=test")
      response.body.should == "Request type: DELETE"

      response = @http.request(Net::HTTP::Move.new("/request"), "test=test")
      response.body.should == "Request type: MOVE"

      response = @http.request(Net::HTTP::Copy.new("/request"), "test=test")
      response.body.should == "Request type: COPY"

      response = @http.request(Net::HTTP::Mkcol.new("/request"), "test=test")
      response.body.should == "Request type: MKCOL"

      response = @http.request(Net::HTTP::Trace.new("/request"), "test=test")
      response.body.should == "Request type: TRACE"
    end
  end

  describe "when passed request_object and request_body" do
    it "sends the passed request_body when making the HTTP Request" do
      response = @http.request(Net::HTTP::Get.new("/request/body"), "test=test")
      response.body.should == "test=test"

      response = @http.request(Net::HTTP::Head.new("/request/body"), "test=test")
      response.body.should be_nil

      response = @http.request(Net::HTTP::Post.new("/request/body"), "test=test")
      response.body.should == "test=test"

      response = @http.request(Net::HTTP::Put.new("/request/body"), "test=test")
      response.body.should == "test=test"

      response = @http.request(Net::HTTP::Proppatch.new("/request/body"), "test=test")
      response.body.should == "test=test"

      response = @http.request(Net::HTTP::Lock.new("/request/body"), "test=test")
      response.body.should == "test=test"

      response = @http.request(Net::HTTP::Unlock.new("/request/body"), "test=test")
      response.body.should == "test=test"

      # TODO: Does not work?
      #response = @http.request(Net::HTTP::Options.new("/request/body"), "test=test")
      #response.body.should be_nil

      response = @http.request(Net::HTTP::Propfind.new("/request/body"), "test=test")
      response.body.should == "test=test"

      response = @http.request(Net::HTTP::Delete.new("/request/body"), "test=test")
      response.body.should == "test=test"

      response = @http.request(Net::HTTP::Move.new("/request/body"), "test=test")
      response.body.should == "test=test"

      response = @http.request(Net::HTTP::Copy.new("/request/body"), "test=test")
      response.body.should == "test=test"

      response = @http.request(Net::HTTP::Mkcol.new("/request/body"), "test=test")
      response.body.should == "test=test"

      response = @http.request(Net::HTTP::Trace.new("/request/body"), "test=test")
      response.body.should == "test=test"
    end
  end
end