mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* test/uri/* (6 files): added.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									d6f70951db
								
							
						
					
					
						commit
						ef5883c016
					
				
					 7 changed files with 1079 additions and 1 deletions
				
			
		
							
								
								
									
										139
									
								
								test/uri/test_mailto.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										139
									
								
								test/uri/test_mailto.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,139 @@
 | 
			
		|||
#
 | 
			
		||||
# $Id$
 | 
			
		||||
#
 | 
			
		||||
# Copyright (c) 2001 akira yamada <akira@ruby-lang.org>
 | 
			
		||||
# You can redistribute it and/or modify it under the same term as Ruby.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
require 'runit/testcase'
 | 
			
		||||
require 'runit/cui/testrunner'
 | 
			
		||||
require 'uri/mailto'
 | 
			
		||||
module URI
 | 
			
		||||
  class Generic
 | 
			
		||||
    def to_ary
 | 
			
		||||
      component_ary
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
class TestMailTo < RUNIT::TestCase
 | 
			
		||||
  def setup
 | 
			
		||||
    @u = URI::MailTo
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def teardown
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def test_build
 | 
			
		||||
    ok = []
 | 
			
		||||
    bad = []
 | 
			
		||||
 | 
			
		||||
    # RFC2368, 6. Examples
 | 
			
		||||
    # mailto:chris@example.com
 | 
			
		||||
    ok << ["mailto:chris@example.com"]
 | 
			
		||||
    ok[-1] << ["chris@example.com", nil]
 | 
			
		||||
    ok[-1] << {:to => "chris@example.com"}
 | 
			
		||||
 | 
			
		||||
    # mailto:infobot@example.com?subject=current-issue
 | 
			
		||||
    ok << ["mailto:infobot@example.com?subject=current-issue"]
 | 
			
		||||
    ok[-1] << ["infobot@example.com", ["subject=current-issue"]]
 | 
			
		||||
    ok[-1] << {:to => "infobot@example.com", 
 | 
			
		||||
      :headers => ["subject=current-issue"]}
 | 
			
		||||
 | 
			
		||||
    # mailto:infobot@example.com?body=send%20current-issue
 | 
			
		||||
    ok << ["mailto:infobot@example.com?body=send%20current-issue"]
 | 
			
		||||
    ok[-1] << ["infobot@example.com", ["body=send%20current-issue"]]
 | 
			
		||||
    ok[-1] << {:to => "infobot@example.com", 
 | 
			
		||||
      :headers => ["body=send%20current-issue"]}
 | 
			
		||||
 | 
			
		||||
    # mailto:infobot@example.com?body=send%20current-issue%0D%0Asend%20index
 | 
			
		||||
    ok << ["mailto:infobot@example.com?body=send%20current-issue%0D%0Asend%20index"]
 | 
			
		||||
    ok[-1] << ["infobot@example.com", 
 | 
			
		||||
      ["body=send%20current-issue%0D%0Asend%20index"]]
 | 
			
		||||
    ok[-1] << {:to => "infobot@example.com", 
 | 
			
		||||
      :headers => ["body=send%20current-issue%0D%0Asend%20index"]}
 | 
			
		||||
 | 
			
		||||
    # mailto:foobar@example.com?In-Reply-To=%3c3469A91.D10AF4C@example.com
 | 
			
		||||
    ok << ["mailto:foobar@example.com?In-Reply-To=%3c3469A91.D10AF4C@example.com"]
 | 
			
		||||
    ok[-1] << ["foobar@example.com", 
 | 
			
		||||
      ["In-Reply-To=%3c3469A91.D10AF4C@example.com"]]
 | 
			
		||||
    ok[-1] << {:to => "foobar@example.com", 
 | 
			
		||||
      :headers => ["In-Reply-To=%3c3469A91.D10AF4C@example.com"]}
 | 
			
		||||
 | 
			
		||||
    # mailto:majordomo@example.com?body=subscribe%20bamboo-l
 | 
			
		||||
    ok << ["mailto:majordomo@example.com?body=subscribe%20bamboo-l"]
 | 
			
		||||
    ok[-1] << ["majordomo@example.com", ["body=subscribe%20bamboo-l"]]
 | 
			
		||||
    ok[-1] << {:to => "majordomo@example.com", 
 | 
			
		||||
      :headers => ["body=subscribe%20bamboo-l"]}
 | 
			
		||||
 | 
			
		||||
    # mailto:joe@example.com?cc=bob@example.com&body=hello
 | 
			
		||||
    ok << ["mailto:joe@example.com?cc=bob@example.com&body=hello"]
 | 
			
		||||
    ok[-1] << ["joe@example.com", ["cc=bob@example.com", "body=hello"]]
 | 
			
		||||
    ok[-1] << {:to => "joe@example.com", 
 | 
			
		||||
      :headers => ["cc=bob@example.com", "body=hello"]}
 | 
			
		||||
 | 
			
		||||
    # mailto:?to=joe@example.com&cc=bob@example.com&body=hello
 | 
			
		||||
    ok << ["mailto:?to=joe@example.com&cc=bob@example.com&body=hello"]
 | 
			
		||||
    ok[-1] << [nil, 
 | 
			
		||||
      ["to=joe@example.com", "cc=bob@example.com", "body=hello"]]
 | 
			
		||||
    ok[-1] << {:headers => ["to=joe@example.com", 
 | 
			
		||||
	"cc=bob@example.com", "body=hello"]}
 | 
			
		||||
 | 
			
		||||
    # mailto:gorby%25kremvax@example.com
 | 
			
		||||
    ok << ["mailto:gorby%25kremvax@example.com"]
 | 
			
		||||
    ok[-1] << ["gorby%25kremvax@example.com", nil]
 | 
			
		||||
    ok[-1] << {:to => "gorby%25kremvax@example.com"}
 | 
			
		||||
 | 
			
		||||
    # mailto:unlikely%3Faddress@example.com?blat=foop
 | 
			
		||||
    ok << ["mailto:unlikely%3Faddress@example.com?blat=foop"]
 | 
			
		||||
    ok[-1] << ["unlikely%3Faddress@example.com", ["blat=foop"]]
 | 
			
		||||
    ok[-1] << {:to => "unlikely%3Faddress@example.com", 
 | 
			
		||||
      :headers => ["blat=foop"]}
 | 
			
		||||
 | 
			
		||||
    ok_all = ok.flatten.join("\0")
 | 
			
		||||
 | 
			
		||||
    # mailto:joe@example.com?cc=bob@example.com?body=hello   ; WRONG!
 | 
			
		||||
    bad << ["joe@example.com", ["cc=bob@example.com?body=hello"]]
 | 
			
		||||
 | 
			
		||||
    # mailto:javascript:alert()
 | 
			
		||||
    bad << ["javascript:alert()", []]
 | 
			
		||||
 | 
			
		||||
    # '=' which is in hname or hvalue is wrong.
 | 
			
		||||
    bad << ["foo@example.jp?subject=1+1=2", []]
 | 
			
		||||
 | 
			
		||||
    ok.each do |x|
 | 
			
		||||
      assert_equal(x[0],
 | 
			
		||||
		   @u.build(x[1]).to_s)
 | 
			
		||||
      assert_equal(x[0],
 | 
			
		||||
		   @u.build(x[2]).to_s)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    bad.each do |x|
 | 
			
		||||
      assert_exception(URI::InvalidComponentError) {
 | 
			
		||||
	@u.build(x)
 | 
			
		||||
      }
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    assert_equal(ok_all, ok.flatten.join("\0"))
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def test_select
 | 
			
		||||
    u = URI.parse('mailto:joe@example.com?cc=bob@example.com&body=hello')
 | 
			
		||||
    assert_equal(u.to_ary, u.select(*u.component))
 | 
			
		||||
    assert_exception(ArgumentError) do
 | 
			
		||||
      u.select(:scheme, :host, :not_exist, :port)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
if $0 == __FILE__
 | 
			
		||||
  if ARGV.size == 0
 | 
			
		||||
    suite = TestMailTo.suite
 | 
			
		||||
  else
 | 
			
		||||
    suite = RUNIT::TestSuite.new
 | 
			
		||||
    ARGV.each do |testmethod|
 | 
			
		||||
      suite.add_test(TestMailTo.new(testmethod))
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
  RUNIT::CUI::TestRunner.run(suite)
 | 
			
		||||
end
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue