瀏覽代碼

Handle unencoded spaces in link hrefs

Thibaut Courouble 10 年之前
父節點
當前提交
63c77322d3
共有 2 個文件被更改,包括 7 次插入0 次删除
  1. 2 0
      lib/docs/filters/core/normalize_urls.rb
  2. 5 0
      test/lib/docs/filters/core/normalize_urls_test.rb

+ 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