diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-12-12 15:24:28 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-12-12 15:24:28 +0000 |
commit | 6c0aece53d6fdfc890e35125dd3721ef2ff76d89 (patch) | |
tree | f5794da3e28554449621d8cb222bb2656d3e96ef | |
parent | 31f17f880eb2819e299458dfb1bb9e4ffbfd218c (diff) | |
download | ruby-6c0aece53d6fdfc890e35125dd3721ef2ff76d89.tar.gz |
Use URI.decode_www_form_component [Bug #10774]
`parser` refered RFC2396_Parser, but it is separated.
test is contributed by Dominik Menke
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57066 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | lib/uri/mailto.rb | 10 | ||||
-rw-r--r-- | test/uri/test_mailto.rb | 6 |
2 files changed, 11 insertions, 5 deletions
diff --git a/lib/uri/mailto.rb b/lib/uri/mailto.rb index b9e98e66bb..1494c3952b 100644 --- a/lib/uri/mailto.rb +++ b/lib/uri/mailto.rb @@ -267,18 +267,18 @@ module URI # # => "To: ruby-list@ruby-lang.org\nSubject: subscribe\nCc: myaddr\n\n\n" # def to_mailtext - to = parser.unescape(@to) + to = URI.decode_www_form_component(@to) head = '' body = '' @headers.each do |x| case x[0] when 'body' - body = parser.unescape(x[1]) + body = URI.decode_www_form_component(x[1]) when 'to' - to << ', ' + parser.unescape(x[1]) + to << ', ' + URI.decode_www_form_component(x[1]) else - head << parser.unescape(x[0]).capitalize + ': ' + - parser.unescape(x[1]) + "\n" + head << URI.decode_www_form_component(x[0]).capitalize + ': ' + + URI.decode_www_form_component(x[1]) + "\n" end end diff --git a/test/uri/test_mailto.rb b/test/uri/test_mailto.rb index 39a0f9cdeb..e58e9711e6 100644 --- a/test/uri/test_mailto.rb +++ b/test/uri/test_mailto.rb @@ -187,6 +187,12 @@ class TestMailTo < Test::Unit::TestCase u.select(:scheme, :host, :not_exist, :port) end end + + def test_to_mailtext + u = URI.parse('mailto:ruby-list@ruby-lang.org?Subject=subscribe&cc=myaddr') + assert_equal "To: ruby-list@ruby-lang.org\nSubject: subscribe\nCc: myaddr\n\n\n", + u.to_mailtext + end end |