summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-03-27 11:13:31 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-03-27 11:13:31 +0000
commit4919dbabdb4042fee8cb3fb03c66536b1b032035 (patch)
treeb56eac56d072aa089365945d61e0640c51d87648 /test
parentddd7dd0f8cb255f81603de6e0656f0fd0c245804 (diff)
merge revision(s) 56139,57066,57099,57100: [Backport #10774]
* lib/uri/mailto.rb: Removed needless `return` and use `.`` instead of `::` with class method. * test/uri/test_mailto.rb: Added tests for coverage. Use URI.decode_www_form_component [Bug #10774] `parser` refered RFC2396_Parser, but it is separated. test is contributed by Dominik Menke test_mailto.rb: adjust scope test_mailto.rb: overwritten methods * test/uri/test_mailto.rb (URI::TestMailTo#test_to_mailtext): merge overwritten methods. [Bug #10774] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_3@58147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/uri/test_mailto.rb63
1 files changed, 56 insertions, 7 deletions
diff --git a/test/uri/test_mailto.rb b/test/uri/test_mailto.rb
index c09b001e0f..e7d3142198 100644
--- a/test/uri/test_mailto.rb
+++ b/test/uri/test_mailto.rb
@@ -2,10 +2,7 @@
require 'test/unit'
require 'uri/mailto'
-module URI
-
-
-class TestMailTo < Test::Unit::TestCase
+class URI::TestMailTo < Test::Unit::TestCase
def setup
@u = URI::MailTo
end
@@ -97,6 +94,11 @@ class TestMailTo < Test::Unit::TestCase
ok[-1] << {:to => 'listman@example.com', :headers => [['subject', 'subscribe']]}
ok[-1] << {:to => 'listman@example.com', :headers => [['subject', 'subscribe']]}
+ # 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!
@@ -129,6 +131,56 @@ class TestMailTo < Test::Unit::TestCase
assert_equal(ok_all, ok.flatten.join("\0"))
end
+ def test_initializer
+ assert_raise(URI::InvalidComponentError) do
+ URI::MailTo.new('mailto', 'sdmitry:bla', 'localhost', '2000', nil,
+ 'joe@example.com', nil, nil, 'subject=Ruby')
+ end
+ end
+
+ def test_check_to
+ u = URI::MailTo.build(['joe@example.com', 'subject=Ruby'])
+
+ assert_raise(URI::InvalidComponentError) do
+ u.to = '#1@mail.com'
+ end
+
+ assert_raise(URI::InvalidComponentError) do
+ u.to = '@invalid.email'
+ end
+ end
+
+ def test_to_s
+ u = URI::MailTo.build([nil, 'subject=Ruby'])
+
+ u.send(:set_to, nil)
+ assert_equal('mailto:?subject=Ruby', u.to_s)
+
+ u.fragment = 'test'
+ assert_equal('mailto:?subject=Ruby#test', u.to_s)
+ end
+
+ def test_to_mailtext
+ results = []
+ results << ["To: ruby-list@ruby-lang.org\nSubject: subscribe\n\n\n"]
+ results[-1] << { to: 'ruby-list@ruby-lang.org', headers: { 'subject' => 'subscribe' } }
+
+ results << ["To: ruby-list@ruby-lang.org\n\nBody\n"]
+ results[-1] << { to: 'ruby-list@ruby-lang.org', headers: { 'body' => 'Body' } }
+
+ results << ["To: ruby-list@ruby-lang.org, cc@ruby-lang.org\n\n\n"]
+ results[-1] << { to: 'ruby-list@ruby-lang.org', headers: { 'to' => 'cc@ruby-lang.org' } }
+
+ results.each do |expected, params|
+ u = URI::MailTo.build(params)
+ assert_equal(expected, u.to_mailtext)
+ end
+
+ 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
+
def test_select
u = URI.parse('mailto:joe@example.com?cc=bob@example.com&body=hello')
assert_equal(uri_to_ary(u), u.select(*u.component))
@@ -137,6 +189,3 @@ class TestMailTo < Test::Unit::TestCase
end
end
end
-
-
-end