curb 0.9.8 → 1.0.5

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.
@@ -0,0 +1,37 @@
1
+ class TestCurbCurlProtocols < Test::Unit::TestCase
2
+ include TestServerMethods
3
+
4
+ def setup
5
+ @easy = Curl::Easy.new
6
+ @easy.set :protocols, Curl::CURLPROTO_HTTP | Curl::CURLPROTO_HTTPS
7
+ @easy.follow_location = true
8
+ server_setup
9
+ end
10
+
11
+ def test_protocol_allowed
12
+ @easy.set :url, "http://127.0.0.1:9129/this_file_does_not_exist.html"
13
+ @easy.perform
14
+ assert_equal 404, @easy.response_code
15
+ end
16
+
17
+ def test_protocol_denied
18
+ @easy.set :url, "gopher://google.com/"
19
+ assert_raises Curl::Err::UnsupportedProtocolError do
20
+ @easy.perform
21
+ end
22
+ end
23
+
24
+ def test_redir_protocol_allowed
25
+ @easy.set :url, TestServlet.url + "/redirect"
26
+ @easy.set :redir_protocols, Curl::CURLPROTO_HTTP
27
+ @easy.perform
28
+ end
29
+
30
+ def test_redir_protocol_denied
31
+ @easy.set :url, TestServlet.url + "/redirect"
32
+ @easy.set :redir_protocols, Curl::CURLPROTO_HTTPS
33
+ assert_raises Curl::Err::UnsupportedProtocolError do
34
+ @easy.perform
35
+ end
36
+ end
37
+ end
data/tests/timeout.rb CHANGED
@@ -17,9 +17,13 @@ class TestCurbTimeouts < Test::Unit::TestCase
17
17
  def test_overall_timeout_on_dead_transfer
18
18
  curl = Curl::Easy.new(wait_url(2))
19
19
  curl.timeout = 1
20
- assert_raise(Curl::Err::TimeoutError) do
20
+ exception = assert_raise(Curl::Err::TimeoutError) do
21
21
  curl.http_get
22
22
  end
23
+ assert_match(
24
+ /^Timeout was reached: Operation timed out after/,
25
+ exception.message
26
+ )
23
27
  end
24
28
 
25
29
  def test_overall_timeout_ms_on_dead_transfer
@@ -44,16 +48,20 @@ class TestCurbTimeouts < Test::Unit::TestCase
44
48
  curl = Curl::Easy.new(serve_url(100, 2, 3))
45
49
  curl.timeout = 1
46
50
  # transfer is aborted despite data being exchanged
47
- assert_raise(Curl::Err::TimeoutError) do
51
+ exception = assert_raise(Curl::Err::TimeoutError) do
48
52
  curl.http_get
49
53
  end
54
+ assert_match(
55
+ /^Timeout was reached: Operation timed out after/,
56
+ exception.message
57
+ )
50
58
  end
51
59
 
52
60
  def test_low_speed_time_on_slow_transfer
53
61
  curl = Curl::Easy.new(serve_url(100, 1, 3))
54
62
  curl.low_speed_time = 2
55
63
  # use default low_speed_limit of 1
56
- assert true, curl.http_get
64
+ assert_equal true, curl.http_get
57
65
  end
58
66
 
59
67
  def test_low_speed_time_on_very_slow_transfer
@@ -63,18 +71,26 @@ class TestCurbTimeouts < Test::Unit::TestCase
63
71
  # XXX for some reason this test fails if low speed limit is not specified
64
72
  curl.low_speed_limit = 1
65
73
  # use default low_speed_limit of 1
66
- assert_raise(Curl::Err::TimeoutError) do
74
+ exception = assert_raise(Curl::Err::TimeoutError) do
67
75
  curl.http_get
68
76
  end
77
+ assert_match(
78
+ /^Timeout was reached: Operation too slow/,
79
+ exception.message
80
+ )
69
81
  end
70
82
 
71
83
  def test_low_speed_limit_on_slow_transfer
72
84
  curl = Curl::Easy.new(serve_url(10, 1, 3))
73
85
  curl.low_speed_time = 2
74
86
  curl.low_speed_limit = 1000
75
- assert_raise(Curl::Err::TimeoutError) do
87
+ exception = assert_raise(Curl::Err::TimeoutError) do
76
88
  curl.http_get
77
89
  end
90
+ assert_match(
91
+ /^Timeout was reached: Operation too slow/,
92
+ exception.message
93
+ )
78
94
  end
79
95
 
80
96
  def test_clearing_low_speed_time
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: curb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.8
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ross Bamford
8
8
  - Todd A. Fisher
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-01-28 00:00:00.000000000 Z
12
+ date: 2023-01-04 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Curb (probably CUrl-RuBy or something) provides Ruby-language bindings
15
15
  for the libcurl(3), a fully-featured client-side URL transfer library. cURL and
@@ -26,6 +26,7 @@ files:
26
26
  - README.markdown
