jruby-httpclient 0.4.0-java → 1.0.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/jruby-httpclient.gemspec +12 -8
- data/lib/http_client.rb +26 -12
- data/lib/http_client/{client.rb → jruby/client.rb} +0 -0
- data/lib/http_client/{client_configuration.rb → jruby/client_configuration.rb} +0 -0
- data/lib/http_client/{methods.rb → jruby/methods.rb} +0 -0
- data/lib/http_client/jruby/response.rb +42 -0
- data/lib/http_client/mri/client.rb +51 -0
- data/lib/http_client/mri/methods.rb +87 -0
- data/lib/http_client/mri/response.rb +22 -0
- data/lib/http_client/{response.rb → status.rb} +1 -42
- data/test/http_client/jruby/test_client_configuration.rb +136 -0
- data/test/http_client/test_basic_client_operations.rb +8 -0
- data/test/http_client/test_cookies.rb +1 -1
- data/test/http_client/{test_request_entity.rb → test_request_body.rb} +0 -0
- metadata +12 -8
- data/test/http_client/test_client_configuration.rb +0 -142
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
1.0.0
|
data/jruby-httpclient.gemspec
CHANGED
@@ -5,12 +5,12 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{jruby-httpclient}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "1.0.0"
|
9
9
|
s.platform = Gem::Platform.new([nil, "java", nil])
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.authors = ["Adam Esterline"]
|
13
|
-
s.date = %q{2011-07-
|
13
|
+
s.date = %q{2011-07-10}
|
14
14
|
s.description = %q{An HTTP client designed for use with JRuby in a threaded environment}
|
15
15
|
s.email = %q{adam@esterlines.com}
|
16
16
|
s.extra_rdoc_files = [
|
@@ -27,18 +27,22 @@ Gem::Specification.new do |s|
|
|
27
27
|
"VERSION",
|
28
28
|
"jruby-httpclient.gemspec",
|
29
29
|
"lib/http_client.rb",
|
30
|
-
"lib/http_client/client.rb",
|
31
|
-
"lib/http_client/client_configuration.rb",
|
32
|
-
"lib/http_client/methods.rb",
|
33
|
-
"lib/http_client/response.rb",
|
30
|
+
"lib/http_client/jruby/client.rb",
|
31
|
+
"lib/http_client/jruby/client_configuration.rb",
|
32
|
+
"lib/http_client/jruby/methods.rb",
|
33
|
+
"lib/http_client/jruby/response.rb",
|
34
|
+
"lib/http_client/mri/client.rb",
|
35
|
+
"lib/http_client/mri/methods.rb",
|
36
|
+
"lib/http_client/mri/response.rb",
|
37
|
+
"lib/http_client/status.rb",
|
34
38
|
"test/helper.rb",
|
39
|
+
"test/http_client/jruby/test_client_configuration.rb",
|
35
40
|
"test/http_client/test_basic_auth.rb",
|
36
41
|
"test/http_client/test_basic_client_operations.rb",
|
37
|
-
"test/http_client/test_client_configuration.rb",
|
38
42
|
"test/http_client/test_client_headers.rb",
|
39
43
|
"test/http_client/test_cookies.rb",
|
40
44
|
"test/http_client/test_redirect.rb",
|
41
|
-
"test/http_client/
|
45
|
+
"test/http_client/test_request_body.rb",
|
42
46
|
"test/http_client/test_response.rb",
|
43
47
|
"test/http_client/test_server_headers.rb",
|
44
48
|
"test/http_test_server.rb",
|
data/lib/http_client.rb
CHANGED
@@ -1,18 +1,32 @@
|
|
1
1
|
HTTP_CLIENT_DIR = File.join(File.dirname(__FILE__), 'http_client')
|
2
|
-
VENDOR_DIR = File.expand_path(File.join(File.dirname(__FILE__), '..', 'vendor'))
|
3
|
-
|
4
2
|
$LOAD_PATH.unshift(HTTP_CLIENT_DIR) unless $LOAD_PATH.include?(HTTP_CLIENT_DIR)
|
5
|
-
$LOAD_PATH.unshift(VENDOR_DIR) unless $LOAD_PATH.include?(VENDOR_DIR)
|
6
3
|
|
7
|
-
require '
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
4
|
+
require 'status'
|
5
|
+
|
6
|
+
if defined?(JRUBY_VERSION)
|
7
|
+
JRUBY_HTTP_CLIENT_DIR = File.join(HTTP_CLIENT_DIR, 'jruby')
|
8
|
+
VENDOR_DIR = File.expand_path(File.join(File.dirname(__FILE__), '..', 'vendor'))
|
9
|
+
|
10
|
+
$LOAD_PATH.unshift(JRUBY_HTTP_CLIENT_DIR) unless $LOAD_PATH.include?(JRUBY_HTTP_CLIENT_DIR)
|
11
|
+
$LOAD_PATH.unshift(VENDOR_DIR) unless $LOAD_PATH.include?(VENDOR_DIR)
|
12
|
+
|
13
|
+
require 'java'
|
14
|
+
require 'commons-logging-1.1.1'
|
15
|
+
require 'commons-codec-1.4'
|
16
|
+
require 'httpcore-4.1'
|
17
|
+
require 'httpmime-4.1.1'
|
18
|
+
require 'httpclient-4.1.1'
|
19
|
+
require 'httpclient-cache-4.1.1'
|
20
|
+
|
21
|
+
require 'client_configuration'
|
22
|
+
else
|
23
|
+
MRI_HTTP_CLIENT_DIR = File.join(HTTP_CLIENT_DIR, 'mri')
|
24
|
+
$LOAD_PATH.unshift(MRI_HTTP_CLIENT_DIR) unless $LOAD_PATH.include?(MRI_HTTP_CLIENT_DIR)
|
25
|
+
|
26
|
+
require 'net/http'
|
27
|
+
require 'cgi'
|
28
|
+
end
|
14
29
|
|
15
|
-
require 'client_configuration'
|
16
|
-
require 'response'
|
17
30
|
require 'methods'
|
31
|
+
require 'response'
|
18
32
|
require 'client'
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module HTTP
|
2
|
+
class Response
|
3
|
+
attr_reader :headers, :cookies
|
4
|
+
|
5
|
+
def initialize(native_response, cookies)
|
6
|
+
@native_response = native_response
|
7
|
+
@headers = Headers.new(native_response)
|
8
|
+
@cookies = Cookies.new(cookies)
|
9
|
+
end
|
10
|
+
|
11
|
+
def body
|
12
|
+
@body ||= EntityUtils.to_string(@native_response.entity)
|
13
|
+
end
|
14
|
+
|
15
|
+
def status_code
|
16
|
+
@native_response.status_line.status_code
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
EntityUtils = org.apache.http.util.EntityUtils
|
22
|
+
|
23
|
+
class Headers
|
24
|
+
def initialize(native_response)
|
25
|
+
@native_response = native_response
|
26
|
+
end
|
27
|
+
|
28
|
+
def [](header_name)
|
29
|
+
@native_response.get_first_header(header_name).value
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
class Cookies
|
34
|
+
def initialize(cookies)
|
35
|
+
@cookies = cookies
|
36
|
+
end
|
37
|
+
|
38
|
+
def [](cookie_name)
|
39
|
+
@cookies.find {|cookie| cookie.name == cookie_name }.value
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module HTTP
|
2
|
+
class Client
|
3
|
+
def initialize(options)
|
4
|
+
@default_host = options[:default_host]
|
5
|
+
@timeout_in_seconds = options[:timeout_in_seconds]
|
6
|
+
@uri = URI.parse(@default_host)
|
7
|
+
end
|
8
|
+
|
9
|
+
def get(url, params = {})
|
10
|
+
execute(HTTP::Get.new(url, params)).body
|
11
|
+
end
|
12
|
+
|
13
|
+
def post(url, params = {})
|
14
|
+
execute(HTTP::Post.new(url, params)).body
|
15
|
+
end
|
16
|
+
|
17
|
+
def delete(url)
|
18
|
+
execute(HTTP::Delete.new(url)).body
|
19
|
+
end
|
20
|
+
|
21
|
+
def put(url)
|
22
|
+
execute(HTTP::Put.new(url)).body
|
23
|
+
end
|
24
|
+
|
25
|
+
def execute(req)
|
26
|
+
req.execute_native_request(self)
|
27
|
+
end
|
28
|
+
|
29
|
+
def execute_request(requested_host, requested_port, req)
|
30
|
+
host = requested_host || @uri.host
|
31
|
+
port = requested_port || @uri.port
|
32
|
+
req['Cookie'] = @cookie unless @cookie.nil?
|
33
|
+
|
34
|
+
Net::HTTP.new(host, port).start do |http|
|
35
|
+
http.read_timeout = @timeout_in_seconds || 30
|
36
|
+
response = http.request(req)
|
37
|
+
|
38
|
+
if response['location']
|
39
|
+
redirect_uri = URI.parse(response['location'])
|
40
|
+
return execute_request(redirect_uri.host, redirect_uri.port, Net::HTTP::Get.new("#{redirect_uri.path}?#{redirect_uri.query}"))
|
41
|
+
end
|
42
|
+
|
43
|
+
@cookie = response['set-cookie']
|
44
|
+
|
45
|
+
response
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def shutdown; end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
module HTTP
|
2
|
+
class Request
|
3
|
+
def initialize(url, params = {})
|
4
|
+
@requested_uri = url
|
5
|
+
@params = params
|
6
|
+
@headers = {}
|
7
|
+
end
|
8
|
+
|
9
|
+
def basic_auth(username, password)
|
10
|
+
@username = username
|
11
|
+
@password = password
|
12
|
+
end
|
13
|
+
|
14
|
+
def add_headers(headers)
|
15
|
+
@headers = headers
|
16
|
+
end
|
17
|
+
|
18
|
+
def content_type=(content_type)
|
19
|
+
@content_type = content_type
|
20
|
+
end
|
21
|
+
|
22
|
+
def body=(body)
|
23
|
+
@body = body
|
24
|
+
end
|
25
|
+
|
26
|
+
def execute_native_request(client)
|
27
|
+
host, port, req = create_request
|
28
|
+
req.basic_auth(@username, @password)
|
29
|
+
|
30
|
+
@headers.each {|name, value| req[name.to_s] = value.to_s}
|
31
|
+
req.content_type = @content_type unless @content_type.nil?
|
32
|
+
req.body = @body unless @body.nil?
|
33
|
+
|
34
|
+
HTTP::Response.new(client.execute_request(host, port, req))
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def parse_uri
|
40
|
+
request_uri = URI.parse(@requested_uri)
|
41
|
+
|
42
|
+
host = request_uri.host
|
43
|
+
port = request_uri.port
|
44
|
+
path = request_uri.path
|
45
|
+
query = request_uri.query
|
46
|
+
|
47
|
+
[host, port, path, query]
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
class Get < Request
|
52
|
+
def create_request
|
53
|
+
host, port, path, query = parse_uri
|
54
|
+
get = Net::HTTP::Get.new("#{path}?#{query || to_query_string(@params)}")
|
55
|
+
[host, port, get]
|
56
|
+
end
|
57
|
+
|
58
|
+
def to_query_string(params_as_hash)
|
59
|
+
params_as_hash.map { |name, value| "#{URI.encode(name.to_s)}=#{URI.encode(value.to_s)}" }.join("&")
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
class Post < Request
|
64
|
+
def create_request
|
65
|
+
host, port, path, query = parse_uri
|
66
|
+
post = Net::HTTP::Post.new(path)
|
67
|
+
post.set_form_data(@params)
|
68
|
+
[host, port, post]
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
class Put < Request
|
73
|
+
def create_request
|
74
|
+
host, port, path, query = parse_uri
|
75
|
+
put = Net::HTTP::Put.new(path)
|
76
|
+
[host, port, put]
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
class Delete < Request
|
81
|
+
def create_request
|
82
|
+
host, port, path, query = parse_uri
|
83
|
+
delete = Net::HTTP::Delete.new(path)
|
84
|
+
[host, port, delete]
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module HTTP
|
2
|
+
class Response
|
3
|
+
attr_reader :status_code, :body
|
4
|
+
|
5
|
+
def initialize(native_response)
|
6
|
+
@native_response = native_response
|
7
|
+
@status_code = native_response.code.to_i
|
8
|
+
@body = native_response.body
|
9
|
+
end
|
10
|
+
|
11
|
+
def headers
|
12
|
+
@native_response
|
13
|
+
end
|
14
|
+
|
15
|
+
def cookies
|
16
|
+
native_cookies = CGI::Cookie.parse(@native_response['set-cookie'])
|
17
|
+
cookies = {}
|
18
|
+
native_cookies.each {|name, cookie| cookies[name] = cookie.value.first}
|
19
|
+
cookies
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -1,23 +1,5 @@
|
|
1
1
|
module HTTP
|
2
|
-
|
3
|
-
attr_reader :headers, :cookies
|
4
|
-
|
5
|
-
def initialize(native_response, cookies)
|
6
|
-
@native_response = native_response
|
7
|
-
@headers = Headers.new(native_response)
|
8
|
-
@cookies = Cookies.new(cookies)
|
9
|
-
end
|
10
|
-
|
11
|
-
def body
|
12
|
-
@body ||= EntityUtils.to_string(@native_response.entity)
|
13
|
-
end
|
14
|
-
|
15
|
-
def status_code
|
16
|
-
@native_response.status_line.status_code
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
module Status
|
2
|
+
module Status
|
21
3
|
ACCEPTED = 202
|
22
4
|
BAD_GATEWAY = 502
|
23
5
|
BAD_REQUEST = 400
|
@@ -67,27 +49,4 @@ module HTTP
|
|
67
49
|
UNSUPPORTED_MEDIA_TYPE = 415
|
68
50
|
USE_PROXY = 305
|
69
51
|
end
|
70
|
-
|
71
|
-
private
|
72
|
-
EntityUtils = org.apache.http.util.EntityUtils
|
73
|
-
|
74
|
-
class Headers
|
75
|
-
def initialize(native_response)
|
76
|
-
@native_response = native_response
|
77
|
-
end
|
78
|
-
|
79
|
-
def [](header_name)
|
80
|
-
@native_response.get_first_header(header_name).value
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
class Cookies
|
85
|
-
def initialize(cookies)
|
86
|
-
@cookies = cookies
|
87
|
-
end
|
88
|
-
|
89
|
-
def [](cookie_name)
|
90
|
-
@cookies.find {|cookie| cookie.name == cookie_name }.value
|
91
|
-
end
|
92
|
-
end
|
93
52
|
end
|
@@ -0,0 +1,136 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
if defined?(JRUBY_VERSION)
|
4
|
+
class TestClientConfiguration < Test::Unit::TestCase
|
5
|
+
def test_protocol_version
|
6
|
+
config = HTTP::ClientConfiguration.new(:protocol_version => "HTTP 1.0")
|
7
|
+
assert_equal(config.protocol_version.to_s, "HTTP/1.0")
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_strict_transfer_encodeing
|
11
|
+
config = HTTP::ClientConfiguration.new(:strict_transfer_encoding => true)
|
12
|
+
assert_equal(config.strict_transfer_encoding, true)
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_http_element_charset
|
16
|
+
config = HTTP::ClientConfiguration.new(:http_element_charset => "ASCII")
|
17
|
+
assert_equal(config.http_element_charset, "ASCII")
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_use_expect_continue
|
21
|
+
config = HTTP::ClientConfiguration.new(:use_expect_continue => true)
|
22
|
+
assert_equal(config.use_expect_continue, true)
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_wait_for_continue
|
26
|
+
config = HTTP::ClientConfiguration.new(:wait_for_continue => true)
|
27
|
+
assert_equal(config.wait_for_continue, true)
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_user_agent
|
31
|
+
user_agent_name = "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.0.3) Gecko/2008092414 Firefox/3.0.3"
|
32
|
+
config = HTTP::ClientConfiguration.new(:user_agent => user_agent_name)
|
33
|
+
assert_equal(config.user_agent, user_agent_name)
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_tcp_nodelay
|
37
|
+
config = HTTP::ClientConfiguration.new(:tcp_nodelay => true)
|
38
|
+
assert_equal(config.tcp_nodelay, true)
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_so_linger
|
42
|
+
config = HTTP::ClientConfiguration.new(:so_linger => 3000)
|
43
|
+
assert_equal(config.so_linger, 3000)
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_so_reuseaddr
|
47
|
+
config = HTTP::ClientConfiguration.new(:so_reuseaddr => true)
|
48
|
+
assert_equal(config.so_reuseaddr, true)
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_socket_buffer_size
|
52
|
+
config = HTTP::ClientConfiguration.new(:socket_buffer_size => 10000)
|
53
|
+
assert_equal(config.socket_buffer_size, 10000)
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_connection_timeout
|
57
|
+
config = HTTP::ClientConfiguration.new(:connection_timeout => 2)
|
58
|
+
assert_equal(config.connection_timeout, 2)
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_max_line_length
|
62
|
+
config = HTTP::ClientConfiguration.new(:max_line_length => 2)
|
63
|
+
assert_equal(config.max_line_length, 2)
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_max_header_count
|
67
|
+
config = HTTP::ClientConfiguration.new(:max_header_count => 10)
|
68
|
+
assert_equal(config.max_header_count, 10)
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_stale_connection_check
|
72
|
+
config = HTTP::ClientConfiguration.new(:stale_connection_check => true)
|
73
|
+
assert_equal(config.stale_connection_check, true)
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_local_address
|
77
|
+
config = HTTP::ClientConfiguration.new(:local_address => "127.0.0.1")
|
78
|
+
assert_equal(config.local_address.get_host_address, "127.0.0.1")
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_default_proxy
|
82
|
+
config = HTTP::ClientConfiguration.new(:default_proxy => "http://127.0.0.1:8080")
|
83
|
+
assert_equal(config.default_proxy.to_s, "http://127.0.0.1:8080")
|
84
|
+
end
|
85
|
+
|
86
|
+
def test_date_patterns
|
87
|
+
config = HTTP::ClientConfiguration.new(:date_patterns => ["MDy"])
|
88
|
+
assert(config.date_patterns.include? 'MDy')
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_single_cookie_header
|
92
|
+
config = HTTP::ClientConfiguration.new(:single_cookie_header => true)
|
93
|
+
assert_equal(config.single_cookie_header, true)
|
94
|
+
end
|
95
|
+
|
96
|
+
def test_credential_charset
|
97
|
+
config = HTTP::ClientConfiguration.new(:credential_charset => "ASCII")
|
98
|
+
assert_equal(config.credential_charset, "ASCII")
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_cookie_policy
|
102
|
+
config = HTTP::ClientConfiguration.new(:cookie_policy => "RFC2109")
|
103
|
+
assert_equal(config.cookie_policy, "RFC2109")
|
104
|
+
end
|
105
|
+
|
106
|
+
def test_handle_authentication
|
107
|
+
config = HTTP::ClientConfiguration.new(:handle_authentication => true)
|
108
|
+
assert_equal(config.handle_authentication, true)
|
109
|
+
end
|
110
|
+
|
111
|
+
def test_handle_redirects
|
112
|
+
config = HTTP::ClientConfiguration.new(:handle_redirects => true)
|
113
|
+
assert_equal(config.handle_redirects, true)
|
114
|
+
end
|
115
|
+
|
116
|
+
def test_max_redirects
|
117
|
+
config = HTTP::ClientConfiguration.new(:max_redirects => 1)
|
118
|
+
assert_equal(config.max_redirects, 1)
|
119
|
+
end
|
120
|
+
|
121
|
+
def test_allow_circular_redirects
|
122
|
+
config = HTTP::ClientConfiguration.new(:allow_circular_redirects => true)
|
123
|
+
assert_equal(config.allow_circular_redirects, true)
|
124
|
+
end
|
125
|
+
|
126
|
+
def test_virtual_host
|
127
|
+
config = HTTP::ClientConfiguration.new(:virtual_host => "http://127.0.0.1:80")
|
128
|
+
assert_equal(config.virtual_host.to_s, "http://127.0.0.1:80")
|
129
|
+
end
|
130
|
+
|
131
|
+
def test_default_host
|
132
|
+
config = HTTP::ClientConfiguration.new(:default_host => "http://localhost:8080")
|
133
|
+
assert_equal(config.default_host.to_s, "http://localhost:8080")
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
@@ -61,6 +61,14 @@ class TestBasicClientOperations < Test::Unit::TestCase
|
|
61
61
|
assert_equal("bar", result)
|
62
62
|
end
|
63
63
|
|
64
|
+
def test_timeout
|
65
|
+
client = HTTP::Client.new(:default_host => "http://localhost:8080", :timeout_in_seconds => 2)
|
66
|
+
|
67
|
+
assert_raises(Timeout::Error) do
|
68
|
+
client.get("/slow", :sleep => "30")
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
64
72
|
def setup
|
65
73
|
@client = HTTP::Client.new(:default_host => "http://localhost:8080")
|
66
74
|
end
|
@@ -16,7 +16,7 @@ class CookieTest < Test::Unit::TestCase
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def setup
|
19
|
-
@client = HTTP::Client.new(:default_host => "http://localhost:8080"
|
19
|
+
@client = HTTP::Client.new(:default_host => "http://localhost:8080")
|
20
20
|
end
|
21
21
|
|
22
22
|
def teardown
|
File without changes
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: jruby-httpclient
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 1.0.0
|
6
6
|
platform: java
|
7
7
|
authors:
|
8
8
|
- Adam Esterline
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-07-
|
13
|
+
date: 2011-07-10 00:00:00 -06:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -65,18 +65,22 @@ files:
|
|
65
65
|
- VERSION
|
66
66
|
- jruby-httpclient.gemspec
|
67
67
|
- lib/http_client.rb
|
68
|
-
- lib/http_client/client.rb
|
69
|
-
- lib/http_client/client_configuration.rb
|
70
|
-
- lib/http_client/methods.rb
|
71
|
-
- lib/http_client/response.rb
|
68
|
+
- lib/http_client/jruby/client.rb
|
69
|
+
- lib/http_client/jruby/client_configuration.rb
|
70
|
+
- lib/http_client/jruby/methods.rb
|
71
|
+
- lib/http_client/jruby/response.rb
|
72
|
+
- lib/http_client/mri/client.rb
|
73
|
+
- lib/http_client/mri/methods.rb
|
74
|
+
- lib/http_client/mri/response.rb
|
75
|
+
- lib/http_client/status.rb
|
72
76
|
- test/helper.rb
|
77
|
+
- test/http_client/jruby/test_client_configuration.rb
|
73
78
|
- test/http_client/test_basic_auth.rb
|
74
79
|
- test/http_client/test_basic_client_operations.rb
|
75
|
-
- test/http_client/test_client_configuration.rb
|
76
80
|
- test/http_client/test_client_headers.rb
|
77
81
|
- test/http_client/test_cookies.rb
|
78
82
|
- test/http_client/test_redirect.rb
|
79
|
-
- test/http_client/
|
83
|
+
- test/http_client/test_request_body.rb
|
80
84
|
- test/http_client/test_response.rb
|
81
85
|
- test/http_client/test_server_headers.rb
|
82
86
|
- test/http_test_server.rb
|
@@ -1,142 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
class TestClientConfiguration < Test::Unit::TestCase
|
4
|
-
def test_timeout
|
5
|
-
client = HTTP::Client.new(:default_host => "http://localhost:8080", :timeout_in_seconds => 2)
|
6
|
-
|
7
|
-
assert_raises(Timeout::Error) do
|
8
|
-
client.get("/slow", :sleep => "30")
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_protocol_version
|
13
|
-
config = HTTP::ClientConfiguration.new(:protocol_version => "HTTP 1.0")
|
14
|
-
assert_equal(config.protocol_version.to_s, "HTTP/1.0")
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_strict_transfer_encodeing
|
18
|
-
config = HTTP::ClientConfiguration.new(:strict_transfer_encoding => true)
|
19
|
-
assert_equal(config.strict_transfer_encoding, true)
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_http_element_charset
|
23
|
-
config = HTTP::ClientConfiguration.new(:http_element_charset => "ASCII")
|
24
|
-
assert_equal(config.http_element_charset, "ASCII")
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_use_expect_continue
|
28
|
-
config = HTTP::ClientConfiguration.new(:use_expect_continue => true)
|
29
|
-
assert_equal(config.use_expect_continue, true)
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_wait_for_continue
|
33
|
-
config = HTTP::ClientConfiguration.new(:wait_for_continue => true)
|
34
|
-
assert_equal(config.wait_for_continue, true)
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_user_agent
|
38
|
-
user_agent_name = "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.0.3) Gecko/2008092414 Firefox/3.0.3"
|
39
|
-
config = HTTP::ClientConfiguration.new(:user_agent => user_agent_name)
|
40
|
-
assert_equal(config.user_agent, user_agent_name)
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_tcp_nodelay
|
44
|
-
config = HTTP::ClientConfiguration.new(:tcp_nodelay => true)
|
45
|
-
assert_equal(config.tcp_nodelay, true)
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_so_linger
|
49
|
-
config = HTTP::ClientConfiguration.new(:so_linger => 3000)
|
50
|
-
assert_equal(config.so_linger, 3000)
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_so_reuseaddr
|
54
|
-
config = HTTP::ClientConfiguration.new(:so_reuseaddr => true)
|
55
|
-
assert_equal(config.so_reuseaddr, true)
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_socket_buffer_size
|
59
|
-
config = HTTP::ClientConfiguration.new(:socket_buffer_size => 10000)
|
60
|
-
assert_equal(config.socket_buffer_size, 10000)
|
61
|
-
end
|
62
|
-
|
63
|
-
def test_connection_timeout
|
64
|
-
config = HTTP::ClientConfiguration.new(:connection_timeout => 2)
|
65
|
-
assert_equal(config.connection_timeout, 2)
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_max_line_length
|
69
|
-
config = HTTP::ClientConfiguration.new(:max_line_length => 2)
|
70
|
-
assert_equal(config.max_line_length, 2)
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_max_header_count
|
74
|
-
config = HTTP::ClientConfiguration.new(:max_header_count => 10)
|
75
|
-
assert_equal(config.max_header_count, 10)
|
76
|
-
end
|
77
|
-
|
78
|
-
def test_stale_connection_check
|
79
|
-
config = HTTP::ClientConfiguration.new(:stale_connection_check => true)
|
80
|
-
assert_equal(config.stale_connection_check, true)
|
81
|
-
end
|
82
|
-
|
83
|
-
def test_local_address
|
84
|
-
config = HTTP::ClientConfiguration.new(:local_address => "127.0.0.1")
|
85
|
-
assert_equal(config.local_address.get_host_address, "127.0.0.1")
|
86
|
-
end
|
87
|
-
|
88
|
-
def test_default_proxy
|
89
|
-
config = HTTP::ClientConfiguration.new(:default_proxy => "http://127.0.0.1:8080")
|
90
|
-
assert_equal(config.default_proxy.to_s, "http://127.0.0.1:8080")
|
91
|
-
end
|
92
|
-
|
93
|
-
def test_date_patterns
|
94
|
-
config = HTTP::ClientConfiguration.new(:date_patterns => ["MDy"])
|
95
|
-
assert(config.date_patterns.include? 'MDy')
|
96
|
-
end
|
97
|
-
|
98
|
-
def test_single_cookie_header
|
99
|
-
config = HTTP::ClientConfiguration.new(:single_cookie_header => true)
|
100
|
-
assert_equal(config.single_cookie_header, true)
|
101
|
-
end
|
102
|
-
|
103
|
-
def test_credential_charset
|
104
|
-
config = HTTP::ClientConfiguration.new(:credential_charset => "ASCII")
|
105
|
-
assert_equal(config.credential_charset, "ASCII")
|
106
|
-
end
|
107
|
-
|
108
|
-
def test_cookie_policy
|
109
|
-
config = HTTP::ClientConfiguration.new(:cookie_policy => "RFC2109")
|
110
|
-
assert_equal(config.cookie_policy, "RFC2109")
|
111
|
-
end
|
112
|
-
|
113
|
-
def test_handle_authentication
|
114
|
-
config = HTTP::ClientConfiguration.new(:handle_authentication => true)
|
115
|
-
assert_equal(config.handle_authentication, true)
|
116
|
-
end
|
117
|
-
|
118
|
-
def test_handle_redirects
|
119
|
-
config = HTTP::ClientConfiguration.new(:handle_redirects => true)
|
120
|
-
assert_equal(config.handle_redirects, true)
|
121
|
-
end
|
122
|
-
|
123
|
-
def test_max_redirects
|
124
|
-
config = HTTP::ClientConfiguration.new(:max_redirects => 1)
|
125
|
-
assert_equal(config.max_redirects, 1)
|
126
|
-
end
|
127
|
-
|
128
|
-
def test_allow_circular_redirects
|
129
|
-
config = HTTP::ClientConfiguration.new(:allow_circular_redirects => true)
|
130
|
-
assert_equal(config.allow_circular_redirects, true)
|
131
|
-
end
|
132
|
-
|
133
|
-
def test_virtual_host
|
134
|
-
config = HTTP::ClientConfiguration.new(:virtual_host => "http://127.0.0.1:80")
|
135
|
-
assert_equal(config.virtual_host.to_s, "http://127.0.0.1:80")
|
136
|
-
end
|
137
|
-
|
138
|
-
def test_default_host
|
139
|
-
config = HTTP::ClientConfiguration.new(:default_host => "http://localhost:8080")
|
140
|
-
assert_equal(config.default_host.to_s, "http://localhost:8080")
|
141
|
-
end
|
142
|
-
end
|