summaryrefslogtreecommitdiff
path: root/vendor/bundle/ruby/3.4.0/gems/eventmachine-1.2.7/tests/test_resolver.rb
diff options
context:
space:
mode:
authorBenjamin Sanders <ben@Benjamins-MacBook-Pro.local>2025-10-11 10:34:24 -0400
committerBenjamin Sanders <ben@Benjamins-MacBook-Pro.local>2025-10-11 10:34:24 -0400
commit5571dc766e2143e39762ff0b47c41d1c2e154f4c (patch)
treef4f124d314a7e76c04484515aa0fd1f2e271a601 /vendor/bundle/ruby/3.4.0/gems/eventmachine-1.2.7/tests/test_resolver.rb
parent359f3309c97fc894b63e0a295c76ab298504d635 (diff)
Vendor bundled gems for deployment
Diffstat (limited to 'vendor/bundle/ruby/3.4.0/gems/eventmachine-1.2.7/tests/test_resolver.rb')
-rw-r--r--vendor/bundle/ruby/3.4.0/gems/eventmachine-1.2.7/tests/test_resolver.rb105
1 files changed, 105 insertions, 0 deletions
diff --git a/vendor/bundle/ruby/3.4.0/gems/eventmachine-1.2.7/tests/test_resolver.rb b/vendor/bundle/ruby/3.4.0/gems/eventmachine-1.2.7/tests/test_resolver.rb
new file mode 100644
index 0000000..58ed5f5
--- /dev/null
+++ b/vendor/bundle/ruby/3.4.0/gems/eventmachine-1.2.7/tests/test_resolver.rb
@@ -0,0 +1,105 @@
+require 'em_test_helper'
+
+class TestResolver < Test::Unit::TestCase
+ def test_nameserver
+ assert_kind_of(String, EM::DNS::Resolver.nameserver)
+ end
+
+ def test_nameservers
+ assert_kind_of(Array, EM::DNS::Resolver.nameservers)
+ end
+
+ def test_hosts
+ assert_kind_of(Hash, EM::DNS::Resolver.hosts)
+
+ # Make sure that blank or comment lines are skipped
+ refute(EM::DNS::Resolver.hosts.include? nil)
+ end
+
+ def test_a
+ pend('FIXME: this test is broken on Windows') if windows?
+
+ EM.run {
+ d = EM::DNS::Resolver.resolve "example.com"
+ d.errback { assert false }
+ d.callback { |r|
+ assert r
+ EM.stop
+ }
+ }
+ end
+
+ def test_bad_host
+ EM.run {
+ d = EM::DNS::Resolver.resolve "asdfasasdf"
+ d.callback { assert false }
+ d.errback { assert true; EM.stop }
+ }
+ end
+
+ def test_garbage
+ assert_raises( ArgumentError ) {
+ EM.run {
+ EM::DNS::Resolver.resolve 123
+ }
+ }
+ end
+
+ # There isn't a public DNS entry like 'example.com' with an A rrset
+ def test_a_pair
+ pend('FIXME: this test is broken on Windows') if windows?
+
+ EM.run {
+ d = EM::DNS::Resolver.resolve "yahoo.com"
+ d.errback { |err| assert false, "failed to resolve yahoo.com: #{err}" }
+ d.callback { |r|
+ assert_kind_of(Array, r)
+ assert r.size > 1, "returned #{r.size} results: #{r.inspect}"
+ EM.stop
+ }
+ }
+ end
+
+ def test_localhost
+ pend('FIXME: this test is broken on Windows') if windows?
+
+ EM.run {
+ d = EM::DNS::Resolver.resolve "localhost"
+ d.errback { assert false }
+ d.callback { |r|
+ assert_include(["127.0.0.1", "::1"], r.first)
+ assert_kind_of(Array, r)
+
+ EM.stop
+ }
+ }
+ end
+
+ def test_timer_cleanup
+ pend('FIXME: this test is broken on Windows') if windows?
+
+ EM.run {
+ d = EM::DNS::Resolver.resolve "example.com"
+ d.errback { |err| assert false, "failed to resolve example.com: #{err}" }
+ d.callback { |r|
+ # This isn't a great test, but it's hard to get more canonical
+ # confirmation that the timer is cancelled
+ assert_nil(EM::DNS::Resolver.socket.instance_variable_get(:@timer))
+
+ EM.stop
+ }
+ }
+ end
+
+ def test_failure_timer_cleanup
+ EM.run {
+ d = EM::DNS::Resolver.resolve "asdfasdf"
+ d.callback { assert false }
+ d.errback {
+ assert_nil(EM::DNS::Resolver.socket.instance_variable_get(:@timer))
+
+ EM.stop
+ }
+ }
+ end
+end