FIX: Skip absolutizing URLs when source URI is invalid
This commit is contained in:
parent
88a4d5a2c1
commit
99fd65328c
|
@ -186,7 +186,11 @@ class TopicEmbed < ActiveRecord::Base
|
||||||
# Convert any relative URLs to absolute. RSS is annoying for this.
|
# Convert any relative URLs to absolute. RSS is annoying for this.
|
||||||
def self.absolutize_urls(url, contents)
|
def self.absolutize_urls(url, contents)
|
||||||
url = normalize_url(url)
|
url = normalize_url(url)
|
||||||
uri = URI(UrlHelper.escape_uri(url))
|
begin
|
||||||
|
uri = URI(UrlHelper.escape_uri(url))
|
||||||
|
rescue URI::Error
|
||||||
|
return contents
|
||||||
|
end
|
||||||
prefix = "#{uri.scheme}://#{uri.host}"
|
prefix = "#{uri.scheme}://#{uri.host}"
|
||||||
prefix << ":#{uri.port}" if uri.port != 80 && uri.port != 443
|
prefix << ":#{uri.port}" if uri.port != 80 && uri.port != 443
|
||||||
|
|
||||||
|
|
|
@ -310,4 +310,14 @@ describe TopicEmbed do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '.absolutize_urls' do
|
||||||
|
let(:invalid_url) { 'http://source.com/#double#anchor' }
|
||||||
|
let(:contents) { "hello world new post <a href='/hello'>hello</a>" }
|
||||||
|
|
||||||
|
it "does not attempt absolutizing on a bad URI" do
|
||||||
|
raw = TopicEmbed.absolutize_urls(invalid_url, contents)
|
||||||
|
expect(raw).to eq(contents)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue