CGI.escape does not escape "~" since Ruby 2.5. --- a/test/uri_component/escape_test.rb +++ b/test/uri_component/escape_test.rb @@ -10,8 +10,9 @@ (0..127).each do |i| c = i.chr # Escaping URI path components should match CGI parameter escaping, except - # spaces should be escaped as "%20" instead of "+" - assert_equal CGI.escape(c).sub("+", "%20"), EscapeUtils.escape_uri_component(c) + # spaces should be escaped as "%20" instead of "+" and "~" should be + # escaped as "%7E". + assert_equal CGI.escape(c).sub("+", "%20").sub("~", "%7E"), EscapeUtils.escape_uri_component(c) end end --- a/test/url/escape_test.rb +++ b/test/url/escape_test.rb @@ -9,7 +9,7 @@ def test_cgi_stdlib_compatibility (0..127).each do |i| c = i.chr - assert_equal CGI.escape(c), EscapeUtils.escape_url(c) + assert_equal CGI.escape(c).sub("~", "%7E"), EscapeUtils.escape_url(c) end end