diff options
author | Josh Symonds <veraticus@gmail.com> | 2013-10-23 16:44:23 -0500 |
---|---|---|
committer | Josh Symonds <veraticus@gmail.com> | 2013-10-23 16:44:23 -0500 |
commit | cb81a535e0ea7de890a7d65982364c4e7c6ba254 (patch) | |
tree | 5ee31d55284c2404ff05843661c59c6d9cb80ac9 | |
parent | ec3ad30606a9e46715c7bbbc98ce911d42dbb5ee (diff) | |
download | rails-cb81a535e0ea7de890a7d65982364c4e7c6ba254.tar.gz rails-cb81a535e0ea7de890a7d65982364c4e7c6ba254.tar.bz2 rails-cb81a535e0ea7de890a7d65982364c4e7c6ba254.zip |
Correct error in Utils.normalize_path that changed paths improperly
-rw-r--r-- | actionpack/lib/action_dispatch/journey/router/utils.rb | 2 | ||||
-rw-r--r-- | actionpack/test/journey/router/utils_test.rb | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/actionpack/lib/action_dispatch/journey/router/utils.rb b/actionpack/lib/action_dispatch/journey/router/utils.rb index 1edf86cd88..d1a004af50 100644 --- a/actionpack/lib/action_dispatch/journey/router/utils.rb +++ b/actionpack/lib/action_dispatch/journey/router/utils.rb @@ -18,7 +18,7 @@ module ActionDispatch path = "/#{path}" path.squeeze!('/') path.sub!(%r{/+\Z}, '') - path.gsub!(/(%[a-f0-9]{2}+)/) { $1.upcase } + path.gsub!(/(%[a-f0-9]{2})/) { $1.upcase } path = '/' if path == '' path end diff --git a/actionpack/test/journey/router/utils_test.rb b/actionpack/test/journey/router/utils_test.rb index 057dc40cca..93348f4647 100644 --- a/actionpack/test/journey/router/utils_test.rb +++ b/actionpack/test/journey/router/utils_test.rb @@ -15,6 +15,14 @@ module ActionDispatch def test_uri_unescape assert_equal "a/b c+d", Utils.unescape_uri("a%2Fb%20c+d") end + + def test_normalize_path_not_greedy + assert_equal "/foo%20bar%20baz", Utils.normalize_path("/foo%20bar%20baz") + end + + def test_normalize_path_uppercase + assert_equal "/foo%AAbar%AAbaz", Utils.normalize_path("/foo%aabar%aabaz") + end end end end |