httpclient 2.8.2.4 → 2.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/lib/hexdump.rb +12 -12
- data/lib/httpclient/http.rb +8 -8
- data/lib/httpclient/jruby_ssl_socket.rb +90 -39
- data/lib/httpclient/session.rb +13 -7
- data/lib/httpclient/ssl_config.rb +75 -123
- data/lib/httpclient/ssl_socket.rb +26 -24
- data/lib/httpclient/util.rb +1 -1
- data/lib/httpclient/version.rb +1 -1
- data/lib/httpclient.rb +7 -1
- data/lib/jsonclient.rb +8 -5
- data/sample/auth.rb +1 -1
- data/sample/generate_test_keys.rb +99 -0
- data/test/ca-chain.pem +32 -36
- data/test/ca.cert +16 -19
- data/test/ca.key +27 -0
- data/test/ca.srl +1 -0
- data/test/client-pass.key +30 -18
- data/test/client.cert +17 -16
- data/test/client.key +25 -13
- data/test/fixtures/verify.alt.cert +20 -0
- data/test/fixtures/verify.foo.cert +20 -0
- data/test/fixtures/verify.key +27 -0
- data/test/fixtures/verify.localhost.cert +20 -0
- data/test/helper.rb +5 -7
- data/test/jruby_ssl_socket/test_pemutils.rb +32 -0
- data/test/server.cert +16 -15
- data/test/server.key +25 -13
- data/test/subca.cert +16 -17
- data/test/subca.key +27 -0
- data/test/subca.srl +1 -0
- data/test/test_auth.rb +21 -17
- data/test/test_hexdump.rb +1 -2
- data/test/test_http-access2.rb +31 -23
- data/test/test_httpclient.rb +69 -58
- data/test/test_jsonclient.rb +18 -0
- data/test/test_ssl.rb +99 -90
- metadata +32 -9
data/test/test_auth.rb
CHANGED
@@ -127,6 +127,10 @@ class TestAuth < Test::Unit::TestCase
|
|
127
127
|
def data_size
|
128
128
|
@active && @value ? @value.size : 0
|
129
129
|
end
|
130
|
+
|
131
|
+
def value
|
132
|
+
@value ||= ""
|
133
|
+
end
|
130
134
|
end
|
131
135
|
end
|
132
136
|
end
|
@@ -176,7 +180,7 @@ class TestAuth < Test::Unit::TestCase
|
|
176
180
|
c.www_auth.basic_auth.instance_eval { @scheme = "BASIC" }
|
177
181
|
#
|
178
182
|
c.force_basic_auth = true
|
179
|
-
c.debug_dev = str = ''
|
183
|
+
c.debug_dev = str = ''.dup
|
180
184
|
c.set_auth("http://localhost:#{serverport}/", 'admin', 'admin')
|
181
185
|
assert_equal('basic_auth OK', c.get_content("http://localhost:#{serverport}/basic_auth"))
|
182
186
|
assert_equal('Authorization: Basic YWRtaW46YWRtaW4='.upcase, str.split(/\r?\n/)[5].upcase)
|
@@ -230,11 +234,11 @@ class TestAuth < Test::Unit::TestCase
|
|
230
234
|
c.www_auth.basic_auth.instance_eval { @scheme = "BASIC" }
|
231
235
|
c.set_auth("http://localhost:#{serverport}/", 'admin', 'admin')
|
232
236
|
|
233
|
-
|
237
|
+
20.times.map { |idx|
|
234
238
|
Thread.new(idx) { |idx2|
|
235
239
|
Thread.abort_on_exception = true
|
236
240
|
Thread.pass
|
237
|
-
c.get("http://localhost:#{serverport}/basic_auth?#{idx2}")
|
241
|
+
assert_equal('basic_auth OK', c.get("http://localhost:#{serverport}/basic_auth?#{idx2}").body)
|
238
242
|
}
|
239
243
|
}.map { |t|
|
240
244
|
t.join
|
@@ -249,7 +253,7 @@ class TestAuth < Test::Unit::TestCase
|
|
249
253
|
c.set_auth("http://localhost:#{serverport}/", 'admin', 'admin')
|
250
254
|
assert_equal('basic_auth OK', c.get_content("http://localhost:#{serverport}/basic_auth/"))
|
251
255
|
c.test_loopback_http_response << "HTTP/1.0 200 OK\nContent-Length: 2\n\nOK"
|
252
|
-
c.debug_dev = str = ''
|
256
|
+
c.debug_dev = str = ''.dup
|
253
257
|
c.get_content("http://localhost:#{serverport}/basic_auth/sub/dir/")
|
254
258
|
assert_match(/Authorization: Basic YWRtaW46YWRtaW4=/, str)
|
255
259
|
end
|
@@ -265,7 +269,7 @@ class TestAuth < Test::Unit::TestCase
|
|
265
269
|
c.set_auth("http://localhost:#{serverport}/", 'admin', 'admin')
|
266
270
|
assert_equal('digest_auth OK', c.get_content("http://localhost:#{serverport}/digest_auth/"))
|
267
271
|
c.test_loopback_http_response << "HTTP/1.0 200 OK\nContent-Length: 2\n\nOK"
|
268
|
-
c.debug_dev = str = ''
|
272
|
+
c.debug_dev = str = ''.dup
|
269
273
|
c.get_content("http://localhost:#{serverport}/digest_auth/sub/dir/")
|
270
274
|
assert_match(/Authorization: Digest/, str)
|
271
275
|
end
|
@@ -311,7 +315,7 @@ class TestAuth < Test::Unit::TestCase
|
|
311
315
|
c.set_auth('http://example.com/', 'admin', 'admin')
|
312
316
|
c.test_loopback_http_response << "HTTP/1.0 401 Unauthorized\nWWW-Authenticate: Basic realm=\"foo\"\nWWW-Authenticate: Digest realm=\"foo\", nonce=\"nonce\", stale=false\nContent-Length: 2\n\nNG"
|
313
317
|
c.test_loopback_http_response << "HTTP/1.0 200 OK\nContent-Length: 2\n\nOK"
|
314
|
-
c.debug_dev = str = ''
|
318
|
+
c.debug_dev = str = ''.dup
|
315
319
|
c.get_content('http://example.com/')
|
316
320
|
assert_match(/^Authorization: Digest/, str)
|
317
321
|
end
|
@@ -327,7 +331,7 @@ class TestAuth < Test::Unit::TestCase
|
|
327
331
|
c.set_proxy_auth('admin', 'admin')
|
328
332
|
c.test_loopback_http_response << "HTTP/1.0 407 Unauthorized\nProxy-Authenticate: Basic realm=\"foo\"\nContent-Length: 2\n\nNG"
|
329
333
|
c.test_loopback_http_response << "HTTP/1.0 200 OK\nContent-Length: 2\n\nOK"
|
330
|
-
c.debug_dev = str = ''
|
334
|
+
c.debug_dev = str = ''.dup
|
331
335
|
c.get_content('http://example.com/')
|
332
336
|
assert_match(/Proxy-Authorization: Basic YWRtaW46YWRtaW4=/, str)
|
333
337
|
end
|
@@ -337,7 +341,7 @@ class TestAuth < Test::Unit::TestCase
|
|
337
341
|
c.set_proxy_auth('admin', 'admin')
|
338
342
|
c.force_basic_auth = true
|
339
343
|
c.test_loopback_http_response << "HTTP/1.0 200 OK\nContent-Length: 2\n\nOK"
|
340
|
-
c.debug_dev = str = ''
|
344
|
+
c.debug_dev = str = ''.dup
|
341
345
|
c.get_content('http://example.com/')
|
342
346
|
assert_match(/Proxy-Authorization: Basic YWRtaW46YWRtaW4=/, str)
|
343
347
|
end
|
@@ -349,7 +353,7 @@ class TestAuth < Test::Unit::TestCase
|
|
349
353
|
c.test_loopback_http_response << "HTTP/1.0 200 OK\nContent-Length: 2\n\nOK"
|
350
354
|
c.test_loopback_http_response << "HTTP/1.0 200 OK\nContent-Length: 2\n\nOK"
|
351
355
|
c.get_content('http://www1.example.com/')
|
352
|
-
c.debug_dev = str = ''
|
356
|
+
c.debug_dev = str = ''.dup
|
353
357
|
c.get_content('http://www2.example.com/')
|
354
358
|
assert_match(/Proxy-Authorization: Basic YWRtaW46YWRtaW4=/, str)
|
355
359
|
end
|
@@ -363,7 +367,7 @@ class TestAuth < Test::Unit::TestCase
|
|
363
367
|
ha1 = md5.hexdigest("admin:foo:admin")
|
364
368
|
ha2 = md5.hexdigest("GET:/")
|
365
369
|
response = md5.hexdigest("#{ha1}:nonce:#{ha2}")
|
366
|
-
c.debug_dev = str = ''
|
370
|
+
c.debug_dev = str = ''.dup
|
367
371
|
c.get_content('http://example.com/')
|
368
372
|
assert_match(/Proxy-Authorization: Digest/, str)
|
369
373
|
assert_match(%r"response=\"#{response}\"", str)
|
@@ -394,7 +398,7 @@ class TestAuth < Test::Unit::TestCase
|
|
394
398
|
ha1 = md5.hexdigest("admin:foo:admin")
|
395
399
|
ha2 = md5.hexdigest("GET:/")
|
396
400
|
response = md5.hexdigest("#{ha1}:nonce:#{ha2}")
|
397
|
-
c.debug_dev = str = ''
|
401
|
+
c.debug_dev = str = ''.dup
|
398
402
|
c.get_content('http://example.com/')
|
399
403
|
assert_match(/Proxy-Authorization: Digest/, str)
|
400
404
|
assert_match(%r"response=\"#{response}\"", str)
|
@@ -411,7 +415,7 @@ class TestAuth < Test::Unit::TestCase
|
|
411
415
|
ha2 = md5.hexdigest("GET:/")
|
412
416
|
response = md5.hexdigest("#{ha1}:nonce:#{ha2}")
|
413
417
|
c.get_content('http://www1.example.com/')
|
414
|
-
c.debug_dev = str = ''
|
418
|
+
c.debug_dev = str = ''.dup
|
415
419
|
c.get_content('http://www2.example.com/')
|
416
420
|
assert_match(/Proxy-Authorization: Digest/, str)
|
417
421
|
assert_match(%r"response=\"#{response}\"", str)
|
@@ -433,19 +437,19 @@ class TestAuth < Test::Unit::TestCase
|
|
433
437
|
c.www_auth.oauth.set_config('http://photos.example.net/', config)
|
434
438
|
c.www_auth.oauth.challenge('http://photos.example.net/')
|
435
439
|
c.test_loopback_http_response << "HTTP/1.0 200 OK\nContent-Length: 2\n\nOK"
|
436
|
-
c.debug_dev = str = ''
|
440
|
+
c.debug_dev = str = ''.dup
|
437
441
|
c.get_content('http://photos.example.net/photos', [[:file, 'vacation.jpg'], [:size, 'original']])
|
438
442
|
assert(str.index(%q(GET /photos?file=vacation.jpg&size=original)))
|
439
443
|
assert(str.index(%q(Authorization: OAuth realm="http://photos.example.net/", oauth_consumer_key="dpf43f3p2l4k3l03", oauth_nonce="kllo9940pd9333jh", oauth_signature="tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1191242096", oauth_token="nnch734d00sl2jdk", oauth_version="1.0")))
|
440
444
|
#
|
441
445
|
c.test_loopback_http_response << "HTTP/1.0 200 OK\nContent-Length: 2\n\nOK"
|
442
|
-
c.debug_dev = str = ''
|
446
|
+
c.debug_dev = str = ''.dup
|
443
447
|
c.get_content('http://photos.example.net/photos?file=vacation.jpg&size=original')
|
444
448
|
assert(str.index(%q(GET /photos?file=vacation.jpg&size=original)))
|
445
449
|
assert(str.index(%q(Authorization: OAuth realm="http://photos.example.net/", oauth_consumer_key="dpf43f3p2l4k3l03", oauth_nonce="kllo9940pd9333jh", oauth_signature="tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1191242096", oauth_token="nnch734d00sl2jdk", oauth_version="1.0")))
|
446
450
|
#
|
447
451
|
c.test_loopback_http_response << "HTTP/1.0 200 OK\nContent-Length: 2\n\nOK"
|
448
|
-
c.debug_dev = str = ''
|
452
|
+
c.debug_dev = str = ''.dup
|
449
453
|
c.post_content('http://photos.example.net/photos', [[:file, 'vacation.jpg'], [:size, 'original']])
|
450
454
|
assert(str.index(%q(POST /photos)))
|
451
455
|
assert(str.index(%q(Authorization: OAuth realm="http://photos.example.net/", oauth_consumer_key="dpf43f3p2l4k3l03", oauth_nonce="kllo9940pd9333jh", oauth_signature="wPkvxykrw%2BBTdCcGqKr%2B3I%2BPsiM%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1191242096", oauth_token="nnch734d00sl2jdk", oauth_version="1.0")))
|
@@ -475,7 +479,7 @@ class TestAuth < Test::Unit::TestCase
|
|
475
479
|
c.test_loopback_http_response << %Q(HTTP/1.1 401 Unauthorized\r\nWWW-Authenticate: NTLM TlRMTVNTUAACAAAAAAAAACgAAAABAAAAAAAAAAAAAAA=\r\nConnection: Keep-Alive\r\nContent-Length: 0\r\n\r\n)
|
476
480
|
c.test_loopback_http_response << %Q(HTTP/1.0 200 OK\r\nConnection: Keep-Alive\r\nContent-Length: 1\r\n\r\na)
|
477
481
|
c.test_loopback_http_response << %Q(HTTP/1.0 200 OK\r\nConnection: Keep-Alive\r\nContent-Length: 1\r\n\r\nb)
|
478
|
-
c.debug_dev = str = ''
|
482
|
+
c.debug_dev = str = ''.dup
|
479
483
|
c.set_auth('http://www.example.org/', 'admin', 'admin')
|
480
484
|
# Do NTLM negotiation
|
481
485
|
c.get('http://www.example.org/foo')
|
@@ -484,7 +488,7 @@ class TestAuth < Test::Unit::TestCase
|
|
484
488
|
assert_match(%r(Authorization: NTLM), str)
|
485
489
|
assert_not_match(%r(Authorization: Basic), str)
|
486
490
|
# ditto for other resource that is protected with NTLM
|
487
|
-
c.debug_dev = str = ''
|
491
|
+
c.debug_dev = str = ''.dup
|
488
492
|
c.get('http://www.example.org/foo/subdir')
|
489
493
|
assert_not_match(%r(Authorization: NTLM), str)
|
490
494
|
assert_not_match(%r(Authorization: Basic), str)
|
data/test/test_hexdump.rb
CHANGED
@@ -5,8 +5,7 @@ require 'hexdump'
|
|
5
5
|
|
6
6
|
class TestHexDump < Test::Unit::TestCase
|
7
7
|
def test_encode
|
8
|
-
str = "\032l\277\370\2429\216\236\351[{\{\262\350\274\376"
|
9
|
-
str.force_encoding('BINARY') if str.respond_to?(:force_encoding)
|
8
|
+
str = "\032l\277\370\2429\216\236\351[{\{\262\350\274\376".b
|
10
9
|
assert_equal(["00000000 1a6cbff8 a2398e9e e95b7b7b b2e8bcfe .l...9...[{{...."], HexDump.encode(str))
|
11
10
|
end
|
12
11
|
end if defined?(RUBY_ENGINE) && RUBY_ENGINE != "rbx" && RUBY_VERSION >= "1.9.0"
|
data/test/test_http-access2.rb
CHANGED
@@ -24,7 +24,7 @@ class TestClient < Test::Unit::TestCase
|
|
24
24
|
def test_initialize
|
25
25
|
setup_proxyserver
|
26
26
|
escape_noproxy do
|
27
|
-
@proxyio.
|
27
|
+
@proxyio.truncate(0)
|
28
28
|
@client = HTTPAccess2::Client.new(proxyurl)
|
29
29
|
assert_equal(urify(proxyurl), @client.proxy)
|
30
30
|
assert_equal(200, @client.head(serverurl).status)
|
@@ -34,7 +34,7 @@ class TestClient < Test::Unit::TestCase
|
|
34
34
|
|
35
35
|
def test_agent_name
|
36
36
|
@client = HTTPAccess2::Client.new(nil, "agent_name_foo")
|
37
|
-
str = ""
|
37
|
+
str = "".dup
|
38
38
|
@client.debug_dev = str
|
39
39
|
@client.get(serverurl)
|
40
40
|
lines = str.split(/(?:\r?\n)+/)
|
@@ -44,7 +44,7 @@ class TestClient < Test::Unit::TestCase
|
|
44
44
|
|
45
45
|
def test_from
|
46
46
|
@client = HTTPAccess2::Client.new(nil, nil, "from_bar")
|
47
|
-
str = ""
|
47
|
+
str = "".dup
|
48
48
|
@client.debug_dev = str
|
49
49
|
@client.get(serverurl)
|
50
50
|
lines = str.split(/(?:\r?\n)+/)
|
@@ -53,7 +53,7 @@ class TestClient < Test::Unit::TestCase
|
|
53
53
|
end
|
54
54
|
|
55
55
|
def test_debug_dev
|
56
|
-
str = ""
|
56
|
+
str = "".dup
|
57
57
|
@client.debug_dev = str
|
58
58
|
assert(str.empty?)
|
59
59
|
@client.get(serverurl)
|
@@ -62,7 +62,7 @@ class TestClient < Test::Unit::TestCase
|
|
62
62
|
|
63
63
|
def _test_protocol_version_http09
|
64
64
|
@client.protocol_version = 'HTTP/0.9'
|
65
|
-
str = ""
|
65
|
+
str = "".dup
|
66
66
|
@client.debug_dev = str
|
67
67
|
@client.get(serverurl + 'hello')
|
68
68
|
lines = str.split(/(?:\r?\n)+/)
|
@@ -76,7 +76,7 @@ class TestClient < Test::Unit::TestCase
|
|
76
76
|
|
77
77
|
def test_protocol_version_http10
|
78
78
|
@client.protocol_version = 'HTTP/1.0'
|
79
|
-
str = ""
|
79
|
+
str = "".dup
|
80
80
|
@client.debug_dev = str
|
81
81
|
@client.get(serverurl + 'hello')
|
82
82
|
lines = str.split(/(?:\r?\n)+/)
|
@@ -88,7 +88,7 @@ class TestClient < Test::Unit::TestCase
|
|
88
88
|
end
|
89
89
|
|
90
90
|
def test_protocol_version_http11
|
91
|
-
str = ""
|
91
|
+
str = "".dup
|
92
92
|
@client.debug_dev = str
|
93
93
|
@client.get(serverurl)
|
94
94
|
lines = str.split(/(?:\r?\n)+/)
|
@@ -97,7 +97,7 @@ class TestClient < Test::Unit::TestCase
|
|
97
97
|
assert_equal("GET / HTTP/1.1", lines[3])
|
98
98
|
assert_equal("Host: localhost:#{serverport}", lines[7])
|
99
99
|
@client.protocol_version = 'HTTP/1.1'
|
100
|
-
str = ""
|
100
|
+
str = "".dup
|
101
101
|
@client.debug_dev = str
|
102
102
|
@client.get(serverurl)
|
103
103
|
lines = str.split(/(?:\r?\n)+/)
|
@@ -105,7 +105,7 @@ class TestClient < Test::Unit::TestCase
|
|
105
105
|
assert_equal("! CONNECTION ESTABLISHED", lines[2])
|
106
106
|
assert_equal("GET / HTTP/1.1", lines[3])
|
107
107
|
@client.protocol_version = 'HTTP/1.0'
|
108
|
-
str = ""
|
108
|
+
str = "".dup
|
109
109
|
@client.debug_dev = str
|
110
110
|
@client.get(serverurl)
|
111
111
|
lines = str.split(/(?:\r?\n)+/)
|
@@ -130,12 +130,12 @@ class TestClient < Test::Unit::TestCase
|
|
130
130
|
@client.proxy = uri
|
131
131
|
assert_equal(uri, @client.proxy)
|
132
132
|
#
|
133
|
-
@proxyio.
|
133
|
+
@proxyio.truncate(0)
|
134
134
|
@client.proxy = nil
|
135
135
|
assert_equal(200, @client.head(serverurl).status)
|
136
136
|
assert(@proxyio.string.empty?)
|
137
137
|
#
|
138
|
-
@proxyio.
|
138
|
+
@proxyio.truncate(0)
|
139
139
|
@client.proxy = proxyurl
|
140
140
|
assert_equal(200, @client.head(serverurl).status)
|
141
141
|
assert(!@proxyio.string.empty?)
|
@@ -143,7 +143,7 @@ class TestClient < Test::Unit::TestCase
|
|
143
143
|
end
|
144
144
|
|
145
145
|
def test_noproxy_for_localhost
|
146
|
-
@proxyio.
|
146
|
+
@proxyio.truncate(0)
|
147
147
|
@client.proxy = proxyurl
|
148
148
|
assert_equal(200, @client.head(serverurl).status)
|
149
149
|
assert(@proxyio.string.empty?)
|
@@ -154,36 +154,36 @@ class TestClient < Test::Unit::TestCase
|
|
154
154
|
escape_noproxy do
|
155
155
|
# proxy is not set.
|
156
156
|
@client.no_proxy = 'localhost'
|
157
|
-
@proxyio.
|
157
|
+
@proxyio.truncate(0)
|
158
158
|
@client.proxy = nil
|
159
159
|
assert_equal(200, @client.head(serverurl).status)
|
160
160
|
assert(/accept/ !~ @proxyio.string)
|
161
161
|
#
|
162
|
-
@proxyio.
|
162
|
+
@proxyio.truncate(0)
|
163
163
|
@client.proxy = proxyurl
|
164
164
|
assert_equal(200, @client.head(serverurl).status)
|
165
165
|
assert(/accept/ !~ @proxyio.string)
|
166
166
|
#
|
167
167
|
@client.no_proxy = 'foobar'
|
168
|
-
@proxyio.
|
168
|
+
@proxyio.truncate(0)
|
169
169
|
@client.proxy = proxyurl
|
170
170
|
assert_equal(200, @client.head(serverurl).status)
|
171
171
|
assert(/accept/ =~ @proxyio.string)
|
172
172
|
#
|
173
173
|
@client.no_proxy = 'foobar,localhost:baz'
|
174
|
-
@proxyio.
|
174
|
+
@proxyio.truncate(0)
|
175
175
|
@client.proxy = proxyurl
|
176
176
|
assert_equal(200, @client.head(serverurl).status)
|
177
177
|
assert(/accept/ !~ @proxyio.string)
|
178
178
|
#
|
179
179
|
@client.no_proxy = 'foobar,localhost:443'
|
180
|
-
@proxyio.
|
180
|
+
@proxyio.truncate(0)
|
181
181
|
@client.proxy = proxyurl
|
182
182
|
assert_equal(200, @client.head(serverurl).status)
|
183
183
|
assert(/accept/ =~ @proxyio.string)
|
184
184
|
#
|
185
185
|
@client.no_proxy = "foobar,localhost:443:localhost:#{serverport},baz"
|
186
|
-
@proxyio.
|
186
|
+
@proxyio.truncate(0)
|
187
187
|
@client.proxy = proxyurl
|
188
188
|
assert_equal(200, @client.head(serverurl).status)
|
189
189
|
assert(/accept/ !~ @proxyio.string)
|
@@ -314,14 +314,14 @@ class TestClient < Test::Unit::TestCase
|
|
314
314
|
end
|
315
315
|
|
316
316
|
def test_extra_headers
|
317
|
-
str = ""
|
317
|
+
str = "".dup
|
318
318
|
@client.debug_dev = str
|
319
319
|
@client.head(serverurl, nil, {"ABC" => "DEF"})
|
320
320
|
lines = str.split(/(?:\r?\n)+/)
|
321
321
|
assert_equal("= Request", lines[0])
|
322
322
|
assert_match("ABC: DEF", lines[4])
|
323
323
|
#
|
324
|
-
str = ""
|
324
|
+
str = "".dup
|
325
325
|
@client.debug_dev = str
|
326
326
|
@client.get(serverurl, nil, [["ABC", "DEF"], ["ABC", "DEF"]])
|
327
327
|
lines = str.split(/(?:\r?\n)+/)
|
@@ -331,9 +331,17 @@ class TestClient < Test::Unit::TestCase
|
|
331
331
|
end
|
332
332
|
|
333
333
|
def test_timeout
|
334
|
-
|
335
|
-
assert_equal(
|
336
|
-
assert_equal(
|
334
|
+
client = HTTPClient.new
|
335
|
+
assert_equal(60, client.connect_timeout)
|
336
|
+
assert_equal(120, client.send_timeout)
|
337
|
+
assert_equal(60, client.receive_timeout)
|
338
|
+
#
|
339
|
+
client.connect_timeout = 1
|
340
|
+
client.send_timeout = 2
|
341
|
+
client.receive_timeout = 3
|
342
|
+
assert_equal(1, client.connect_timeout)
|
343
|
+
assert_equal(2, client.send_timeout)
|
344
|
+
assert_equal(3, client.receive_timeout)
|
337
345
|
end
|
338
346
|
|
339
347
|
def test_connect_timeout
|