diff --git a/lib/webmock/http_lib_adapters/net_http.rb b/lib/webmock/http_lib_adapters/net_http.rb index 70d2701e..ca0c5b7d 100644 --- a/lib/webmock/http_lib_adapters/net_http.rb +++ b/lib/webmock/http_lib_adapters/net_http.rb @@ -98,7 +98,7 @@ def request(request, body = nil, &block) after_request.call(response) } if started? - if WebMock::Config.instance.net_http_connect_on_start + if WebMock.net_http_connect_on_start?(request_signature.uri) super_with_after_request.call else start_with_connect_without_finish { @@ -144,7 +144,9 @@ def start_with_connect_without_finish # :yield: http alias_method :start_with_connect, :start def start(&block) - if WebMock::Config.instance.net_http_connect_on_start + uri = Addressable::URI.parse(WebMock::NetHTTPUtility.get_uri(self)) + + if WebMock.net_http_connect_on_start?(uri) super(&block) else start_without_connect(&block) diff --git a/lib/webmock/webmock.rb b/lib/webmock/webmock.rb index 2e2cb8e9..5ecb7f29 100644 --- a/lib/webmock/webmock.rb +++ b/lib/webmock/webmock.rb @@ -70,6 +70,10 @@ def self.net_connect_allowed?(uri = nil) Config.instance.allow && net_connect_explicit_allowed?(Config.instance.allow, uri) ) end + def self.net_http_connect_on_start?(uri) + Config.instance.net_http_connect_on_start + end + def self.net_connect_explicit_allowed?(allowed, uri=nil) case allowed when Array