source: branches/cname-collision/t/cname.t@ 950

Last change on this file since 950 was 950, checked in by Kris Deugau, 23 hours ago

/branches/cname-collision

Start adding actual tests. See #88.

First chunk, tests for CNAME collision checks. See #72.

File size: 1.3 KB
Line 
1# -*- Perl -*-
2# Tests for CNAME records
3
4use Test::More;
5use Data::Dumper;
6
7use lib 't';
8
9use DNSTest;
10my $dtest = DNSTest::new;
11
12my $code,$msg;
13my $rectype = 5;
14my $newname;
15my $newval;
16
17## Domain tests
18
19subtest 'CNAME add - new name' => sub {
20 $newname = 'newname.example.com';
21 $newval = 'fredshosting.example.net';
22 ($code, $msg) = $dnsdb->addRec('n', 'n', 1, \$newname, \$rectype, \$newval, 900);
23 ok( $code eq 'OK', "addRec() claimed succeess" );
24 if ($code eq 'OK') {
25 # crosscheck in the DB
26 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname'");
27 ok( $rcount == 1, " ... [$rcount] yep, hostname only occurs once" );
28 } else {
29 print "not ok: $msg";
30 }
31};
32
33subtest 'CNAME add - existing/colliding CNAME' => sub {
34 $newname = 'www.example.com';
35 ($code, $msg) = $dnsdb->addRec('n', 'n', 1, \$newname, \$rectype, \$newval, 900);
36 ok( $code eq 'FAIL', "addRec() claimed failure adding duplicate CNAME" );
37 if ($code eq 'FAIL') {
38 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname' AND type = 5");
39 ok( $rcount == 1, " ... [$rcount] CNAME already exists" );
40 like( $msg, qr/already a CNAME present/, " ... returned matching error" );
41 }
42};
43
44done_testing();
Note: See TracBrowser for help on using the repository browser.