http2 0.0.31 → 0.0.32

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.
@@ -11,7 +11,7 @@ describe Http2::UrlBuilder do
11
11
  ub.params["test"] = "true"
12
12
  ub.params["test2"] = "false"
13
13
 
14
- ub.build.should eq "https://www.github.com:443/index.php?test=true&test2=false"
14
+ expect(ub.build).to eq "https://www.github.com:443/index.php?test=true&test2=false"
15
15
  end
16
16
  end
17
17
  end
@@ -3,40 +3,43 @@ require "json"
3
3
 
4
4
  describe "Http2" do
5
5
  it "should be able to do normal post-requests." do
6
- #Test posting keep-alive and advanced post-data.
6
+ # Test posting keep-alive and advanced post-data.
7
7
  with_http do |http|
8
8
  0.upto(5) do
9
- resp = http.get("multipart_test.rhtml")
10
-
11
- resp = http.post(url: "multipart_test.rhtml?choice=post-test", post: {
12
- "val1" => "test1",
13
- "val2" => "test2",
14
- "val3" => [
15
- "test3"
16
- ],
17
- "val4" => {
18
- "val5" => "test5"
19
- },
20
- "val6" => {
21
- "val7" => [
22
- {
23
- "val8" => "test8"
24
- }
25
- ]
26
- },
27
- "val9" => ["a", "b", "d"]
28
- })
9
+ http.get("multipart_test.rhtml")
10
+
11
+ resp = http.post(
12
+ url: "multipart_test.rhtml?choice=post-test",
13
+ post: {
14
+ "val1" => "test1",
15
+ "val2" => "test2",
16
+ "val3" => [
17
+ "test3"
18
+ ],
19
+ "val4" => {
20
+ "val5" => "test5"
21
+ },
22
+ "val6" => {
23
+ "val7" => [
24
+ {
25
+ "val8" => "test8"
26
+ }
27
+ ]
28
+ },
29
+ "val9" => ["a", "b", "d"]
30
+ }
31
+ )
29
32
  res = JSON.parse(resp.body)
30
33
 
31
- res.is_a?(Hash).should eq true
32
- res["val1"].should eq "test1"
33
- res["val2"].should eq "test2"
34
- res["val3"]["0"].should eq "test3"
35
- res["val4"]["val5"].should eq "test5"
36
- res["val6"]["val7"]["0"]["val8"].should eq "test8"
37
- res["val9"]["0"].should eq "a"
38
- res["val9"]["1"].should eq "b"
39
- res["val9"]["2"].should eq "d"
34
+ expect(res.is_a?(Hash)).to eq true
35
+ expect(res["val1"]).to eq "test1"
36
+ expect(res["val2"]).to eq "test2"
37
+ expect(res["val3"]["0"]).to eq "test3"
38
+ expect(res["val4"]["val5"]).to eq "test5"
39
+ expect(res["val6"]["val7"]["0"]["val8"]).to eq "test8"
40
+ expect(res["val9"]["0"]).to eq "a"
41
+ expect(res["val9"]["1"]).to eq "b"
42
+ expect(res["val9"]["2"]).to eq "d"
40
43
  end
41
44
  end
42
45
  end
@@ -47,7 +50,7 @@ describe "Http2" do
47
50
  http.reconnect
48
51
  resp2 = http.get("multipart_test.rhtml")
49
52
 
50
- resp1.body.should eq resp2.body
53
+ expect(resp1.body).to eq resp2.body
51
54
  end
52
55
  end
53
56
 
@@ -57,23 +60,26 @@ describe "Http2" do
57
60
  fpath = File.realpath(__FILE__)
58
61
  fpath2 = "#{File.realpath(File.dirname(__FILE__))}/../lib/http2.rb"
59
62
 
60
- resp = http.post_multipart(url: "multipart_test.rhtml", post: {
61
- "test_var" => "true",
62
- "test_file1" => {
63
- fpath: fpath,
64
- filename: "specfile"
65
- },
66
- "test_file2" => {
67
- fpath: fpath2,
68
- filename: "http2.rb"
63
+ resp = http.post_multipart(
64
+ url: "multipart_test.rhtml",
65
+ post: {
66
+ "test_var" => "true",
67
+ "test_file1" => {
68
+ fpath: fpath,
69
+ filename: "specfile"
70
+ },
71
+ "test_file2" => {
72
+ fpath: fpath2,
73
+ filename: "http2.rb"
74
+ }
69
75
  }
70
- })
76
+ )
71
77
 
72
78
  data = JSON.parse(resp.body)
73
79
 
74
- data["post"]["test_var"].should eq "true"
75
- data["files_data"]["test_file1"].should eq File.read(fpath)
76
- data["files_data"]["test_file2"].should eq File.read(fpath2)
80
+ expect(data["post"]["test_var"]).to eq "true"
81
+ expect(data["files_data"]["test_file1"]).to eq File.read(fpath)
82
+ expect(data["files_data"]["test_file2"]).to eq File.read(fpath2)
77
83
  end
78
84
  end
79
85
  end
@@ -85,25 +91,23 @@ describe "Http2" do
85
91
  ]
86
92
 
87
93
  with_http do |http|
88
- 0.upto(105) do |count|
94
+ 0.upto(105) do |_count|
89
95
  url = urls[rand(urls.size)]
90
- #print "Doing request #{count} of 200 (#{url}).\n"
96
+ # puts "Doing request #{count} of 200 (#{url})."
91
97
  res = http.get(url)
92
- res.body.to_s.length.should > 0
98
+ expect(res.body.to_s.length).to be > 0
93
99
  end
94
100
  end
95
101
  end
96
102
 
97
103
  it "should be able to convert URL's to 'is.gd'-short-urls" do
98
104
  isgd = Http2.isgdlink("https://github.com/kaspernj/http2")
99
- raise "Expected isgd-var to be valid but it wasnt: '#{isgd}'." if !isgd.match(/^http:\/\/is\.gd\/([A-z\d]+)$/)
105
+ raise "Expected isgd-var to be valid but it wasnt: '#{isgd}'." unless isgd.match(/^http:\/\/is\.gd\/([A-z\d]+)$/)
100
106
  end
101
107
 
102
108
  it "should raise exception when something is not found" do
103
109
  with_http do |http|
104
- expect{
105
- http.get("something_that_does_not_exist.rhtml")
106
- }.to raise_error(::Http2::Errors::Notfound)
110
+ expect { http.get("something_that_does_not_exist.rhtml") }.to raise_error(::Http2::Errors::Notfound)
107
111
  end
108
112
  end
109
113
 
@@ -115,15 +119,15 @@ describe "Http2" do
115
119
  )
116
120
 
117
121
  data = JSON.parse(res.body)
118
- data["_SERVER"]["HTTP_CONTENT_TYPE"].should eq "application/json"
122
+ expect(data["_SERVER"]["HTTP_CONTENT_TYPE"]).to eq "application/json"
119
123
 
120
124
  # Hack JSON data from Hayabusa.
121
125
  json_data = JSON.parse(data["_POST"].keys.first)
122
- json_data["testkey"].should eq "testvalue"
126
+ expect(json_data["testkey"]).to eq "testvalue"
123
127
 
124
- res.content_type.should eq "application/json"
125
- res.json?.should eq true
126
- res.json["_SERVER"]["REQUEST_METHOD"].should eq "POST"
128
+ expect(res.content_type).to eq "application/json"
129
+ expect(res.json?).to eq true
130
+ expect(res.json["_SERVER"]["REQUEST_METHOD"]).to eq "POST"
127
131
  end
128
132
  end
129
133
 
@@ -136,25 +140,25 @@ describe "Http2" do
136
140
  )
137
141
 
138
142
  data = JSON.parse(res.body)
139
- data["_SERVER"]["HTTP_CONTENT_TYPE"].should eq "plain/text"
143
+ expect(data["_SERVER"]["HTTP_CONTENT_TYPE"]).to eq "plain/text"
140
144
 
141
145
  raw_data = data["_POST"].keys.first
142
- raw_data.should eq "test1_test2_test3"
146
+ expect(raw_data).to eq "test1_test2_test3"
143
147
  end
144
148
  end
145
149
 
146
150
  it "should set various timeouts" do
147
151
  with_http do |http|
148
- res = http.get("content_type_test.rhtml")
149
- http.keepalive_timeout.should eq 15
150
- http.keepalive_max.should eq 30
152
+ http.get("content_type_test.rhtml")
153
+ expect(http.keepalive_timeout).to eq 15
154
+ expect(http.keepalive_max).to eq 30
151
155
  end
152
156
  end
153
157
 
154
158
  it "should follow redirects" do
155
159
  with_http(follow_redirects: true) do |http|
156
160
  resp = http.get("redirect_test.rhtml")
157
- resp.code.should eq "200"
161
+ expect(resp.code).to eq "200"
158
162
  end
159
163
  end
160
164
  end
@@ -1,19 +1,19 @@
1
1
  require "codeclimate-test-reporter"
2
2
  CodeClimate::TestReporter.start
3
3
 
4
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
5
5
  $LOAD_PATH.unshift(File.dirname(__FILE__))
6
- require 'rspec'
7
- require 'http2'
8
- require 'helpers'
6
+ require "rspec"
7
+ require "http2"
8
+ require "helpers"
9
9
 
10
10
  # Requires supporting files with custom matchers and macros, etc,
11
11
  # in ./support/ and its subdirectories.
12
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
12
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
13
13
 
14
14
  RSpec.configure do |config|
15
15
  config.expect_with :rspec do |c|
16
- c.syntax = [:expect, :should]
16
+ c.syntax = [:expect]
17
17
  end
18
18
 
19
19
  config.include Helpers
@@ -1,3 +1,3 @@
1
1
  <%
2
- Knj::Web.redirect("/content_type_test.rhtml")
2
+ Knj::Web.redirect(_get["redirect_to"] || "/content_type_test.rhtml")
3
3
  %>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.31
4
+ version: 0.0.32
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kasper Johansen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-13 00:00:00.000000000 Z
11
+ date: 2015-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: string-cases
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 2.8.0
47
+ version: 3.4.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 2.8.0
54
+ version: 3.4.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rdoc
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +122,34 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: best_practice_project
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: 0.0.4
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: 0.0.4
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubocop
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 0.35.0
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 0.35.0
125
153
  description: A lightweight framework for doing http-connections in Ruby. Supports
126
154
  cookies, keep-alive, compressing and much more.
127
155
  email: k@spernj.org
@@ -134,21 +162,26 @@ files:
134
162
  - LICENSE.txt
135
163
  - README.md
136
164
  - Rakefile
137
- - include/connection.rb
138
- - include/cookie.rb
139
- - include/errors.rb
140
- - include/get_request.rb
141
- - include/post_data_generator.rb
142
- - include/post_multipart_request.rb
143
- - include/post_request.rb
144
- - include/response.rb
145
- - include/response_reader.rb
146
- - include/url_builder.rb
147
- - include/utils.rb
148
165
  - lib/http2.rb
166
+ - lib/http2/base_request.rb
167
+ - lib/http2/connection.rb
168
+ - lib/http2/cookie.rb
169
+ - lib/http2/errors.rb
170
+ - lib/http2/get_request.rb
171
+ - lib/http2/post_data_generator.rb
172
+ - lib/http2/post_multipart_request.rb
173
+ - lib/http2/post_request.rb
174
+ - lib/http2/response.rb
175
+ - lib/http2/response_reader.rb
176
+ - lib/http2/url_builder.rb
177
+ - lib/http2/utils.rb
149
178
  - spec/helpers.rb
150
179
  - spec/http2/cookies_spec.rb
180
+ - spec/http2/get_request_spec.rb
151
181
  - spec/http2/post_data_generator_spec.rb
182
+ - spec/http2/post_multipart_request_spec.rb
183
+ - spec/http2/post_request_spec.rb
184
+ - spec/http2/response_reader_spec.rb
152
185
  - spec/http2/response_spec.rb
153
186
  - spec/http2/url_builder_spec.rb
154
187
  - spec/http2_spec.rb
@@ -178,21 +211,25 @@ required_rubygems_version: !ruby/object:Gem::Requirement
178
211
  version: '0'
179
212
  requirements: []
180
213
  rubyforge_project:
181
- rubygems_version: 2.2.2
214
+ rubygems_version: 2.4.0
182
215
  signing_key:
183
216
  specification_version: 4
184
217
  summary: A lightweight framework for doing http-connections in Ruby. Supports cookies,
185
218
  keep-alive, compressing and much more.
186
219
  test_files:
187
- - spec/helpers.rb
188
- - spec/http2/cookies_spec.rb
220
+ - spec/http2_spec.rb
221
+ - spec/http2/get_request_spec.rb
222
+ - spec/http2/post_request_spec.rb
189
223
  - spec/http2/post_data_generator_spec.rb
190
- - spec/http2/response_spec.rb
224
+ - spec/http2/cookies_spec.rb
191
225
  - spec/http2/url_builder_spec.rb
192
- - spec/http2_spec.rb
193
- - spec/spec_helper.rb
194
- - spec/spec_root/content_type_test.rhtml
195
- - spec/spec_root/cookie_test.rhtml
226
+ - spec/http2/response_reader_spec.rb
227
+ - spec/http2/post_multipart_request_spec.rb
228
+ - spec/http2/response_spec.rb
229
+ - spec/spec_root/redirect_test.rhtml
196
230
  - spec/spec_root/json_test.rhtml
197
231
  - spec/spec_root/multipart_test.rhtml
198
- - spec/spec_root/redirect_test.rhtml
232
+ - spec/spec_root/content_type_test.rhtml
233
+ - spec/spec_root/cookie_test.rhtml
234
+ - spec/helpers.rb
235
+ - spec/spec_helper.rb
@@ -1,34 +0,0 @@
1
- class Http2::GetRequest
2
- def initialize(http2, args)
3
- @http2, @args, @debug, @nl = http2, http2.parse_args(args), http2.debug, http2.nl
4
- end
5
-
6
- def execute
7
- @http2.mutex.synchronize do
8
- puts "Http2: Writing headers: #{header_string}" if @debug
9
- @http2.connection.write(header_string)
10
-
11
- puts "Http2: Reading response." if @debug
12
- resp = @http2.read_response(@args)
13
-
14
- puts "Http2: Done with get request." if @debug
15
- return resp
16
- end
17
- end
18
-
19
- private
20
-
21
- def method
22
- if @args[:method]
23
- @args[:method].to_s.upcase
24
- else
25
- "GET"
26
- end
27
- end
28
-
29
- def header_string
30
- header_str = "#{method} /#{@args[:url]} HTTP/1.1#{@nl}"
31
- header_str << @http2.header_str(@http2.default_headers(@args), @args)
32
- header_str << @nl
33
- end
34
- end