aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorJosh Symonds <veraticus@gmail.com>2013-10-23 16:44:23 -0500
committerJosh Symonds <veraticus@gmail.com>2013-10-23 16:44:23 -0500
commitcb81a535e0ea7de890a7d65982364c4e7c6ba254 (patch)
tree5ee31d55284c2404ff05843661c59c6d9cb80ac9 /actionpack
parentec3ad30606a9e46715c7bbbc98ce911d42dbb5ee (diff)
downloadrails-cb81a535e0ea7de890a7d65982364c4e7c6ba254.tar.gz
rails-cb81a535e0ea7de890a7d65982364c4e7c6ba254.tar.bz2
rails-cb81a535e0ea7de890a7d65982364c4e7c6ba254.zip
Correct error in Utils.normalize_path that changed paths improperly
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_dispatch/journey/router/utils.rb2
-rw-r--r--actionpack/test/journey/router/utils_test.rb8
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