diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib/uri/mailto.rb | 2 | ||||
-rw-r--r-- | test/uri/test_mailto.rb | 10 |
3 files changed, 16 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Mon Jan 23 17:06:17 2012 NARUSE, Yui <naruse@ruby-lang.org> + + * lib/uri/mailto.rb (URI::MailTo.build): follow Array#to_s change of + Ruby 1.9; use Array#join. [Bug #5840] + Mon Jan 23 16:42:28 2012 NARUSE, Yui <naruse@ruby-lang.org> * io.c (extract_binmode): raise an exception if binmode/textmode diff --git a/lib/uri/mailto.rb b/lib/uri/mailto.rb index 765528fb7f..079340cf58 100644 --- a/lib/uri/mailto.rb +++ b/lib/uri/mailto.rb @@ -103,7 +103,7 @@ module URI if tmp[:headers].kind_of?(Array) tmp[:opaque] << tmp[:headers].collect { |x| if x.kind_of?(Array) - x[0] + '=' + x[1..-1].to_s + x[0] + '=' + x[1..-1].join else x.to_s end diff --git a/test/uri/test_mailto.rb b/test/uri/test_mailto.rb index 04fb6fdadc..c2158845e8 100644 --- a/test/uri/test_mailto.rb +++ b/test/uri/test_mailto.rb @@ -82,6 +82,16 @@ class TestMailTo < Test::Unit::TestCase ok[-1] << {:to => "unlikely%3Faddress@example.com", :headers => ["blat=foop"]} + # mailto:john@example.com?Subject=Ruby&Cc=jack@example.com + ok << ["mailto:john@example.com?Subject=Ruby&Cc=jack@example.com"] + ok[-1] << ['john@example.com', [['Subject', 'Ruby'], ['Cc', 'jack@example.com']]] + ok[-1] << {:to=>"john@example.com", :headers=>[["Subject", "Ruby"], ["Cc", "jack@example.com"]]} + + # mailto:listman@example.com?subject=subscribe + ok << ["mailto:listman@example.com?subject=subscribe"] + ok[-1] << {:to => 'listman@example.com', :headers => [['subject', 'subscribe']]} + ok[-1] << {:to => 'listman@example.com', :headers => [['subject', 'subscribe']]} + ok_all = ok.flatten.join("\0") # mailto:joe@example.com?cc=bob@example.com?body=hello ; WRONG! |