From b9b2715b1046787905fe1c2829b8f304c70fbaa8 Mon Sep 17 00:00:00 2001 From: HoneyryderChuck Date: Tue, 13 Jun 2023 16:54:19 +0100 Subject: [PATCH] improve coverage of altsvc and resolver modules --- test/altsvc_test.rb | 6 ++++++ test/resolver_test.rb | 36 ++++++++++++++++++++++++------------ 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/test/altsvc_test.rb b/test/altsvc_test.rb index 9e8a5f88..d41f88a6 100644 --- a/test/altsvc_test.rb +++ b/test/altsvc_test.rb @@ -16,6 +16,12 @@ class AltSvcTest < Minitest::Test assert AltSvc.cached_altsvc("http://www.example-altsvc-cache.com").empty? end + def test_altsvc_scheme + assert "https", AltSvc.parse_altsvc_scheme("h2") + assert "http", AltSvc.parse_altsvc_scheme("h2c") + assert AltSvc.parse_altsvc_scheme("wat").nil? + end + def test_altsvc_parse_svc assert [["h2=alt.example.com", {}]], AltSvc.parse("h2=alt.example.com").to_a end diff --git a/test/resolver_test.rb b/test/resolver_test.rb index 5f3adf56..95f39e73 100644 --- a/test/resolver_test.rb +++ b/test/resolver_test.rb @@ -6,28 +6,30 @@ class ResolverTest < Minitest::Test include HTTPX def test_cached_lookup - ips = Resolver.cached_lookup("test.com") - assert ips.nil? + assert_ips nil, Resolver.cached_lookup("test.com") dns_entry = { "data" => "::2", "TTL" => 2, "name" => "test.com" } Resolver.cached_lookup_set("test.com", Socket::AF_INET6, [dns_entry]) - ips = Resolver.cached_lookup("test.com") - assert ips == ["::2"] + assert_ips ["::2"], Resolver.cached_lookup("test.com") sleep 2 - ips = Resolver.cached_lookup("test.com") - assert ips.nil? + assert_ips nil, Resolver.cached_lookup("test.com") alias_entry = { "alias" => "test.com", "TTL" => 2, "name" => "foo.com" } Resolver.cached_lookup_set("test.com", Socket::AF_INET6, [dns_entry]) Resolver.cached_lookup_set("foo.com", Socket::AF_INET6, [alias_entry]) - ips = Resolver.cached_lookup("foo.com") - assert ips == ["::2"] + assert_ips ["::2"], Resolver.cached_lookup("foo.com") Resolver.cached_lookup_set("test.com", Socket::AF_INET6, [{ "data" => "::3", "TTL" => 2, "name" => "test.com" }]) - ips = Resolver.cached_lookup("test.com") - assert ips == %w[::2 ::3] + assert_ips %w[::2 ::3], Resolver.cached_lookup("test.com") Resolver.cached_lookup_set("test.com", Socket::AF_INET, [{ "data" => "127.0.0.2", "TTL" => 2, "name" => "test.com" }]) - ips = Resolver.cached_lookup("test.com") - assert ips == %w[127.0.0.2 ::2 ::3] + assert_ips %w[127.0.0.2 ::2 ::3], Resolver.cached_lookup("test.com") + + Resolver.cached_lookup_set("test2.com", Socket::AF_INET6, [{ "data" => "::4", "TTL" => 2, "name" => "test3.com" }]) + assert_ips %w[::4], Resolver.cached_lookup("test2.com") + assert_ips %w[::4], Resolver.cached_lookup("test3.com") + + Resolver.cached_lookup_set("test2.com", Socket::AF_INET, [{ "data" => "127.0.0.3", "TTL" => 2, "name" => "test3.com" }]) + assert_ips %w[127.0.0.3 ::4], Resolver.cached_lookup("test2.com") + assert_ips %w[127.0.0.3 ::4], Resolver.cached_lookup("test3.com") end def test_resolver_for @@ -38,4 +40,14 @@ class ResolverTest < Minitest::Test ex = assert_raises(Error) { Resolver.resolver_for(Object) } assert(ex.message.include?("unsupported resolver type")) end + + private + + def assert_ips(expected, actual) + if expected.nil? + assert_nil(actual) + else + assert_equal(expected.map(&IPAddr.method(:new)), actual) + end + end end