Skip to content
Browse files

Merge pull request #12276 from kennyj/fix_12269

Fix an issue where router can't recognize downcased url encoding path.
  • Loading branch information...
2 parents 949c429 + 0cc6508 commit 56bfd8a8c9c356573a7af033f88587bbd0c5a267 @rafaelfranca rafaelfranca committed Sep 18, 2013
View
6 actionpack/CHANGELOG.md
@@ -1,3 +1,9 @@
+* Fix an issue where router can't recognize downcased url encoding path.
+
+ Fixes #12269
+
+ *kennyj*
+
* Fix custom flash type definition. Misusage of the `_flash_types` class variable
caused an error when reloading controllers with custom flash types.
View
1 actionpack/lib/action_dispatch/journey/router/utils.rb
@@ -16,6 +16,7 @@ def self.normalize_path(path)
path = "/#{path}"
path.squeeze!('/')
path.sub!(%r{/+\Z}, '')
+ path.gsub!(/(%[a-f0-9]{2}+)/) { $1.upcase }
path = '/' if path == ''
path
end
View
4 actionpack/test/controller/routing_test.rb
@@ -1904,6 +1904,10 @@ def test_unicode_path
assert_equal({:controller => 'news', :action => 'index'}, @routes.recognize_path(URI.parser.escape('こんにちは/世界'), :method => :get))
end
+ def test_downcased_unicode_path
+ assert_equal({:controller => 'news', :action => 'index'}, @routes.recognize_path(URI.parser.escape('こんにちは/世界').downcase, :method => :get))
+ end
+
private
def sort_extras!(extras)
if extras.length == 2

0 comments on commit 56bfd8a

Please sign in to comment.
Something went wrong with that request. Please try again.