27
27
  - Rakefile
28
28
  - doc.rb
29
+ - ext/banned.h
29
30
  - ext/curb.c
30
31
  - ext/curb.h
31
32
  - ext/curb_easy.c
@@ -49,11 +50,14 @@ files:
49
50
  - tests/bug_crash_on_progress.rb
50
51
  - tests/bug_curb_easy_blocks_ruby_threads.rb
51
52
  - tests/bug_curb_easy_post_with_string_no_content_length_header.rb
53
+ - tests/bug_follow_redirect_288.rb
52
54
  - tests/bug_instance_post_differs_from_class_post.rb
53
55
  - tests/bug_issue102.rb
56
+ - tests/bug_issue277.rb
54
57
  - tests/bug_multi_segfault.rb
55
58
  - tests/bug_postfields_crash.rb
56
59
  - tests/bug_postfields_crash2.rb
60
+ - tests/bug_raise_on_callback.rb
57
61
  - tests/bug_require_last_or_segfault.rb
58
62
  - tests/bugtests.rb
59
63
  - tests/helper.rb
@@ -65,16 +69,18 @@ files:
65
69
  - tests/tc_curl_easy.rb
66
70
  - tests/tc_curl_easy_resolve.rb
67
71
  - tests/tc_curl_easy_setopt.rb
72
+ - tests/tc_curl_maxfilesize.rb
68
73
  - tests/tc_curl_multi.rb
69
74
  - tests/tc_curl_postfield.rb
75
+ - tests/tc_curl_protocols.rb
70
76
  - tests/timeout.rb
71
77
  - tests/timeout_server.rb
72
78
  - tests/unittests.rb
73
- homepage: http://curb.rubyforge.org/
79
+ homepage: https://github.com/taf2/curb
74
80
  licenses:
75
- - Ruby
81
+ - MIT
76
82
  metadata: {}
77
- post_install_message:
83
+ post_install_message:
78
84
  rdoc_options:
79
85
  - "--main"
80
86
  - README.markdown
@@ -92,35 +98,39 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
98
  - !ruby/object:Gem::Version
93
99
  version: '0'
94
100
  requirements: []
95
- rubyforge_project: curb
96
- rubygems_version: 2.7.7
97
- signing_key:
101
+ rubygems_version: 3.2.33
102
+ signing_key:
98
103
  specification_version: 4
99
104
  summary: Ruby libcurl bindings
100
105
  test_files:
101
- - tests/tc_curl_multi.rb
102
106
  - tests/alltests.rb
103
- - tests/tc_curl_easy_setopt.rb
104
- - tests/tc_curl.rb
105
- - tests/bug_postfields_crash.rb
106
- - tests/bug_crash_on_progress.rb
107
- - tests/helper.rb
108
- - tests/bug_postfields_crash2.rb
109
- - tests/bug_require_last_or_segfault.rb
110
- - tests/timeout.rb
111
107
  - tests/bug_crash_on_debug.rb
112
- - tests/unittests.rb
113
- - tests/bug_issue102.rb
108
+ - tests/bug_crash_on_progress.rb
114
109
  - tests/bug_curb_easy_blocks_ruby_threads.rb
115
- - tests/bug_multi_segfault.rb
110
+ - tests/bug_curb_easy_post_with_string_no_content_length_header.rb
111
+ - tests/bug_follow_redirect_288.rb
116
112
  - tests/bug_instance_post_differs_from_class_post.rb
113
+ - tests/bug_issue102.rb
114
+ - tests/bug_issue277.rb
115
+ - tests/bug_multi_segfault.rb
116
+ - tests/bug_postfields_crash.rb
117
+ - tests/bug_postfields_crash2.rb
118
+ - tests/bug_raise_on_callback.rb
119
+ - tests/bug_require_last_or_segfault.rb
120
+ - tests/bugtests.rb
121
+ - tests/helper.rb
122
+ - tests/mem_check.rb
117
123
  - tests/require_last_or_segfault_script.rb
118
- - tests/timeout_server.rb
124
+ - tests/signals.rb
125
+ - tests/tc_curl.rb
119
126
  - tests/tc_curl_download.rb
120
127
  - tests/tc_curl_easy.rb
121
- - tests/mem_check.rb
122
- - tests/tc_curl_postfield.rb
123
- - tests/bugtests.rb
124
128
  - tests/tc_curl_easy_resolve.rb
125
- - tests/signals.rb
126
- - tests/bug_curb_easy_post_with_string_no_content_length_header.rb
129
+ - tests/tc_curl_easy_setopt.rb
130
+ - tests/tc_curl_maxfilesize.rb
131
+ - tests/tc_curl_multi.rb
132
+ - tests/tc_curl_postfield.rb
133
+ - tests/tc_curl_protocols.rb
134
+ - tests/timeout.rb
135
+ - tests/timeout_server.rb
136
+ - tests/unittests.rb