net-ping 1.6.2-universal-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,210 @@
1
+ #################################################################################
2
+ # test_net_ping_http.rb
3
+ #
4
+ # Test case for the Net::PingHTTP class. This should be run via the 'test' or
5
+ # 'test:http' Rake task.
6
+ #################################################################################
7
+ require 'test-unit'
8
+ require 'fakeweb'
9
+ require 'net/ping/http'
10
+
11
+ class TC_Net_Ping_HTTP < Test::Unit::TestCase
12
+ def setup
13
+ ENV['http_proxy'] = ENV['https_proxy'] = ENV['no_proxy'] = nil
14
+ @uri = 'http://www.google.com/index.html'
15
+ @uri_https = 'https://encrypted.google.com'
16
+ @proxy = 'http://username:password@proxymoxie:3128'
17
+ FakeWeb.allow_net_connect = false
18
+
19
+ FakeWeb.register_uri(:get, @uri, :body => "PONG")
20
+ FakeWeb.register_uri(:head, @uri, :body => "PONG")
21
+ FakeWeb.register_uri(:head, @uri_https, :body => "PONG")
22
+ FakeWeb.register_uri(:get, @uri_https, :body => "PONG")
23
+ FakeWeb.register_uri(:head, "http://jigsaw.w3.org/HTTP/300/302.html",
24
+ :body => "PONG",
25
+ :location => "#{@uri}",
26
+ :status => ["302", "Found"])
27
+
28
+ FakeWeb.register_uri(:any, 'http://www.blabfoobarurghxxxx.com', :exception => SocketError)
29
+
30
+ @http = Net::Ping::HTTP.new(@uri, 80, 30)
31
+ @bad = Net::Ping::HTTP.new('http://www.blabfoobarurghxxxx.com') # One hopes not
32
+ end
33
+
34
+ test 'ping basic functionality' do
35
+ assert_respond_to(@http, :ping)
36
+ assert_nothing_raised{ @http.ping }
37
+ end
38
+
39
+ test 'ping returns a boolean value' do
40
+ assert_boolean(@http.ping?)
41
+ assert_boolean(@bad.ping?)
42
+ end
43
+
44
+ test 'ping? is an alias for ping' do
45
+ assert_alias_method(@http, :ping?, :ping)
46
+ end
47
+
48
+ test 'pingecho is an alias for ping' do
49
+ assert_alias_method(@http, :pingecho, :ping)
50
+ end
51
+
52
+ test 'ping should succeed for a valid website' do
53
+ assert_true(@http.ping?)
54
+ end
55
+
56
+ test 'ping should fail for an invalid website' do
57
+ assert_false(@bad.ping?)
58
+ end
59
+
60
+ test 'duration basic functionality' do
61
+ assert_respond_to(@http, :duration)
62
+ assert_nothing_raised{ @http.ping }
63
+ end
64
+
65
+ test 'duration returns a float value on a successful ping' do
66
+ assert_true(@http.ping)
67
+ assert_kind_of(Float, @http.duration)
68
+ end
69
+
70
+ test 'duration is nil on an unsuccessful ping' do
71
+ assert_false(@bad.ping)
72
+ assert_nil(@http.duration)
73
+ end
74
+
75
+ test 'host attribute basic functionality' do
76
+ assert_respond_to(@http, :host)
77
+ assert_respond_to(@http, :host=)
78
+ assert_equal('http://www.google.com/index.html', @http.host)
79
+ end
80
+
81
+ test 'uri is an alias for host' do
82
+ assert_alias_method(@http, :uri, :host)
83
+ assert_alias_method(@http, :uri=, :host=)
84
+ end
85
+
86
+ test 'port attribute basic functionality' do
87
+ assert_respond_to(@http, :port)
88
+ assert_respond_to(@http, :port=)
89
+ end
90
+
91
+ test 'port attribute expected value' do
92
+ assert_equal(80, @http.port)
93
+ end
94
+
95
+ test 'timeout attribute basic functionality' do
96
+ assert_respond_to(@http, :timeout)
97
+ assert_respond_to(@http, :timeout=)
98
+ end
99
+
100
+ test 'timeout attribute expected values' do
101
+ assert_equal(30, @http.timeout)
102
+ assert_equal(5, @bad.timeout)
103
+ end
104
+
105
+ test 'exception attribute basic functionality' do
106
+ assert_respond_to(@http, :exception)
107
+ assert_nil(@http.exception)
108
+ end
109
+
110
+ test 'exception attribute is nil if the ping is successful' do
111
+ assert_true(@http.ping)
112
+ assert_nil(@http.exception)
113
+ end
114
+
115
+ test 'exception attribute is not nil if the ping is unsuccessful' do
116
+ assert_false(@bad.ping)
117
+ assert_not_nil(@bad.exception)
118
+ end
119
+
120
+ test 'warning attribute basic functionality' do
121
+ assert_respond_to(@http, :warning)
122
+ assert_nil(@http.warning)
123
+ end
124
+
125
+ test 'user_agent accessor is defined' do
126
+ assert_respond_to(@http, :user_agent)
127
+ assert_respond_to(@http, :user_agent=)
128
+ end
129
+
130
+ test 'user_agent defaults to nil' do
131
+ assert_nil(@http.user_agent)
132
+ end
133
+
134
+ test 'ping with user agent' do
135
+ @http.user_agent = "KDDI-CA32"
136
+ assert_true(@http.ping)
137
+ end
138
+
139
+ test 'redirect_limit accessor is defined' do
140
+ assert_respond_to(@http, :redirect_limit)
141
+ assert_respond_to(@http, :redirect_limit=)
142
+ end
143
+
144
+ test 'redirect_limit defaults to 5' do
145
+ assert_equal(5, @http.redirect_limit)
146
+ end
147
+
148
+ test 'redirects succeed by default' do
149
+ @http = Net::Ping::HTTP.new("http://jigsaw.w3.org/HTTP/300/302.html")
150
+ assert_true(@http.ping)
151
+ end
152
+
153
+ test 'redirect fail if follow_redirect is set to false' do
154
+ @http = Net::Ping::HTTP.new("http://jigsaw.w3.org/HTTP/300/302.html")
155
+ @http.follow_redirect = false
156
+ assert_false(@http.ping)
157
+ end
158
+
159
+ test 'ping with redirect limit set to zero fails' do
160
+ @http = Net::Ping::HTTP.new("http://jigsaw.w3.org/HTTP/300/302.html")
161
+ @http.redirect_limit = 0
162
+ assert_false(@http.ping)
163
+ assert_equal("Redirect limit exceeded", @http.exception)
164
+ end
165
+
166
+ test 'ping against https site defaults to port 443' do
167
+ @http = Net::Ping::HTTP.new(@uri_https)
168
+ assert_equal(443, @http.port)
169
+ end
170
+
171
+ test 'ping against https site works as expected' do
172
+ @http = Net::Ping::HTTP.new(@uri_https)
173
+ assert_true(@http.ping)
174
+ end
175
+
176
+ test 'ping with get option' do
177
+ @http = Net::Ping::HTTP.new(@uri)
178
+ @http.get_request = true
179
+ assert_true(@http.ping)
180
+ end
181
+
182
+ test 'ping with http proxy' do
183
+ ENV['http_proxy'] = "http://proxymoxie:3128"
184
+ @http = Net::Ping::HTTP.new(@uri)
185
+ @http.get_request = true
186
+ assert_true(@http.ping)
187
+ assert_true(@http.proxied)
188
+ end
189
+
190
+ test 'ping with https proxy' do
191
+ ENV['https_proxy'] = "http://proxymoxie:3128"
192
+ @http = Net::Ping::HTTP.new(@uri_https)
193
+ @http.get_request = true
194
+ assert_true(@http.ping)
195
+ assert_true(@http.proxied)
196
+ end
197
+
198
+ test 'ping with no_proxy' do
199
+ ENV['no_proxy'] = "google.com"
200
+ @http = Net::Ping::HTTP.new(@uri)
201
+ @http.get_request = true
202
+ assert_true(@http.ping)
203
+ assert_false(@http.proxied)
204
+ end
205
+
206
+ def teardown
207
+ @uri = nil
208
+ @http = nil
209
+ end
210
+ end
@@ -0,0 +1,139 @@
1
+ #######################################################################
2
+ # test_net_ping_icmp.rb
3
+ #
4
+ # Test case for the Net::PingICMP class. You must run this test case
5
+ # with root privileges on UNIX systems. This should be run via the
6
+ # 'test' or 'test:icmp' Rake task.
7
+ #######################################################################
8
+ require 'test-unit'
9
+ require 'net/ping/icmp'
10
+
11
+ if File::ALT_SEPARATOR
12
+ require 'win32/security'
13
+
14
+ unless Win32::Security.elevated_security?
15
+ raise "The test:icmp task must be run with elevated security rights"
16
+ end
17
+ else
18
+ unless Process.euid == 0
19
+ raise "The test:icmp task must be run with root privileges"
20
+ end
21
+ end
22
+
23
+ class TC_PingICMP < Test::Unit::TestCase
24
+ def setup
25
+ @host = '127.0.0.1' # 'localhost'
26
+ @icmp = Net::Ping::ICMP.new(@host)
27
+ end
28
+
29
+ test "icmp ping basic functionality" do
30
+ assert_respond_to(@icmp, :ping)
31
+ assert_nothing_raised{ @icmp.ping }
32
+ end
33
+
34
+ test "icmp ping accepts a host" do
35
+ assert_nothing_raised{ @icmp.ping(@host) }
36
+ end
37
+
38
+ test "icmp ping returns a boolean" do
39
+ assert_boolean(@icmp.ping)
40
+ assert_boolean(@icmp.ping(@host))
41
+ end
42
+
43
+ test "icmp ping of local host is successful" do
44
+ assert_true(Net::Ping::ICMP.new(@host).ping?)
45
+ assert_true(Net::Ping::ICMP.new('192.168.0.1').ping?)
46
+ end
47
+
48
+ test "ping? is an alias for ping" do
49
+ assert_respond_to(@icmp, :ping?)
50
+ assert_alias_method(@icmp, :ping?, :ping)
51
+ end
52
+
53
+ test "pingecho is an alias for ping" do
54
+ assert_respond_to(@icmp, :pingecho)
55
+ assert_alias_method(@icmp, :pingecho, :ping)
56
+ end
57
+
58
+ test "icmp ping fails if host is invalid" do
59
+ assert_false(Net::Ping::ICMP.new('bogus').ping?)
60
+ assert_false(Net::Ping::ICMP.new('http://www.asdfhjklasdfhlkj.com').ping?)
61
+ end
62
+
63
+ test "bind method basic functionality" do
64
+ assert_respond_to(@icmp, :bind)
65
+ assert_nothing_raised{ @icmp.bind(Socket.gethostname) }
66
+ assert_nothing_raised{ @icmp.bind(Socket.gethostname, 80) }
67
+ end
68
+
69
+ test "duration method basic functionality" do
70
+ assert_nothing_raised{ @icmp.ping }
71
+ assert_respond_to(@icmp, :duration)
72
+ assert_kind_of(Float, @icmp.duration)
73
+ end
74
+
75
+ test "host getter method basic functionality" do
76
+ assert_respond_to(@icmp, :host)
77
+ assert_equal(@host, @icmp.host)
78
+ end
79
+
80
+ test "host setter method basic functionality" do
81
+ assert_respond_to(@icmp, :host=)
82
+ assert_nothing_raised{ @icmp.host = '192.168.0.1' }
83
+ assert_equal(@icmp.host, '192.168.0.1')
84
+ end
85
+
86
+ test "port method basic functionality" do
87
+ assert_respond_to(@icmp, :port)
88
+ assert_equal(nil, @icmp.port)
89
+ end
90
+
91
+ test "timeout getter method basic functionality" do
92
+ assert_respond_to(@icmp, :timeout)
93
+ assert_equal(5, @icmp.timeout)
94
+ end
95
+
96
+ test "timeout setter method basic functionality" do
97
+ assert_respond_to(@icmp, :timeout=)
98
+ assert_nothing_raised{ @icmp.timeout = 7 }
99
+ assert_equal(7, @icmp.timeout)
100
+ end
101
+
102
+ test "exception method basic functionality" do
103
+ assert_respond_to(@icmp, :exception)
104
+ assert_nothing_raised{ @icmp.ping }
105
+ end
106
+
107
+ test "exception method returns nil if no ping has happened yet" do
108
+ assert_nil(@icmp.exception)
109
+ end
110
+
111
+ test "warning method basic functionality" do
112
+ assert_respond_to(@icmp, :warning)
113
+ end
114
+
115
+ test "data_size getter method basic functionality" do
116
+ assert_respond_to(@icmp, :data_size)
117
+ assert_nothing_raised{ @icmp.data_size }
118
+ assert_kind_of(Numeric, @icmp.data_size)
119
+ end
120
+
121
+ test "data_size returns expected value" do
122
+ assert_equal(56, @icmp.data_size)
123
+ end
124
+
125
+ test "data_size setter method basic functionality" do
126
+ assert_respond_to(@icmp, :data_size=)
127
+ assert_nothing_raised{ @icmp.data_size = 22 }
128
+ end
129
+
130
+ test "setting an odd data_size is valid" do
131
+ assert_nothing_raised{ @icmp.data_size = 57 }
132
+ assert_boolean(@icmp.ping)
133
+ end
134
+
135
+ def teardown
136
+ @host = nil
137
+ @icmp = nil
138
+ end
139
+ end
@@ -0,0 +1,105 @@
1
+ #####################################################################
2
+ # test_net_ping_tcp.rb
3
+ #
4
+ # Test case for the Net::PingTCP class. This test should be run via
5
+ # the 'test' or 'test:tcp' Rake task.
6
+ #####################################################################
7
+ require 'test-unit'
8
+ require 'net/ping/tcp'
9
+ include Net
10
+
11
+ class TC_PingTCP < Test::Unit::TestCase
12
+ def setup
13
+ @host = 'localhost'
14
+ @port = 22
15
+ @tcp = Ping::TCP.new(@host, @port)
16
+ end
17
+
18
+ def test_ping
19
+ assert_respond_to(@tcp, :ping)
20
+ assert_nothing_raised{ @tcp.ping }
21
+ assert_nothing_raised{ @tcp.ping(@host) }
22
+ end
23
+
24
+ def test_ping_aliases
25
+ assert_respond_to(@tcp, :ping?)
26
+ assert_respond_to(@tcp, :pingecho)
27
+ assert_nothing_raised{ @tcp.ping? }
28
+ assert_nothing_raised{ @tcp.ping?(@host) }
29
+ assert_nothing_raised{ @tcp.pingecho }
30
+ assert_nothing_raised{ @tcp.pingecho(@host) }
31
+ end
32
+
33
+ def test_ping_service_check_false
34
+ msg = "+this test may fail depending on your network environment+"
35
+ Ping::TCP.service_check = false
36
+ @tcp = Ping::TCP.new('localhost')
37
+ assert_false(@tcp.ping?, msg)
38
+ assert_false(@tcp.exception.nil?, "Bad exception data")
39
+ end
40
+
41
+ def test_ping_service_check_true
42
+ msg = "+this test may fail depending on your network environment+"
43
+ Ping::TCP.service_check = true
44
+ assert_true(@tcp.ping?, msg)
45
+ end
46
+
47
+ def test_service_check
48
+ assert_respond_to(Ping::TCP, :service_check)
49
+ assert_respond_to(Ping::TCP, :service_check=)
50
+ end
51
+
52
+ # These will be removed eventually
53
+ def test_service_check_aliases
54
+ assert_respond_to(Ping::TCP, :econnrefused)
55
+ assert_respond_to(Ping::TCP, :econnrefused=)
56
+ assert_respond_to(Ping::TCP, :ecr)
57
+ assert_respond_to(Ping::TCP, :ecr=)
58
+ end
59
+
60
+ def test_service_check_expected_errors
61
+ assert_raises(ArgumentError){ Ping::TCP.service_check = "blah" }
62
+ end
63
+
64
+ # If the ping failed, the duration will be nil
65
+ def test_duration
66
+ assert_nothing_raised{ @tcp.ping }
67
+ assert_respond_to(@tcp, :duration)
68
+ omit_if(@tcp.duration.nil?, 'ping failed, skipping')
69
+ assert_kind_of(Float, @tcp.duration)
70
+ end
71
+
72
+ def test_host
73
+ assert_respond_to(@tcp, :host)
74
+ assert_respond_to(@tcp, :host=)
75
+ assert_equal(@host, @tcp.host)
76
+ end
77
+
78
+ def test_port
79
+ assert_respond_to(@tcp, :port)
80
+ assert_respond_to(@tcp, :port=)
81
+ assert_equal(22, @tcp.port)
82
+ end
83
+
84
+ def test_timeout
85
+ assert_respond_to(@tcp, :timeout)
86
+ assert_respond_to(@tcp, :timeout=)
87
+ assert_equal(5, @tcp.timeout)
88
+ end
89
+
90
+ def test_exception
91
+ msg = "+this test may fail depending on your network environment+"
92
+ assert_respond_to(@tcp, :exception)
93
+ assert_nothing_raised{ @tcp.ping }
94
+ assert_nil(@tcp.exception, msg)
95
+ end
96
+
97
+ def test_warning
98
+ assert_respond_to(@tcp, :warning)
99
+ end
100
+
101
+ def teardown
102
+ @host = nil
103
+ @tcp = nil
104
+ end
105
+ end