Fix nil host in remotable (#8508)
Host can be nil in urls like 'https:https://example.com/path/file.png'lolsob-rspec
parent
2adac68cc7
commit
900d3e214b
|
@ -18,7 +18,7 @@ module Remotable
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
return if !%w(http https).include?(parsed_url.scheme) || parsed_url.host.empty? || self[attribute_name] == url
|
return if !%w(http https).include?(parsed_url.scheme) || parsed_url.host.blank? || self[attribute_name] == url
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Request.new(:get, url).perform do |response|
|
Request.new(:get, url).perform do |response|
|
||||||
|
|
|
@ -88,7 +88,18 @@ RSpec.describe Remotable do
|
||||||
|
|
||||||
context 'parsed_url.host is empty' do
|
context 'parsed_url.host is empty' do
|
||||||
it 'makes no request' do
|
it 'makes no request' do
|
||||||
parsed_url = double(scheme: 'https', host: double(empty?: true))
|
parsed_url = double(scheme: 'https', host: double(blank?: true))
|
||||||
|
allow(Addressable::URI).to receive_message_chain(:parse, :normalize)
|
||||||
|
.with(url).with(no_args).and_return(parsed_url)
|
||||||
|
|
||||||
|
foo.hoge_remote_url = url
|
||||||
|
expect(request).not_to have_been_requested
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'parsed_url.host is nil' do
|
||||||
|
it 'makes no request' do
|
||||||
|
parsed_url = Addressable::URI.parse('https:https://example.com/path/file.png')
|
||||||
allow(Addressable::URI).to receive_message_chain(:parse, :normalize)
|
allow(Addressable::URI).to receive_message_chain(:parse, :normalize)
|
||||||
.with(url).with(no_args).and_return(parsed_url)
|
.with(url).with(no_args).and_return(parsed_url)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue