1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
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
|