Browse Source

Handle unencoded spaces in link hrefs

Thibaut Courouble 10 years ago
parent
commit
63c77322d3

+ 2 - 0
lib/docs/filters/core/normalize_urls.rb

@@ -18,6 +18,8 @@ module Docs
     end
 
     def normalize_url(str)
+      str.strip!
+      str.gsub!(' ', '%20')
       url = to_absolute_url(str)
 
       while new_url = fix_url(url)

+ 5 - 0
test/lib/docs/filters/core/normalize_urls_test.rb

@@ -44,6 +44,11 @@ class NormalizeUrlsFilterTest < MiniTest::Spec
     assert_equal link_to('#'), filter_output_string
   end
 
+  it "repairs un-encoded spaces" do
+    @body = link_to 'http://example.com/#foo bar '
+    assert_equal link_to('http://example.com/#foo%20bar'), filter_output_string
+  end
+
   it "retains query strings" do
     @body = link_to'path?query'
     assert_equal link_to('http://example.com/dir/path?query'), filter_output_string