diff options
author | tenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-03-02 23:12:32 +0000 |
---|---|---|
committer | tenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-03-02 23:12:32 +0000 |
commit | 60282ebfe5ddb283fc2312fb6a2ce9e928cb2ad9 (patch) | |
tree | bff5d6fbdbcdb4fc54473d838b0262315a213e38 /test | |
parent | b854733d518fcd72b14cea5d7fed6512550a3572 (diff) | |
download | ruby-60282ebfe5ddb283fc2312fb6a2ce9e928cb2ad9.tar.gz |
* lib/xmlrpc/client.rb (new2): fix custom port specification when an
SSL uri is used.
* test/xmlrpc/test_client.rb: tests for XMLRPC::Client.new2
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34882 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/xmlrpc/test_client.rb | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/test/xmlrpc/test_client.rb b/test/xmlrpc/test_client.rb new file mode 100644 index 0000000000..e12391a3ea --- /dev/null +++ b/test/xmlrpc/test_client.rb @@ -0,0 +1,102 @@ +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 + end +end |