aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/journey
diff options
context:
space:
mode:
authorKarl Entwistle <karl.entwistle@unboxedconsulting.com>2014-07-10 09:58:46 +0100
committerKarl Entwistle <karl.entwistle@unboxedconsulting.com>2014-07-10 10:02:11 +0100
commit8a297131349bf4e0ade4a0941e5da0c987396d89 (patch)
treeb7e194b25eda53d87edf429f3ef1ed51e1007804 /actionpack/test/journey
parentb9ffae8feb453ee2961b5284fe3310b227532179 (diff)
downloadrails-8a297131349bf4e0ade4a0941e5da0c987396d89.tar.gz
rails-8a297131349bf4e0ade4a0941e5da0c987396d89.tar.bz2
rails-8a297131349bf4e0ade4a0941e5da0c987396d89.zip
Force encoding of US-ASCII to UTF-8 in unescape_uri.
Because URI paths may contain non US-ASCII characters we need to force the encoding of any unescaped URIs to UTF-8 if they are US-ASCII. This essentially replicates the functionality of the monkey patch to URI.parser.unescape in active_support/core_ext/uri.rb. Fixes #16104.
Diffstat (limited to 'actionpack/test/journey')
-rw-r--r--actionpack/test/journey/router/utils_test.rb5
1 files changed, 5 insertions, 0 deletions
diff --git a/actionpack/test/journey/router/utils_test.rb b/actionpack/test/journey/router/utils_test.rb
index 584fd56a5c..9b2b85ec73 100644
--- a/actionpack/test/journey/router/utils_test.rb
+++ b/actionpack/test/journey/router/utils_test.rb
@@ -1,3 +1,4 @@
+# coding: utf-8
require 'abstract_unit'
module ActionDispatch
@@ -20,6 +21,10 @@ module ActionDispatch
assert_equal "a/b c+d", Utils.unescape_uri("a%2Fb%20c+d")
end
+ def test_uri_unescape_with_utf8_string
+ assert_equal "Šašinková", Utils.unescape_uri("%C5%A0a%C5%A1inkov%C3%A1".force_encoding(Encoding::US_ASCII))
+ end
+
def test_normalize_path_not_greedy
assert_equal "/foo%20bar%20baz", Utils.normalize_path("/foo%20bar%20baz")
end