# HG changeset patch # User pesch # Date 1464731116 -7200 # Node ID 936efccc64e6c81ffb6f797468f4a6e259619e89 # Parent a8b89fc55a3081cc00cdd3c80076e5c540605cf8 tests + add TODO diff -r a8b89fc55a30 -r 936efccc64e6 lib/Nagios/Check/DNS/check_tlsa_record.pm --- a/lib/Nagios/Check/DNS/check_tlsa_record.pm Tue May 31 20:50:52 2016 +0200 +++ b/lib/Nagios/Check/DNS/check_tlsa_record.pm Tue May 31 23:45:16 2016 +0200 @@ -30,6 +30,11 @@ } sub dig_tlsa { + #@TODO + #dig tlsa _443._tcp.torproject.org +short + #wildcard.torproject.org. + #3 1 1 578582E6B4569A4627AEF5DFE876EEC0539388E605DB170217838B10 D2A58DA5 + # until it's fixed test 7 returns ok on test on crit tlsa status my $domain = shift; my $port = shift // croak 'Need a port number'; my $protocol = shift // 'tcp'; diff -r a8b89fc55a30 -r 936efccc64e6 t/check_tlsa_record.t --- a/t/check_tlsa_record.t Tue May 31 20:50:52 2016 +0200 +++ b/t/check_tlsa_record.t Tue May 31 23:45:16 2016 +0200 @@ -8,20 +8,45 @@ require_ok('Nagios::Check::DNS::check_tlsa_record'); -my $domain = 'ssl.schlittermann.de'; +#HTTP Domains +my $domain = 'ssl.schlittermann.de'; +my $domain2 = 'torproject.org'; +my $domain3 = 'freebsd.org'; + +#smtpdomains +my $sdomain = 'hh.schlittermann.de'; + #Test main() -my $test_main_no_port = Nagios::Check::DNS::check_tlsa_record::main(($domain)); -like($test_main_no_port, qr(OK: .* is valid), 'main() no port'); + +sub test_main() { + my $test_main_default_port = Nagios::Check::DNS::check_tlsa_record::main(($domain)); + like($test_main_default_port, qr(OK: .* is valid), 'main() ok with domain and default port 443'); -my $test_main_no_tlsa = Nagios::Check::DNS::check_tlsa_record::main(('hh.schlittermann.de')); -like($test_main_no_tlsa, qr(WARNING: .*), 'main() no SSL-Cert or no tlsa to dig'); + my $test_main_domain_and_port = Nagios::Check::DNS::check_tlsa_record::main(($sdomain, 25)); + like($test_main_domain_and_port, qr(OK: .* is valid), 'main() ok with domain and port'); + + my $test_main_domain_port_protocol = Nagios::Check::DNS::check_tlsa_record::main(($domain3, 443, 'tcp')); + like($test_main_domain_port_protocol, qr(OK: .* is valid), 'main() ok with domain, port and protocol'); + + my $test_main_no_tlsa = Nagios::Check::DNS::check_tlsa_record::main(($sdomain)); + like($test_main_no_tlsa, qr(WARNING: .*), 'main() warning when no SSL-Certificate is available or dig returns no tlsa'); -my $test_main_domain_and_port = Nagios::Check::DNS::check_tlsa_record::main(('hh.schlittermann.de', 25)); -like($test_main_domain_and_port, qr(OK: .* is valid), 'main() domain and port'); + my $test_main_default_port2 = Nagios::Check::DNS::check_tlsa_record::main(($domain2)); + like($test_main_default_port2, qr(CRITICAL: .* valid), 'main() critical with domain and default port 443'); + +} + +sub test_dig() { -my $test_main_domain_protocol_port = Nagios::Check::DNS::check_tlsa_record::main(('hh.schlittermann.de', 25, 'tcp')); -like($test_main_domain_protocol_port, qr(OK: .* is valid), 'main() domain, protocol and port'); +#my $test_dig_tlsa = Nagios::Check::DNS::check_tlsa_record::dig_tlsa($domain, 25, 'tcp'); +my $test_dig_tlsa = Nagios::Check::DNS::check_tlsa_record::dig_tlsa($domain, 443); +like($test_dig_tlsa, qr(^[0-3]{1}\s[01]{1}\s[0-2]{1}\s[A-F0-9]{56}\s[A-F0-9]{8}), 'dig_tlsa() returnd format looks like an valid answer to dig tlsa'); + +} + +test_main(); +test_dig();