require 'test_helper' class ServerTest < Test::Unit::TestCase def setup Whois::Server.class_eval { class_variable_set("@@definitions", { :tld => [], :ipv4 =>[], :ipv6 => [] }) } end def test_guess_should_recognize_email Whois::Server.expects(:find_for_email).with("email@example.org").returns(true) assert Whois::Server.guess("email@example.org") end def test_guess_should_recognize_tld Whois::Server.expects(:find_for_tld).with("google.com").returns(true) assert Whois::Server.guess("google.com") end def test_guess_should_recognize_ipv4 Whois::Server.expects(:find_for_ipv4).with("192.168.1.1").returns(true) assert Whois::Server.guess("192.168.1.1") end def test_guess_should_recognize_ipv6 Whois::Server.expects(:find_for_ipv6).with("2001:0db8:85a3:0000:0000:8a2e:0370:7334").returns(true) assert Whois::Server.guess("2001:0db8:85a3:0000:0000:8a2e:0370:7334") end def test_guess_should_recognize_ipv6_with_zeros_group Whois::Server.expects(:find_for_ipv6).with("2002::1").returns(true) assert Whois::Server.guess("2002::1") end def test_guess_should_raise_servernotfound_with_unrecognized_query assert_raise(Whois::ServerNotFound){ Whois::Server.guess("xyz") } end def test_find_for_tld_should_not_consider_dot_as_regexp_instruction Whois::Server.define(:tld, ".no.com", "whois.no.com") Whois::Server.define(:tld, ".com", "whois.com") assert_equal "whois.com", Whois::Server.guess("antoniocangiano.com").host end def test_find_for_ipv6_should_factory_ipv6_with_ipv4_compatibility Whois::Server.define(:ipv6, "::192.168.1.1", "whois.foo") Whois::Server.expects(:factory).with(:ipv6, any_parameters).returns(true) assert Whois::Server.guess("::192.168.1.1") end def test_definitions assert_instance_of Hash, Whois::Server.definitions end def test_definitions_with_key assert_equal nil, Whois::Server.definitions(:foo) Whois::Server.define(:foo, ".foo", "whois.foo") assert_equal [[".foo", "whois.foo", {}]], Whois::Server.definitions(:foo) end def test_define_tld Whois::Server.define(:tld, ".foo", "whois.foo") assert_equal [".foo", "whois.foo", {}], Whois::Server.definitions[:tld].last end def test_define_tld_with_options Whois::Server.define(:tld, ".foo", "whois.foo", :foo => "bar") assert_equal [".foo", "whois.foo", { :foo => "bar" }], Whois::Server.definitions[:tld].last end def test_define_ipv4 Whois::Server.define(:ipv4, ".foo", "whois.foo") assert_equal [".foo", "whois.foo", {}], Whois::Server.definitions[:ipv4].last end def test_define_ipv4_with_options Whois::Server.define(:ipv4, ".foo", "whois.foo", :foo => "bar") assert_equal [".foo", "whois.foo", { :foo => "bar" }], Whois::Server.definitions[:ipv4].last end def test_factory server = Whois::Server.factory(:tld, ".foo", "whois.foo") assert_instance_of Whois::Server::Adapters::Standard, server end def test_factory_with_adapter server = Whois::Server.factory(:tld, ".foo", "whois.foo", :adapter => Whois::Server::Adapters::None) assert_instance_of Whois::Server::Adapters::None, server end def test_factory_with_adapter_should_delete_adapter_option server = Whois::Server.factory(:tld, ".foo", "whois.foo", :adapter => Whois::Server::Adapters::None, :foo => "bar") assert_equal server.options, { :foo => "bar" } end end