webmock 3.12.0 → 3.12.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +1 -0
- data/lib/webmock/http_lib_adapters/net_http.rb +10 -3
- data/lib/webmock/version.rb +1 -1
- data/spec/acceptance/net_http/net_http_spec.rb +26 -0
- data/spec/unit/request_pattern_spec.rb +2 -2
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9da0e1f9d2507b4f2e84fc1b4fb4dbe513daba94771af7a255199c1f93ac7cbf
|
4
|
+
data.tar.gz: ddc87014539d9e40044c2039cd6a0f82d4da9e44035066481c7876e306322922
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: feb255076779f8f3311238a2f86d3ac4aeac85d904b9ce7972f80df011cffaac9e63322267c8a71cb5ed692b9cbc40fed75dacc16a1a4a377376d4abb89e89d6
|
7
|
+
data.tar.gz: e4e881fa8960506b5acec58312e2cd40d2fbc5f4f54487e8893713bba05459ca16b4ec0951c25aee2a239a885fb0a62637faf371b2eb46aca3e0d9ba0f5c1a94
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
# 3.12.1
|
4
|
+
|
5
|
+
* Fixed handling of URIs with IPv6 addresses with square brackets when in Net::HTTP adapter.
|
6
|
+
|
7
|
+
Thanks to [Johanna Hartmann](https://github.com/JohannaHartmann)
|
8
|
+
|
3
9
|
# 3.12.0
|
4
10
|
|
5
11
|
* Added support for handling custom JSON and XML content types e.g. 'application/vnd.api+json'
|
data/README.md
CHANGED
@@ -1157,6 +1157,7 @@ People who submitted patches and new features or suggested improvements. Many th
|
|
1157
1157
|
* Matt Larraz
|
1158
1158
|
* Tony Schneider
|
1159
1159
|
* Niklas Hösl
|
1160
|
+
* Johanna Hartmann
|
1160
1161
|
|
1161
1162
|
For a full list of contributors you can visit the
|
1162
1163
|
[contributors](https://github.com/bblimke/webmock/contributors) page.
|
@@ -313,8 +313,6 @@ module WebMock
|
|
313
313
|
module NetHTTPUtility
|
314
314
|
|
315
315
|
def self.request_signature_from_request(net_http, request, body = nil)
|
316
|
-
protocol = net_http.use_ssl? ? "https" : "http"
|
317
|
-
|
318
316
|
path = request.path
|
319
317
|
|
320
318
|
if path.respond_to?(:request_uri) #https://github.com/bblimke/webmock/issues/288
|
@@ -323,7 +321,7 @@ module WebMock
|
|
323
321
|
|
324
322
|
path = WebMock::Util::URI.heuristic_parse(path).request_uri if path =~ /^http/
|
325
323
|
|
326
|
-
uri =
|
324
|
+
uri = get_uri(net_http, path)
|
327
325
|
method = request.method.downcase.to_sym
|
328
326
|
|
329
327
|
headers = Hash[*request.to_hash.map {|k,v| [k, v]}.inject([]) {|r,x| r + x}]
|
@@ -343,6 +341,15 @@ module WebMock
|
|
343
341
|
WebMock::RequestSignature.new(method, uri, body: request.body, headers: headers)
|
344
342
|
end
|
345
343
|
|
344
|
+
def self.get_uri(net_http, path)
|
345
|
+
protocol = net_http.use_ssl? ? "https" : "http"
|
346
|
+
|
347
|
+
hostname = net_http.address
|
348
|
+
hostname = "[#{hostname}]" if /\A\[.*\]\z/ !~ hostname && /:/ =~ hostname
|
349
|
+
|
350
|
+
"#{protocol}://#{hostname}:#{net_http.port}#{path}"
|
351
|
+
end
|
352
|
+
|
346
353
|
def self.validate_headers(headers)
|
347
354
|
# For Ruby versions < 2.3.0, if you make a request with headers that are symbols
|
348
355
|
# Net::HTTP raises a NoMethodError
|
data/lib/webmock/version.rb
CHANGED
@@ -340,4 +340,30 @@ describe "Net:HTTP" do
|
|
340
340
|
http.request(req, '')
|
341
341
|
end
|
342
342
|
end
|
343
|
+
|
344
|
+
describe "hostname handling" do
|
345
|
+
it "should set brackets around the hostname if it is an IPv6 address" do
|
346
|
+
net_http = Net::HTTP.new('b2dc:5bdf:4f0d::3014:e0ca', 80)
|
347
|
+
path = '/example.jpg'
|
348
|
+
expect(WebMock::NetHTTPUtility.get_uri(net_http, path)).to eq('http://[b2dc:5bdf:4f0d::3014:e0ca]:80/example.jpg')
|
349
|
+
end
|
350
|
+
|
351
|
+
it "should not set brackets around the hostname if it is already wrapped by brackets" do
|
352
|
+
net_http = Net::HTTP.new('[b2dc:5bdf:4f0d::3014:e0ca]', 80)
|
353
|
+
path = '/example.jpg'
|
354
|
+
expect(WebMock::NetHTTPUtility.get_uri(net_http, path)).to eq('http://[b2dc:5bdf:4f0d::3014:e0ca]:80/example.jpg')
|
355
|
+
end
|
356
|
+
|
357
|
+
it "should not set brackets around the hostname if it is an IPv4 address" do
|
358
|
+
net_http = Net::HTTP.new('181.152.137.168', 80)
|
359
|
+
path = '/example.jpg'
|
360
|
+
expect(WebMock::NetHTTPUtility.get_uri(net_http, path)).to eq('http://181.152.137.168:80/example.jpg')
|
361
|
+
end
|
362
|
+
|
363
|
+
it "should not set brackets around the hostname if it is a domain" do
|
364
|
+
net_http = Net::HTTP.new('www.example.com', 80)
|
365
|
+
path = '/example.jpg'
|
366
|
+
expect(WebMock::NetHTTPUtility.get_uri(net_http, path)).to eq('http://www.example.com:80/example.jpg')
|
367
|
+
end
|
368
|
+
end
|
343
369
|
end
|
@@ -613,12 +613,12 @@ describe WebMock::RequestPattern do
|
|
613
613
|
end
|
614
614
|
end
|
615
615
|
|
616
|
-
context "standard application/
|
616
|
+
context "standard application/xml" do
|
617
617
|
let(:content_type) { 'application/xml' }
|
618
618
|
it_behaves_like "a xml body"
|
619
619
|
end
|
620
620
|
|
621
|
-
context "custom
|
621
|
+
context "custom xml content type" do
|
622
622
|
let(:content_type) { 'application/atom+xml' }
|
623
623
|
it_behaves_like "a xml body"
|
624
624
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webmock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.12.
|
4
|
+
version: 3.12.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bartosz Blimke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -422,9 +422,9 @@ licenses:
|
|
422
422
|
- MIT
|
423
423
|
metadata:
|
424
424
|
bug_tracker_uri: https://github.com/bblimke/webmock/issues
|
425
|
-
changelog_uri: https://github.com/bblimke/webmock/blob/v3.12.
|
426
|
-
documentation_uri: https://www.rubydoc.info/gems/webmock/3.12.
|
427
|
-
source_code_uri: https://github.com/bblimke/webmock/tree/v3.12.
|
425
|
+
changelog_uri: https://github.com/bblimke/webmock/blob/v3.12.1/CHANGELOG.md
|
426
|
+
documentation_uri: https://www.rubydoc.info/gems/webmock/3.12.1
|
427
|
+
source_code_uri: https://github.com/bblimke/webmock/tree/v3.12.1
|
428
428
|
wiki_uri: https://github.com/bblimke/webmock/wiki
|
429
429
|
post_install_message:
|
430
430
|
rdoc_options: []
|