rubysl-net-http 0.0.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +0 -1
- data/.travis.yml +7 -0
- data/README.md +2 -2
- data/Rakefile +0 -1
- data/lib/net/http.rb +1 -0
- data/lib/rubysl/net/http.rb +2 -0
- data/lib/rubysl/net/http/http.rb +2290 -0
- data/lib/rubysl/net/http/https.rb +173 -0
- data/lib/{rubysl-net-http → rubysl/net/http}/version.rb +2 -2
- data/rubysl-net-http.gemspec +18 -18
- data/spec/HTTPBadResponse_spec.rb +7 -0
- data/spec/HTTPError_spec.rb +11 -0
- data/spec/HTTPFatalError_spec.rb +11 -0
- data/spec/HTTPHeaderSyntaxError_spec.rb +7 -0
- data/spec/HTTPRetriableError_spec.rb +11 -0
- data/spec/HTTPServerException_spec.rb +11 -0
- data/spec/http/Proxy_spec.rb +34 -0
- data/spec/http/active_spec.rb +7 -0
- data/spec/http/address_spec.rb +8 -0
- data/spec/http/close_on_empty_response_spec.rb +9 -0
- data/spec/http/copy_spec.rb +26 -0
- data/spec/http/default_port_spec.rb +7 -0
- data/spec/http/delete_spec.rb +26 -0
- data/spec/http/finish_spec.rb +30 -0
- data/spec/http/fixtures/http_server.rb +97 -0
- data/spec/http/get2_spec.rb +7 -0
- data/spec/http/get_print_spec.rb +28 -0
- data/spec/http/get_response_spec.rb +28 -0
- data/spec/http/get_spec.rb +52 -0
- data/spec/http/head2_spec.rb +8 -0
- data/spec/http/head_spec.rb +30 -0
- data/spec/http/http_default_port_spec.rb +7 -0
- data/spec/http/https_default_port_spec.rb +7 -0
- data/spec/http/initialize_spec.rb +45 -0
- data/spec/http/inspect_spec.rb +25 -0
- data/spec/http/is_version_1_1_spec.rb +6 -0
- data/spec/http/is_version_1_2_spec.rb +6 -0
- data/spec/http/lock_spec.rb +26 -0
- data/spec/http/mkcol_spec.rb +26 -0
- data/spec/http/move_spec.rb +30 -0
- data/spec/http/new_spec.rb +96 -0
- data/spec/http/newobj_spec.rb +47 -0
- data/spec/http/open_timeout_spec.rb +23 -0
- data/spec/http/options_spec.rb +30 -0
- data/spec/http/port_spec.rb +8 -0
- data/spec/http/post2_spec.rb +7 -0
- data/spec/http/post_form_spec.rb +20 -0
- data/spec/http/post_spec.rb +43 -0
- data/spec/http/propfind_spec.rb +29 -0
- data/spec/http/proppatch_spec.rb +29 -0
- data/spec/http/proxy_address_spec.rb +30 -0
- data/spec/http/proxy_class_spec.rb +8 -0
- data/spec/http/proxy_pass_spec.rb +38 -0
- data/spec/http/proxy_port_spec.rb +38 -0
- data/spec/http/proxy_user_spec.rb +38 -0
- data/spec/http/put2_spec.rb +7 -0
- data/spec/http/put_spec.rb +29 -0
- data/spec/http/read_timeout_spec.rb +23 -0
- data/spec/http/request_get_spec.rb +7 -0
- data/spec/http/request_head_spec.rb +7 -0
- data/spec/http/request_post_spec.rb +7 -0
- data/spec/http/request_put_spec.rb +7 -0
- data/spec/http/request_spec.rb +114 -0
- data/spec/http/request_types_spec.rb +253 -0
- data/spec/http/send_request_spec.rb +123 -0
- data/spec/http/set_debug_output_spec.rb +34 -0
- data/spec/http/shared/request_get.rb +49 -0
- data/spec/http/shared/request_head.rb +49 -0
- data/spec/http/shared/request_post.rb +49 -0
- data/spec/http/shared/request_put.rb +49 -0
- data/spec/http/shared/started.rb +28 -0
- data/spec/http/shared/version_1_1.rb +19 -0
- data/spec/http/shared/version_1_2.rb +6 -0
- data/spec/http/socket_type_spec.rb +7 -0
- data/spec/http/start_spec.rb +115 -0
- data/spec/http/started_spec.rb +7 -0
- data/spec/http/trace_spec.rb +29 -0
- data/spec/http/unlock_spec.rb +29 -0
- data/spec/http/use_ssl_spec.rb +8 -0
- data/spec/http/version_1_1_spec.rb +21 -0
- data/spec/http/version_1_2_spec.rb +19 -0
- data/spec/httpexceptions/fixtures/classes.rb +5 -0
- data/spec/httpexceptions/initialize_spec.rb +16 -0
- data/spec/httpexceptions/response_spec.rb +9 -0
- data/spec/httpgenericrequest/body_exist_spec.rb +26 -0
- data/spec/httpgenericrequest/body_spec.rb +29 -0
- data/spec/httpgenericrequest/body_stream_spec.rb +31 -0
- data/spec/httpgenericrequest/exec_spec.rb +135 -0
- data/spec/httpgenericrequest/inspect_spec.rb +24 -0
- data/spec/httpgenericrequest/method_spec.rb +14 -0
- data/spec/httpgenericrequest/path_spec.rb +11 -0
- data/spec/httpgenericrequest/request_body_permitted_spec.rb +11 -0
- data/spec/httpgenericrequest/response_body_permitted_spec.rb +11 -0
- data/spec/httpgenericrequest/set_body_internal_spec.rb +20 -0
- data/spec/httpheader/add_field_spec.rb +30 -0
- data/spec/httpheader/basic_auth_spec.rb +13 -0
- data/spec/httpheader/canonical_each_spec.rb +7 -0
- data/spec/httpheader/chunked_spec.rb +21 -0
- data/spec/httpheader/content_length_spec.rb +53 -0
- data/spec/httpheader/content_range_spec.rb +33 -0
- data/spec/httpheader/content_type_spec.rb +25 -0
- data/spec/httpheader/delete_spec.rb +29 -0
- data/spec/httpheader/each_capitalized_name_spec.rb +44 -0
- data/spec/httpheader/each_capitalized_spec.rb +8 -0
- data/spec/httpheader/each_header_spec.rb +7 -0
- data/spec/httpheader/each_key_spec.rb +7 -0
- data/spec/httpheader/each_name_spec.rb +7 -0
- data/spec/httpheader/each_spec.rb +7 -0
- data/spec/httpheader/each_value_spec.rb +45 -0
- data/spec/httpheader/element_reference_spec.rb +38 -0
- data/spec/httpheader/element_set_spec.rb +40 -0
- data/spec/httpheader/fetch_spec.rb +68 -0
- data/spec/httpheader/fixtures/classes.rb +11 -0
- data/spec/httpheader/form_data_spec.rb +7 -0
- data/spec/httpheader/get_fields_spec.rb +38 -0
- data/spec/httpheader/initialize_http_header_spec.rb +28 -0
- data/spec/httpheader/key_spec.rb +20 -0
- data/spec/httpheader/length_spec.rb +7 -0
- data/spec/httpheader/main_type_spec.rb +23 -0
- data/spec/httpheader/proxy_basic_auth_spec.rb +13 -0
- data/spec/httpheader/range_length_spec.rb +31 -0
- data/spec/httpheader/range_spec.rb +47 -0
- data/spec/httpheader/set_content_type_spec.rb +7 -0
- data/spec/httpheader/set_form_data_spec.rb +7 -0
- data/spec/httpheader/set_range_spec.rb +7 -0
- data/spec/httpheader/shared/each_capitalized.rb +42 -0
- data/spec/httpheader/shared/each_header.rb +42 -0
- data/spec/httpheader/shared/each_name.rb +39 -0
- data/spec/httpheader/shared/set_content_type.rb +20 -0
- data/spec/httpheader/shared/set_form_data.rb +27 -0
- data/spec/httpheader/shared/set_range.rb +89 -0
- data/spec/httpheader/shared/size.rb +18 -0
- data/spec/httpheader/size_spec.rb +7 -0
- data/spec/httpheader/sub_type_spec.rb +31 -0
- data/spec/httpheader/to_hash_spec.rb +24 -0
- data/spec/httpheader/type_params_spec.rb +23 -0
- data/spec/httprequest/initialize_spec.rb +44 -0
- data/spec/httpresponse/body_permitted_spec.rb +12 -0
- data/spec/httpresponse/body_spec.rb +6 -0
- data/spec/httpresponse/code_spec.rb +23 -0
- data/spec/httpresponse/code_type_spec.rb +23 -0
- data/spec/httpresponse/entity_spec.rb +6 -0
- data/spec/httpresponse/error_spec.rb +23 -0
- data/spec/httpresponse/error_type_spec.rb +23 -0
- data/spec/httpresponse/exception_type_spec.rb +12 -0
- data/spec/httpresponse/header_spec.rb +8 -0
- data/spec/httpresponse/http_version_spec.rb +11 -0
- data/spec/httpresponse/initialize_spec.rb +10 -0
- data/spec/httpresponse/inspect_spec.rb +14 -0
- data/spec/httpresponse/message_spec.rb +8 -0
- data/spec/httpresponse/msg_spec.rb +8 -0
- data/spec/httpresponse/read_body_spec.rb +85 -0
- data/spec/httpresponse/read_header_spec.rb +8 -0
- data/spec/httpresponse/read_new_spec.rb +21 -0
- data/spec/httpresponse/reading_body_spec.rb +57 -0
- data/spec/httpresponse/response_spec.rb +8 -0
- data/spec/httpresponse/shared/body.rb +18 -0
- data/spec/httpresponse/to_ary_spec.rb +25 -0
- data/spec/httpresponse/value_spec.rb +23 -0
- metadata +366 -88
- data/lib/rubysl-net-http.rb +0 -9
@@ -0,0 +1,97 @@
|
|
1
|
+
require 'webrick'
|
2
|
+
require 'webrick/httpservlet/abstract'
|
3
|
+
|
4
|
+
module NetHTTPSpecs
|
5
|
+
class NullWriter
|
6
|
+
def <<(s) end
|
7
|
+
def puts(*args) end
|
8
|
+
def print(*args) end
|
9
|
+
def printf(*args) end
|
10
|
+
end
|
11
|
+
|
12
|
+
class RequestServlet < WEBrick::HTTPServlet::AbstractServlet
|
13
|
+
def do_GET(req, res)
|
14
|
+
res.content_type = "text/plain"
|
15
|
+
res.body = "Request type: #{req.request_method}"
|
16
|
+
end
|
17
|
+
|
18
|
+
%w{ do_HEAD do_POST do_PUT do_PROPPATCH do_LOCK do_UNLOCK
|
19
|
+
do_OPTIONS do_PROPFIND do_DELETE do_MOVE do_COPY
|
20
|
+
do_MKCOL do_TRACE }.each do |method|
|
21
|
+
alias_method method.to_sym, :do_GET
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class RequestBodyServlet < WEBrick::HTTPServlet::AbstractServlet
|
26
|
+
def do_GET(req, res)
|
27
|
+
res.content_type = "text/plain"
|
28
|
+
res.body = req.body
|
29
|
+
end
|
30
|
+
|
31
|
+
%w{ do_HEAD do_POST do_PUT do_PROPPATCH do_LOCK do_UNLOCK
|
32
|
+
do_OPTIONS do_PROPFIND do_DELETE do_MOVE do_COPY
|
33
|
+
do_MKCOL do_TRACE }.each do |method|
|
34
|
+
alias_method method.to_sym, :do_GET
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
class RequestHeaderServlet < WEBrick::HTTPServlet::AbstractServlet
|
39
|
+
def do_GET(req, res)
|
40
|
+
res.content_type = "text/plain"
|
41
|
+
res.body = req.header.inspect
|
42
|
+
end
|
43
|
+
|
44
|
+
%w{ do_HEAD do_POST do_PUT do_PROPPATCH do_LOCK do_UNLOCK
|
45
|
+
do_OPTIONS do_PROPFIND do_DELETE do_MOVE do_COPY
|
46
|
+
do_MKCOL do_TRACE }.each do |method|
|
47
|
+
alias_method method.to_sym, :do_GET
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
class << self
|
52
|
+
@server = nil
|
53
|
+
|
54
|
+
def start_server
|
55
|
+
unless @server
|
56
|
+
server_config = {
|
57
|
+
:BindAddress => "localhost",
|
58
|
+
:Port => 3333,
|
59
|
+
:Logger => WEBrick::Log.new(NullWriter.new),
|
60
|
+
:AccessLog => [],
|
61
|
+
:ShutdownSocketWithoutClose => true,
|
62
|
+
:ServerType => Thread
|
63
|
+
}
|
64
|
+
|
65
|
+
@server = WEBrick::HTTPServer.new(server_config)
|
66
|
+
|
67
|
+
@server.mount_proc('/') do |req, res|
|
68
|
+
res.content_type = "text/plain"
|
69
|
+
res.body = "This is the index page."
|
70
|
+
end
|
71
|
+
@server.mount('/request', RequestServlet)
|
72
|
+
@server.mount("/request/body", RequestBodyServlet)
|
73
|
+
@server.mount("/request/header", RequestHeaderServlet)
|
74
|
+
|
75
|
+
@server.start
|
76
|
+
end
|
77
|
+
|
78
|
+
# On initial startup or if we re-enter, we wait until the
|
79
|
+
# server is really running.
|
80
|
+
Thread.pass until @server.status == :Running
|
81
|
+
end
|
82
|
+
|
83
|
+
def shutdown_server
|
84
|
+
@server.shutdown if @server
|
85
|
+
end
|
86
|
+
|
87
|
+
def stop_server
|
88
|
+
# The specs initially started and stopped the server for every
|
89
|
+
# describe block. This method is now a noop. The server is shutdown
|
90
|
+
# automatically when the spec process exits.
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
at_exit do
|
95
|
+
shutdown_server
|
96
|
+
end
|
97
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require File.expand_path('../fixtures/http_server', __FILE__)
|
3
|
+
|
4
|
+
describe "Net::HTTP.get_print" do
|
5
|
+
before(:all) do
|
6
|
+
NetHTTPSpecs.start_server
|
7
|
+
end
|
8
|
+
|
9
|
+
after(:all) do
|
10
|
+
NetHTTPSpecs.stop_server
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "when passed URI" do
|
14
|
+
it "it prints the body of the specified uri to $stdout" do
|
15
|
+
lambda do
|
16
|
+
Net::HTTP.get_print URI.parse('http://localhost:3333/')
|
17
|
+
end.should output(/This is the index page\./)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "when passed host, path, port" do
|
22
|
+
it "it prints the body of the specified uri to $stdout" do
|
23
|
+
lambda do
|
24
|
+
Net::HTTP.get_print 'localhost', "/", 3333
|
25
|
+
end.should output(/This is the index page\./)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require File.expand_path('../fixtures/http_server', __FILE__)
|
3
|
+
|
4
|
+
describe "Net::HTTP.get_response" do
|
5
|
+
before(:all) do
|
6
|
+
NetHTTPSpecs.start_server
|
7
|
+
end
|
8
|
+
|
9
|
+
after(:all) do
|
10
|
+
NetHTTPSpecs.stop_server
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "when passed URI" do
|
14
|
+
it "returns the response for the specified uri" do
|
15
|
+
res = Net::HTTP.get_response(URI.parse('http://localhost:3333/'))
|
16
|
+
res.content_type.should == "text/plain"
|
17
|
+
res.body.should == "This is the index page."
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "when passed host, path, port" do
|
22
|
+
it "returns the response for the specified host-path-combination" do
|
23
|
+
res = Net::HTTP.get_response('localhost', "/", 3333)
|
24
|
+
res.content_type.should == "text/plain"
|
25
|
+
res.body.should == "This is the index page."
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require File.expand_path('../fixtures/http_server', __FILE__)
|
3
|
+
|
4
|
+
describe "Net::HTTP.get when passed URI" do
|
5
|
+
before(:all) do
|
6
|
+
NetHTTPSpecs.start_server
|
7
|
+
end
|
8
|
+
|
9
|
+
after(:all) do
|
10
|
+
NetHTTPSpecs.stop_server
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "when passed URI" do
|
14
|
+
it "returns the body of the specified uri" do
|
15
|
+
Net::HTTP.get(URI.parse('http://localhost:3333/')).should == "This is the index page."
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "when passed host, path, port" do
|
20
|
+
it "returns the body of the specified host-path-combination" do
|
21
|
+
Net::HTTP.get('localhost', "/", 3333).should == "This is the index page."
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
ruby_version_is ''...'1.9.3' do
|
26
|
+
describe "when passed path in version 1.1 mode" do
|
27
|
+
before(:each) do
|
28
|
+
Net::HTTP.version_1_1
|
29
|
+
@http = Net::HTTP.start("localhost", 3333)
|
30
|
+
end
|
31
|
+
|
32
|
+
after(:each) do
|
33
|
+
@http.finish if @http.started?
|
34
|
+
Net::HTTP.version_1_2
|
35
|
+
end
|
36
|
+
|
37
|
+
it "returns the response and the body for the passed path" do
|
38
|
+
response, body = @http.get("/")
|
39
|
+
response.should be_kind_of(Net::HTTPResponse)
|
40
|
+
|
41
|
+
body.should == "This is the index page."
|
42
|
+
response.body.should == "This is the index page."
|
43
|
+
end
|
44
|
+
|
45
|
+
it "yields each read part of the body to the passed block when passed a block" do
|
46
|
+
buf = ""
|
47
|
+
@http.get("/") { |s| buf << s }
|
48
|
+
buf.should == "This is the index page."
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require File.expand_path('../fixtures/http_server', __FILE__)
|
3
|
+
|
4
|
+
describe "Net::HTTP#head" do
|
5
|
+
before(:all) do
|
6
|
+
NetHTTPSpecs.start_server
|
7
|
+
end
|
8
|
+
|
9
|
+
after(:all) do
|
10
|
+
NetHTTPSpecs.stop_server
|
11
|
+
end
|
12
|
+
|
13
|
+
before(:each) do
|
14
|
+
@http = Net::HTTP.start("localhost", 3333)
|
15
|
+
end
|
16
|
+
|
17
|
+
after(:each) do
|
18
|
+
@http.finish if @http.started?
|
19
|
+
end
|
20
|
+
|
21
|
+
it "sends a HEAD request to the passed path and returns the response" do
|
22
|
+
response = @http.head("/request")
|
23
|
+
# HEAD requests have no responses
|
24
|
+
response.body.should be_nil
|
25
|
+
end
|
26
|
+
|
27
|
+
it "returns a Net::HTTPResponse" do
|
28
|
+
@http.head("/request").should be_kind_of(Net::HTTPResponse)
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
|
3
|
+
describe "Net::HTTP#initialize" do
|
4
|
+
it "is private" do
|
5
|
+
Net::HTTP.should have_private_instance_method(:initialize)
|
6
|
+
end
|
7
|
+
|
8
|
+
describe "when passed address" do
|
9
|
+
before(:each) do
|
10
|
+
@net = Net::HTTP.allocate
|
11
|
+
@net.send(:initialize, "localhost")
|
12
|
+
end
|
13
|
+
|
14
|
+
it "sets the new Net::HTTP instance's address to the passed address" do
|
15
|
+
@net.address.should == "localhost"
|
16
|
+
end
|
17
|
+
|
18
|
+
it "sets the new Net::HTTP instance's port to the default HTTP port" do
|
19
|
+
@net.port.should eql(Net::HTTP.default_port)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "does not start the new Net::HTTP instance" do
|
23
|
+
@net.started?.should be_false
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "when passed address, port" do
|
28
|
+
before(:each) do
|
29
|
+
@net = Net::HTTP.allocate
|
30
|
+
@net.send(:initialize, "localhost", 3333)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "sets the new Net::HTTP instance's address to the passed address" do
|
34
|
+
@net.address.should == "localhost"
|
35
|
+
end
|
36
|
+
|
37
|
+
it "sets the new Net::HTTP instance's port to the passed port" do
|
38
|
+
@net.port.should eql(3333)
|
39
|
+
end
|
40
|
+
|
41
|
+
it "does not start the new Net::HTTP instance" do
|
42
|
+
@net.started?.should be_false
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require File.expand_path('../fixtures/http_server', __FILE__)
|
3
|
+
|
4
|
+
describe "Net::HTTP#inspect" do
|
5
|
+
before(:all) do
|
6
|
+
NetHTTPSpecs.start_server
|
7
|
+
end
|
8
|
+
|
9
|
+
after(:all) do
|
10
|
+
NetHTTPSpecs.stop_server
|
11
|
+
end
|
12
|
+
|
13
|
+
before(:each) do
|
14
|
+
@net = Net::HTTP.new("localhost", 3333)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "returns a String representation of self" do
|
18
|
+
net = Net::HTTP.new("localhost", 3333)
|
19
|
+
net.inspect.should be_kind_of(String)
|
20
|
+
net.inspect.should == "#<Net::HTTP localhost:3333 open=false>"
|
21
|
+
|
22
|
+
net.start
|
23
|
+
net.inspect.should == "#<Net::HTTP localhost:3333 open=true>"
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require File.expand_path('../fixtures/http_server', __FILE__)
|
3
|
+
|
4
|
+
describe "Net::HTTP#lock" do
|
5
|
+
before(:all) do
|
6
|
+
NetHTTPSpecs.start_server
|
7
|
+
end
|
8
|
+
|
9
|
+
after(:all) do
|
10
|
+
NetHTTPSpecs.stop_server
|
11
|
+
end
|
12
|
+
|
13
|
+
before(:each) do
|
14
|
+
@http = Net::HTTP.start("localhost", 3333)
|
15
|
+
end
|
16
|
+
|
17
|
+
after(:each) do
|
18
|
+
@http.finish if @http.started?
|
19
|
+
end
|
20
|
+
|
21
|
+
it "sends a LOCK request to the passed path and returns the response" do
|
22
|
+
response = @http.lock("/request", "test=test")
|
23
|
+
response.should be_kind_of(Net::HTTPResponse)
|
24
|
+
response.body.should == "Request type: LOCK"
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require File.expand_path('../fixtures/http_server', __FILE__)
|
3
|
+
|
4
|
+
describe "Net::HTTP#mkcol" do
|
5
|
+
before(:all) do
|
6
|
+
NetHTTPSpecs.start_server
|
7
|
+
end
|
8
|
+
|
9
|
+
after(:all) do
|
10
|
+
NetHTTPSpecs.stop_server
|
11
|
+
end
|
12
|
+
|
13
|
+
before(:each) do
|
14
|
+
@http = Net::HTTP.start("localhost", 3333)
|
15
|
+
end
|
16
|
+
|
17
|
+
after(:each) do
|
18
|
+
@http.finish if @http.started?
|
19
|
+
end
|
20
|
+
|
21
|
+
it "sends a MKCOL request to the passed path and returns the response" do
|
22
|
+
response = @http.mkcol("/request")
|
23
|
+
response.should be_kind_of(Net::HTTPResponse)
|
24
|
+
response.body.should == "Request type: MKCOL"
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require File.expand_path('../fixtures/http_server', __FILE__)
|
3
|
+
|
4
|
+
describe "Net::HTTP#head" do
|
5
|
+
before(:all) do
|
6
|
+
NetHTTPSpecs.start_server
|
7
|
+
end
|
8
|
+
|
9
|
+
after(:all) do
|
10
|
+
NetHTTPSpecs.stop_server
|
11
|
+
end
|
12
|
+
|
13
|
+
before(:each) do
|
14
|
+
@http = Net::HTTP.start("localhost", 3333)
|
15
|
+
end
|
16
|
+
|
17
|
+
after(:each) do
|
18
|
+
@http.finish if @http.started?
|
19
|
+
end
|
20
|
+
|
21
|
+
it "sends a MOVE request to the passed path and returns the response" do
|
22
|
+
response = @http.move("/request")
|
23
|
+
# HEAD requests have no responses
|
24
|
+
response.body.should == "Request type: MOVE"
|
25
|
+
end
|
26
|
+
|
27
|
+
it "returns a Net::HTTPResponse" do
|
28
|
+
@http.move("/request").should be_kind_of(Net::HTTPResponse)
|
29
|
+
end
|
30
|
+
end
|