check rr against possible existing CNAME entries, fixes #927
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
@@ -101,6 +101,7 @@ class DomainZonesTest extends TestCase
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @depends testCustomerDomainZonesAddA
|
||||
*/
|
||||
public function testAdminDomainZonesListing()
|
||||
@@ -303,14 +304,14 @@ class DomainZonesTest extends TestCase
|
||||
'domainname' => 'test2.local',
|
||||
'record' => '@',
|
||||
'type' => 'CAA',
|
||||
'content' => $content,
|
||||
'content' => $content
|
||||
];
|
||||
$json_result = DomainZones::getLocal($admin_userdata, $data)->add();
|
||||
$result = json_decode($json_result, true)['data'];
|
||||
$this->assertTrue(count($result) > 1);
|
||||
$found = false;
|
||||
foreach ($result as $entry) {
|
||||
if (substr($entry, -strlen($content)) == $content) {
|
||||
if (substr($entry, - strlen($content)) == $content) {
|
||||
$found = true;
|
||||
break;
|
||||
}
|
||||
@@ -328,7 +329,7 @@ class DomainZonesTest extends TestCase
|
||||
'domainname' => 'test2.local',
|
||||
'record' => '@',
|
||||
'type' => 'CAA',
|
||||
'content' => $content,
|
||||
'content' => $content
|
||||
];
|
||||
$json_result = DomainZones::getLocal($admin_userdata, $data)->add();
|
||||
$result = json_decode($json_result, true)['data'];
|
||||
@@ -341,7 +342,7 @@ class DomainZonesTest extends TestCase
|
||||
}
|
||||
}
|
||||
$this->assertTrue($found);
|
||||
$this->assertEquals('@ 18000 IN CAA '.$content, $entry);
|
||||
$this->assertEquals('@ 18000 IN CAA ' . $content, $entry);
|
||||
}
|
||||
|
||||
public function testAdminDomainZonesAddCAAIssueWithTwoParameters()
|
||||
@@ -353,7 +354,7 @@ class DomainZonesTest extends TestCase
|
||||
'domainname' => 'test2.local',
|
||||
'record' => '@',
|
||||
'type' => 'CAA',
|
||||
'content' => $content,
|
||||
'content' => $content
|
||||
];
|
||||
$json_result = DomainZones::getLocal($admin_userdata, $data)->add();
|
||||
$result = json_decode($json_result, true)['data'];
|
||||
@@ -366,7 +367,7 @@ class DomainZonesTest extends TestCase
|
||||
}
|
||||
}
|
||||
$this->assertTrue($found);
|
||||
$this->assertEquals('@ 18000 IN CAA '.$content, $entry);
|
||||
$this->assertEquals('@ 18000 IN CAA ' . $content, $entry);
|
||||
}
|
||||
|
||||
public function testAdminDomainZonesAddCAAInvalidIssueValue()
|
||||
@@ -378,7 +379,7 @@ class DomainZonesTest extends TestCase
|
||||
'domainname' => 'test2.local',
|
||||
'record' => '@',
|
||||
'type' => 'CAA',
|
||||
'content' => $content,
|
||||
'content' => $content
|
||||
];
|
||||
$this->expectExceptionMessage("DNS content invalid");
|
||||
DomainZones::getLocal($admin_userdata, $data)->add();
|
||||
@@ -393,7 +394,7 @@ class DomainZonesTest extends TestCase
|
||||
'domainname' => 'test2.local',
|
||||
'record' => '@',
|
||||
'type' => 'CAA',
|
||||
'content' => $content,
|
||||
'content' => $content
|
||||
];
|
||||
$this->expectExceptionMessage("DNS content invalid");
|
||||
DomainZones::getLocal($admin_userdata, $data)->add();
|
||||
@@ -408,7 +409,7 @@ class DomainZonesTest extends TestCase
|
||||
'domainname' => 'test2.local',
|
||||
'record' => '@',
|
||||
'type' => 'CAA',
|
||||
'content' => $content,
|
||||
'content' => $content
|
||||
];
|
||||
$this->expectExceptionMessage("DNS content invalid");
|
||||
DomainZones::getLocal($admin_userdata, $data)->add();
|
||||
@@ -423,7 +424,7 @@ class DomainZonesTest extends TestCase
|
||||
'domainname' => 'test2.local',
|
||||
'record' => '@',
|
||||
'type' => 'CAA',
|
||||
'content' => $content,
|
||||
'content' => $content
|
||||
];
|
||||
$json_result = DomainZones::getLocal($admin_userdata, $data)->add();
|
||||
$result = json_decode($json_result, true)['data'];
|
||||
@@ -436,7 +437,7 @@ class DomainZonesTest extends TestCase
|
||||
}
|
||||
}
|
||||
$this->assertTrue($found);
|
||||
$this->assertEquals('@ 18000 IN CAA '.$content, $entry);
|
||||
$this->assertEquals('@ 18000 IN CAA ' . $content, $entry);
|
||||
}
|
||||
|
||||
public function testAdminDomainZonesAddCAAIssueWildWithParameters()
|
||||
@@ -448,7 +449,7 @@ class DomainZonesTest extends TestCase
|
||||
'domainname' => 'test2.local',
|
||||
'record' => '@',
|
||||
'type' => 'CAA',
|
||||
'content' => $content,
|
||||
'content' => $content
|
||||
];
|
||||
$json_result = DomainZones::getLocal($admin_userdata, $data)->add();
|
||||
$result = json_decode($json_result, true)['data'];
|
||||
@@ -461,7 +462,7 @@ class DomainZonesTest extends TestCase
|
||||
}
|
||||
}
|
||||
$this->assertTrue($found);
|
||||
$this->assertEquals('@ 18000 IN CAA '.$content, $entry);
|
||||
$this->assertEquals('@ 18000 IN CAA ' . $content, $entry);
|
||||
}
|
||||
|
||||
public function testAdminDomainZonesAddCAAIssueWildWithTwoParameters()
|
||||
@@ -473,7 +474,7 @@ class DomainZonesTest extends TestCase
|
||||
'domainname' => 'test2.local',
|
||||
'record' => '@',
|
||||
'type' => 'CAA',
|
||||
'content' => $content,
|
||||
'content' => $content
|
||||
];
|
||||
$json_result = DomainZones::getLocal($admin_userdata, $data)->add();
|
||||
$result = json_decode($json_result, true)['data'];
|
||||
@@ -486,7 +487,7 @@ class DomainZonesTest extends TestCase
|
||||
}
|
||||
}
|
||||
$this->assertTrue($found);
|
||||
$this->assertEquals('@ 18000 IN CAA '.$content, $entry);
|
||||
$this->assertEquals('@ 18000 IN CAA ' . $content, $entry);
|
||||
}
|
||||
|
||||
public function testAdminDomainZonesAddCAAInvalidIssueWildValue()
|
||||
@@ -498,7 +499,7 @@ class DomainZonesTest extends TestCase
|
||||
'domainname' => 'test2.local',
|
||||
'record' => '@',
|
||||
'type' => 'CAA',
|
||||
'content' => $content,
|
||||
'content' => $content
|
||||
];
|
||||
$this->expectExceptionMessage("DNS content invalid");
|
||||
DomainZones::getLocal($admin_userdata, $data)->add();
|
||||
@@ -513,7 +514,7 @@ class DomainZonesTest extends TestCase
|
||||
'domainname' => 'test2.local',
|
||||
'record' => '@',
|
||||
'type' => 'CAA',
|
||||
'content' => $content,
|
||||
'content' => $content
|
||||
];
|
||||
$this->expectExceptionMessage("DNS content invalid");
|
||||
DomainZones::getLocal($admin_userdata, $data)->add();
|
||||
@@ -528,7 +529,7 @@ class DomainZonesTest extends TestCase
|
||||
'domainname' => 'test2.local',
|
||||
'record' => '@',
|
||||
'type' => 'CAA',
|
||||
'content' => $content,
|
||||
'content' => $content
|
||||
];
|
||||
$this->expectExceptionMessage("DNS content invalid");
|
||||
DomainZones::getLocal($admin_userdata, $data)->add();
|
||||
@@ -543,7 +544,7 @@ class DomainZonesTest extends TestCase
|
||||
'domainname' => 'test2.local',
|
||||
'record' => '@',
|
||||
'type' => 'CAA',
|
||||
'content' => $content,
|
||||
'content' => $content
|
||||
];
|
||||
$json_result = DomainZones::getLocal($admin_userdata, $data)->add();
|
||||
$result = json_decode($json_result, true)['data'];
|
||||
@@ -556,7 +557,7 @@ class DomainZonesTest extends TestCase
|
||||
}
|
||||
}
|
||||
$this->assertTrue($found);
|
||||
$this->assertEquals('@ 18000 IN CAA '.$content, $entry);
|
||||
$this->assertEquals('@ 18000 IN CAA ' . $content, $entry);
|
||||
}
|
||||
|
||||
public function testAdminDomainZonesAddCAAIodefMailInvalid()
|
||||
@@ -568,7 +569,7 @@ class DomainZonesTest extends TestCase
|
||||
'domainname' => 'test2.local',
|
||||
'record' => '@',
|
||||
'type' => 'CAA',
|
||||
'content' => $content,
|
||||
'content' => $content
|
||||
];
|
||||
$this->expectExceptionMessage("DNS content invalid");
|
||||
DomainZones::getLocal($admin_userdata, $data)->add();
|
||||
@@ -583,7 +584,7 @@ class DomainZonesTest extends TestCase
|
||||
'domainname' => 'test2.local',
|
||||
'record' => '@',
|
||||
'type' => 'CAA',
|
||||
'content' => $content,
|
||||
'content' => $content
|
||||
];
|
||||
$json_result = DomainZones::getLocal($admin_userdata, $data)->add();
|
||||
$result = json_decode($json_result, true)['data'];
|
||||
@@ -596,7 +597,7 @@ class DomainZonesTest extends TestCase
|
||||
}
|
||||
}
|
||||
$this->assertTrue($found);
|
||||
$this->assertEquals('@ 18000 IN CAA '.$content, $entry);
|
||||
$this->assertEquals('@ 18000 IN CAA ' . $content, $entry);
|
||||
}
|
||||
|
||||
public function testAdminDomainZonesAddCAAIodefHttpInvalid()
|
||||
@@ -608,7 +609,7 @@ class DomainZonesTest extends TestCase
|
||||
'domainname' => 'test2.local',
|
||||
'record' => '@',
|
||||
'type' => 'CAA',
|
||||
'content' => $content,
|
||||
'content' => $content
|
||||
];
|
||||
$this->expectExceptionMessage("DNS content invalid");
|
||||
DomainZones::getLocal($admin_userdata, $data)->add();
|
||||
@@ -623,7 +624,7 @@ class DomainZonesTest extends TestCase
|
||||
'domainname' => 'test2.local',
|
||||
'record' => '@',
|
||||
'type' => 'CAA',
|
||||
'content' => $content,
|
||||
'content' => $content
|
||||
];
|
||||
$json_result = DomainZones::getLocal($admin_userdata, $data)->add();
|
||||
$result = json_decode($json_result, true)['data'];
|
||||
@@ -636,7 +637,7 @@ class DomainZonesTest extends TestCase
|
||||
}
|
||||
}
|
||||
$this->assertTrue($found);
|
||||
$this->assertEquals('@ 18000 IN CAA '.$content, $entry);
|
||||
$this->assertEquals('@ 18000 IN CAA ' . $content, $entry);
|
||||
}
|
||||
|
||||
public function testAdminDomainZonesAddCAAIodefHttpsInvalid()
|
||||
@@ -648,7 +649,7 @@ class DomainZonesTest extends TestCase
|
||||
'domainname' => 'test2.local',
|
||||
'record' => '@',
|
||||
'type' => 'CAA',
|
||||
'content' => $content,
|
||||
'content' => $content
|
||||
];
|
||||
$this->expectExceptionMessage("DNS content invalid");
|
||||
DomainZones::getLocal($admin_userdata, $data)->add();
|
||||
@@ -745,6 +746,38 @@ class DomainZonesTest extends TestCase
|
||||
DomainZones::getLocal($admin_userdata, $data)->add();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @depends testAdminDomainZonesAddCname
|
||||
*/
|
||||
public function testAdminDomainZonesAddForExistingCname()
|
||||
{
|
||||
global $admin_userdata;
|
||||
|
||||
// set domain to www-alias
|
||||
$data = [
|
||||
'domainname' => 'test2.local',
|
||||
'selectserveralias' => '1'
|
||||
];
|
||||
Domains::getLocal($admin_userdata, $data)->update();
|
||||
|
||||
foreach ([
|
||||
'A' => '127.0.0.1',
|
||||
'AAAA' => '::1',
|
||||
'MX' => 'mail.example.com.',
|
||||
'NS' => 'ns.example.com.'
|
||||
] as $type => $val) {
|
||||
$data = [
|
||||
'domainname' => 'test2.local',
|
||||
'record' => 'db',
|
||||
'type' => $type,
|
||||
'content' => $val
|
||||
];
|
||||
$this->expectExceptionMessage('There already exists a CNAME record with the same record-name. It can not be used for another type.');
|
||||
DomainZones::getLocal($admin_userdata, $data)->add();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @depends testAdminDomainZonesAddCname
|
||||
|
||||
Reference in New Issue
Block a user