mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: Escape URL before attempting to resolve it.
This commit is contained in:
@@ -12,7 +12,7 @@ class FinalDestination
|
|||||||
def initialize(url, opts=nil)
|
def initialize(url, opts=nil)
|
||||||
@uri =
|
@uri =
|
||||||
begin
|
begin
|
||||||
URI(url) if url
|
URI(URI.escape(url)) if url
|
||||||
rescue URI::InvalidURIError
|
rescue URI::InvalidURIError
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -60,6 +60,14 @@ describe FinalDestination do
|
|||||||
stub_request(:head, "https://eviltrout.com").to_return(doc_response)
|
stub_request(:head, "https://eviltrout.com").to_return(doc_response)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "escapes url" do
|
||||||
|
url = 'https://eviltrout.com?s=180&d=mm&r=g'
|
||||||
|
escaped_url = URI.escape(url)
|
||||||
|
stub_request(:head, escaped_url).to_return(doc_response)
|
||||||
|
|
||||||
|
expect(fd(url).resolve.to_s).to eq(escaped_url)
|
||||||
|
end
|
||||||
|
|
||||||
it "returns the final url" do
|
it "returns the final url" do
|
||||||
final = FinalDestination.new('https://eviltrout.com', opts)
|
final = FinalDestination.new('https://eviltrout.com', opts)
|
||||||
expect(final.resolve.to_s).to eq('https://eviltrout.com')
|
expect(final.resolve.to_s).to eq('https://eviltrout.com')
|
||||||
|
|||||||
Reference in New Issue
Block a user