Index: /branches/cname-collision/t/cname.t
===================================================================
--- /branches/cname-collision/t/cname.t	(revision 986)
+++ /branches/cname-collision/t/cname.t	(revision 987)
@@ -255,4 +255,30 @@
   }; # add non-timestamp CNAME
 
+  subtest 'CNAME add - expires soon' => sub {
+    my @ltime = localtime;
+    $expirystamp = sprintf "%i-%i-%i %i:%i", $ltime[5] + 1900, $ltime[4] + 1, $ltime[3] + 3, 15, $ltime[1];
+    $newval = 'target.example.com';
+    subtest 'collision with nonexpiring record' => sub {
+      $newname = 'expires-at1.expiry2.test';
+      ($code, $msg) = $dnsdb->addRec('n', 'n', 5, \$newname, \$rectype, \$newval, 900, undef, 't', $expirystamp);
+      ok($code eq 'FAIL', "addRec() returned failure");
+      if ($code eq 'FAIL') {
+        ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 5 AND host = '$newname'");
+        ok( $rcount == 1, " ... [$rcount] yep, hostname only occurs once" );
+        like( $msg, qr/One or more non-CNAME records/, " ... returned matching error" );
+      }
+    };
+    subtest 'collision with expiring record' => sub {
+      $newname = 'expires-at2.expiry2.test';
+      ($code, $msg) = $dnsdb->addRec('n', 'n', 5, \$newname, \$rectype, \$newval, 900, undef, 't', $expirystamp);
+      ok( $code eq 'FAIL', "addRec() returned failure");
+      if ($code eq 'FAIL') {
+        ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 5 AND host = '$newname' AND type <> 5");
+        ok( $rcount == 1, " ... [$rcount] record(s) with $newname already exist" );
+        like( $msg, qr/One or more non-CNAME records/, " ... returned matching error" );
+      }
+    };
+  }; # add expiring CNAME
+
 }; # record expiry/valid-after
 
