1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/xmlrpc/test_client.rb
tenderlove cd85cd25b4 * lib/xmlrpc/client.rb (new2): raises an ArgumentError on bad
arguments.
* test/xmlrpc/test_client.rb: tests for bad uris

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34883 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-03-02 23:21:17 +00:00

136 lines
3.5 KiB
Ruby

require 'minitest/autorun'
require 'xmlrpc/client'
module XMLRPC
class ClientTest < MiniTest::Unit::TestCase
class FakeClient < XMLRPC::Client
attr_reader :args
def initialize(*args)
@args = args
super
end
end
def test_new2_host_path_port
client = FakeClient.new2 'http://example.org/foo'
host, path, port, *rest = client.args
assert_equal 'example.org', host
assert_equal '/foo', path
assert_equal 80, port
rest.each { |x| refute x }
end
def test_new2_custom_port
client = FakeClient.new2 'http://example.org:1234/foo'
host, path, port, *rest = client.args
assert_equal 'example.org', host
assert_equal '/foo', path
assert_equal 1234, port
rest.each { |x| refute x }
end
def test_new2_ssl
client = FakeClient.new2 'https://example.org/foo'
host, path, port, proxy_host, proxy_port, user, password, use_ssl, timeout = client.args
assert_equal 'example.org', host
assert_equal '/foo', path
assert_equal 443, port
assert use_ssl
refute proxy_host
refute proxy_port
refute user
refute password
refute timeout
end
def test_new2_ssl_custom_port
client = FakeClient.new2 'https://example.org:1234/foo'
host, path, port, proxy_host, proxy_port, user, password, use_ssl, timeout = client.args
assert_equal 'example.org', host
assert_equal '/foo', path
assert_equal 1234, port
refute proxy_host
refute proxy_port
refute user
refute password
refute timeout
end
def test_new2_user_password
client = FakeClient.new2 'http://aaron:tenderlove@example.org/foo'
host, path, port, proxy_host, proxy_port, user, password, use_ssl, timeout = client.args
[ host, path, port ].each { |x| assert x }
assert_equal 'aaron', user
assert_equal 'tenderlove', password
[ proxy_host, proxy_port, use_ssl, timeout ].each { |x| refute x }
end
def test_new2_proxy_host
client = FakeClient.new2 'http://example.org/foo', 'example.com'
host, path, port, proxy_host, proxy_port, user, password, use_ssl, timeout = client.args
[ host, path, port ].each { |x| assert x }
assert_equal 'example.com', proxy_host
[ user, password, proxy_port, use_ssl, timeout ].each { |x| refute x }
end
def test_new2_proxy_port
client = FakeClient.new2 'http://example.org/foo', 'example.com:1234'
host, path, port, proxy_host, proxy_port, user, password, use_ssl, timeout = client.args
[ host, path, port ].each { |x| assert x }
assert_equal 'example.com', proxy_host
assert_equal 1234, proxy_port
[ user, password, use_ssl, timeout ].each { |x| refute x }
end
def test_new2_no_path
client = FakeClient.new2 'http://example.org'
host, path, port, *rest = client.args
assert_equal 'example.org', host
assert_nil path
assert port
rest.each { |x| refute x }
end
def test_new2_slash_path
client = FakeClient.new2 'http://example.org/'
host, path, port, *rest = client.args
assert_equal 'example.org', host
assert_equal '/', path
assert port
rest.each { |x| refute x }
end
def test_new2_bad_protocol
assert_raises(ArgumentError) do
XMLRPC::Client.new2 'ftp://example.org'
end
end
def test_new2_bad_uri
assert_raises(ArgumentError) do
XMLRPC::Client.new2 ':::::'
end
end
end
end