mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-11-22 00:05:57 -05:00
42 lines
1.6 KiB
Ruby
42 lines
1.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require_relative "test_helper"
|
|
|
|
class ResolverTest < Minitest::Test
|
|
include HTTPX
|
|
|
|
def test_cached_lookup
|
|
ips = Resolver.cached_lookup("test.com")
|
|
assert ips.nil?
|
|
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"]
|
|
sleep 2
|
|
ips = Resolver.cached_lookup("test.com")
|
|
assert ips.nil?
|
|
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"]
|
|
|
|
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]
|
|
|
|
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]
|
|
end
|
|
|
|
def test_resolver_for
|
|
assert Resolver.resolver_for(:native) == Resolver::Native
|
|
assert Resolver.resolver_for(:system) == Resolver::System
|
|
assert Resolver.resolver_for(:https) == Resolver::HTTPS
|
|
assert Resolver.resolver_for(Resolver::HTTPS) == Resolver::HTTPS
|
|
ex = assert_raises(Error) { Resolver.resolver_for(Object) }
|
|
assert(ex.message.include?("unsupported resolver type"))
|
|
end
|
|
end
|