webmock 3.4.1 → 3.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CHANGELOG.md +10 -0
- data/README.md +2 -0
- data/lib/webmock/http_lib_adapters/net_http.rb +3 -0
- data/lib/webmock/request_pattern.rb +11 -2
- data/lib/webmock/util/uri.rb +2 -2
- data/lib/webmock/version.rb +1 -1
- data/spec/unit/request_pattern_spec.rb +6 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 91d9ae63bf5035f1d5ca0279cd0a8f4ec3ea80e9
|
4
|
+
data.tar.gz: b59813f02e62e3f5fa9b86e396d6da32f61f1a35
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 576e5b246b09980d0a371a3b83468ef8d715917b29d1f6bc07fbb0c7398346c7effbcd3a9b8a6dcf9634f9531d49f8b85fe9f196f5afcaddbddc1cc6be5cb5c7
|
7
|
+
data.tar.gz: 19eb107133e2f8a12bf9859fd0cf444afe78d8d6da3057d93928344e2d67c8c99ccd2554d749dcae94f4cad3ebea915ba54b8f5296c42d7a8809023f10e242dc
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 3.4.2
|
4
|
+
|
5
|
+
* Fixed `rbuf_fill` in Net::HTTP adapter to be thread-safe
|
6
|
+
|
7
|
+
Thanks to [Arkadiy Tetelman](https://github.com/arkadiyt)
|
8
|
+
|
9
|
+
* Fix invalid scheme error with Addressable::Template
|
10
|
+
|
11
|
+
Thanks to [Kazato Sugimoto](https://github.com/uiureo)
|
12
|
+
|
3
13
|
## 3.4.1
|
4
14
|
|
5
15
|
* When comparing url encoded body to a body from request stub, which was declared as hash, only String, Numeric and boolean hash values are stringified before the comparison.
|
data/README.md
CHANGED
@@ -1056,6 +1056,8 @@ People who submitted patches and new features or suggested improvements. Many th
|
|
1056
1056
|
* Kenny Ortmann
|
1057
1057
|
* redbar0n
|
1058
1058
|
* Lukas Pokorny
|
1059
|
+
* Arkadiy Tetelman
|
1060
|
+
* Kazato Sugimoto
|
1059
1061
|
|
1060
1062
|
For a full list of contributors you can visit the
|
1061
1063
|
[contributors](https://github.com/bblimke/webmock/contributors) page.
|
@@ -274,7 +274,10 @@ module Net #:nodoc: all
|
|
274
274
|
|
275
275
|
if RUBY_VERSION >= '2.6.0'
|
276
276
|
def rbuf_fill
|
277
|
+
current_thread_id = Thread.current.object_id
|
278
|
+
|
277
279
|
trace = TracePoint.trace(:line) do |tp|
|
280
|
+
next unless Thread.current.object_id == current_thread_id
|
278
281
|
if tp.binding.local_variable_defined?(:tmp)
|
279
282
|
tp.binding.local_variable_set(:tmp, nil)
|
280
283
|
end
|
@@ -155,10 +155,10 @@ module WebMock
|
|
155
155
|
def matches?(uri)
|
156
156
|
if @query_params.nil?
|
157
157
|
# Let Addressable check the whole URI
|
158
|
-
|
158
|
+
matches_with_variations?(uri)
|
159
159
|
else
|
160
160
|
# WebMock checks the query, Addressable checks everything else
|
161
|
-
|
161
|
+
matches_with_variations?(uri.omit(:query)) &&
|
162
162
|
@query_params == WebMock::Util::QueryMapper.query_to_values(uri.query)
|
163
163
|
end
|
164
164
|
end
|
@@ -177,6 +177,15 @@ module WebMock
|
|
177
177
|
str += " with variables #{@pattern.variables.inspect}" if @pattern.variables
|
178
178
|
str
|
179
179
|
end
|
180
|
+
|
181
|
+
private
|
182
|
+
|
183
|
+
def matches_with_variations?(uri)
|
184
|
+
normalized_template = Addressable::Template.new(WebMock::Util::URI.heuristic_parse(@pattern.pattern))
|
185
|
+
|
186
|
+
WebMock::Util::URI.variations_of_uri_as_strings(uri, only_with_scheme: true)
|
187
|
+
.any? { |u| normalized_template.match(u) }
|
188
|
+
end
|
180
189
|
end
|
181
190
|
|
182
191
|
class URIStringPattern < URIPattern
|
data/lib/webmock/util/uri.rb
CHANGED
@@ -33,7 +33,7 @@ module WebMock
|
|
33
33
|
NORMALIZED_URIS[uri].dup
|
34
34
|
end
|
35
35
|
|
36
|
-
def self.variations_of_uri_as_strings(uri_object)
|
36
|
+
def self.variations_of_uri_as_strings(uri_object, only_with_scheme: false)
|
37
37
|
normalized_uri = normalize_uri(uri_object.dup).freeze
|
38
38
|
uris = [ normalized_uri ]
|
39
39
|
|
@@ -47,7 +47,7 @@ module WebMock
|
|
47
47
|
uris = uris_with_inferred_port_and_without(uris)
|
48
48
|
end
|
49
49
|
|
50
|
-
if normalized_uri.scheme == "http"
|
50
|
+
if normalized_uri.scheme == "http" && !only_with_scheme
|
51
51
|
uris = uris_with_scheme_and_without(uris)
|
52
52
|
end
|
53
53
|
|
data/lib/webmock/version.rb
CHANGED
@@ -121,6 +121,12 @@ describe WebMock::RequestPattern do
|
|
121
121
|
to match(WebMock::RequestSignature.new(:get, "www.example.com"))
|
122
122
|
end
|
123
123
|
|
124
|
+
it "should match if Addressable::Template pattern that has ip address host matches request uri" do
|
125
|
+
signature = WebMock::RequestSignature.new(:get, "127.0.0.1:3000/1234")
|
126
|
+
uri = Addressable::Template.new("127.0.0.1:3000/{id}")
|
127
|
+
expect(WebMock::RequestPattern.new(:get, uri)).to match(signature)
|
128
|
+
end
|
129
|
+
|
124
130
|
it "should match for uris with same parameters as pattern" do
|
125
131
|
expect(WebMock::RequestPattern.new(:get, "www.example.com?a=1&b=2")).
|
126
132
|
to match(WebMock::RequestSignature.new(:get, "www.example.com?a=1&b=2"))
|
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.4.
|
4
|
+
version: 3.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bartosz Blimke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-06-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -399,7 +399,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
399
399
|
version: '0'
|
400
400
|
requirements: []
|
401
401
|
rubyforge_project: webmock
|
402
|
-
rubygems_version: 2.
|
402
|
+
rubygems_version: 2.6.11
|
403
403
|
signing_key:
|
404
404
|
specification_version: 4
|
405
405
|
summary: Library for stubbing HTTP requests in Ruby.
|