--- 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';
--- 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();