The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# $Id: 01-resolver-flags.t 1260 2014-09-09 09:12:28Z willem $  -*-perl-*-

use strict;
use Test::More tests => 12;

use Net::DNS;

use constant DNSSEC => eval { require Net::DNS::SEC; } || 0;

my $res = Net::DNS::Resolver->new();
isa_ok( $res, 'Net::DNS::Resolver', 'new() created object' );

ok( !$res->dnssec(), "default dnssec flag off" );
my $udpsize = $res->udppacketsize();

my @warning;
local $SIG{__WARN__} = sub { @warning = @_; };

$res->dnssec(1);
is( scalar(@warning), 0, 'no warning setting $res->dnssec(1)' ) if DNSSEC;
ok( scalar(@warning), "expected warning: [@warning]" ) unless DNSSEC;


SKIP: {
	skip( 'Net::DNS::SEC not installed', 3 ) unless DNSSEC;

	ok( $res->dnssec(), "dnssec flag toggles on" );
	my $size = $res->udppacketsize();
	isnt( $size, $udpsize, "dnssec(1) sets udppacketsize ($size)" );

	$res->dnssec(0);

	ok( !$res->dnssec(), "dnssec flag toggles off" );
}


ok( !$res->adflag(), "default adflag  off" );
$res->adflag(1);
ok( $res->adflag(), "toggle adflag  on" );
$res->adflag(0);
ok( !$res->adflag(), "toggle adflag  off" );


ok( !$res->cdflag(), "default cdflag  off" );
$res->cdflag(1);
ok( $res->cdflag(), "toggle cdflag  on" );
$res->cdflag(0);
ok( !$res->cdflag(), "toggle cdflag  off" );


exit;