|
Packit |
e6c8bb |
# $Id: 01-resolver-file.t 1573 2017-06-12 11:03:59Z willem $
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
use strict;
|
|
Packit |
e6c8bb |
use File::Spec;
|
|
Packit |
e6c8bb |
use Test::More tests => 16;
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
use Net::DNS;
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
local $ENV{'RES_NAMESERVERS'};
|
|
Packit |
e6c8bb |
local $ENV{'RES_SEARCHLIST'};
|
|
Packit |
e6c8bb |
local $ENV{'LOCALDOMAIN'};
|
|
Packit |
e6c8bb |
local $ENV{'RES_OPTIONS'};
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
my $class = 'Net::DNS::Resolver';
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
my $config = File::Spec->catfile(qw(t custom.txt)); # .txt to run on Windows
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
{
|
|
Packit |
e6c8bb |
$class->domain('domain.default');
|
|
Packit |
e6c8bb |
my $resolver = $class->new( config_file => $config );
|
|
Packit |
e6c8bb |
ok( $resolver->isa($class), "new( config_file => '$config' )" );
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
my @servers = $resolver->nameservers;
|
|
Packit |
e6c8bb |
ok( scalar(@servers), 'nameservers list populated' );
|
|
Packit |
e6c8bb |
is( $servers[0], '10.0.1.128', 'nameservers list correct' );
|
|
Packit |
e6c8bb |
is( $servers[1], '10.0.2.128', 'nameservers list correct' );
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
my @search = $resolver->searchlist;
|
|
Packit |
e6c8bb |
ok( scalar(@search), 'searchlist populated' );
|
|
Packit |
e6c8bb |
is( $search[0], 'alt.net-dns.org', 'searchlist correct' );
|
|
Packit |
e6c8bb |
is( $search[1], 'ext.net-dns.org', 'searchlist correct' );
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
is( $resolver->domain, 'alt.net-dns.org', 'domain correct' );
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
is( $class->domain, $resolver->domain, 'initial config sets defaults' );
|
|
Packit |
e6c8bb |
}
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
{
|
|
Packit |
e6c8bb |
$class->domain('domain.default');
|
|
Packit |
e6c8bb |
my $resolver = $class->new( config_file => $config );
|
|
Packit |
e6c8bb |
ok( $resolver->isa($class), "new( config_file => $config )" );
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
my @servers = $resolver->nameservers;
|
|
Packit |
e6c8bb |
ok( scalar(@servers), 'nameservers list populated' );
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
my $domain = 'alt.net-dns.org';
|
|
Packit |
e6c8bb |
my @search = $resolver->searchlist;
|
|
Packit |
e6c8bb |
ok( scalar(@search), 'searchlist populated' );
|
|
Packit |
e6c8bb |
is( shift(@search), $domain, 'searchlist correct' );
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
is( $resolver->domain, $domain, 'domain correct' );
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
isnt( $class->domain, $resolver->domain, 'default config unchanged' );
|
|
Packit |
e6c8bb |
}
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
{ # file presumed not to exist
|
|
Packit |
e6c8bb |
eval { new $class( config_file => 'nonexist.txt' ); };
|
|
Packit |
e6c8bb |
my $exception = $1 if $@ =~ /^(.+)\n/;
|
|
Packit |
e6c8bb |
ok( $exception ||= '', "new( config_file => ?\t[$exception]" );
|
|
Packit |
e6c8bb |
}
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
exit;
|
|
Packit |
e6c8bb |
|