mirror of
https://github.com/appwrite/appwrite
synced 2026-04-21 21:47:16 +00:00
77 lines
2.9 KiB
PHP
77 lines
2.9 KiB
PHP
<?php
|
|
|
|
namespace Tests\Unit\Network\Validators;
|
|
|
|
use Appwrite\Network\Validator\DNS;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class DNSTest extends TestCase
|
|
{
|
|
public function setUp(): void
|
|
{
|
|
|
|
}
|
|
|
|
public function tearDown(): void
|
|
{
|
|
}
|
|
|
|
public function testCNAME(): void
|
|
{
|
|
$validator = new DNS('appwrite.io', DNS::RECORD_CNAME);
|
|
$this->assertEquals($validator->isValid(''), false);
|
|
$this->assertEquals($validator->isValid(null), false);
|
|
$this->assertEquals($validator->isValid(false), false);
|
|
$this->assertEquals($validator->isValid('cname-unit-test.appwrite.org'), true);
|
|
$this->assertEquals($validator->isValid('test1.appwrite.org'), false);
|
|
}
|
|
|
|
public function testA(): void
|
|
{
|
|
// IPv4 for documentation purposes
|
|
$validator = new DNS('203.0.113.1', DNS::RECORD_A);
|
|
$this->assertEquals($validator->isValid(''), false);
|
|
$this->assertEquals($validator->isValid(null), false);
|
|
$this->assertEquals($validator->isValid(false), false);
|
|
$this->assertEquals($validator->isValid('a-unit-test.appwrite.org'), true);
|
|
$this->assertEquals($validator->isValid('test1.appwrite.org'), false);
|
|
}
|
|
|
|
public function testAAAA(): void
|
|
{
|
|
// IPv6 for documentation purposes
|
|
$validator = new DNS('2001:db8::1', DNS::RECORD_AAAA);
|
|
$this->assertEquals($validator->isValid(''), false);
|
|
$this->assertEquals($validator->isValid(null), false);
|
|
$this->assertEquals($validator->isValid(false), false);
|
|
$this->assertEquals($validator->isValid('aaaa-unit-test.appwrite.org'), true);
|
|
$this->assertEquals($validator->isValid('test1.appwrite.org'), false);
|
|
}
|
|
|
|
public function testCAA(): void
|
|
{
|
|
$validator = new DNS('digicert.com', DNS::RECORD_CAA);
|
|
$this->assertEquals($validator->isValid('github.com'), true);
|
|
$this->assertEquals($validator->isValid('test1.appwrite.org'), true);
|
|
|
|
$validator = new DNS('0 issue "digicert.com"', DNS::RECORD_CAA);
|
|
$this->assertEquals($validator->isValid('github.com'), true);
|
|
|
|
$validator = new DNS('0 issuewild "digicert.com"', DNS::RECORD_CAA);
|
|
$this->assertEquals($validator->isValid('github.com'), true);
|
|
|
|
$validator = new DNS('128 issue "digicert.com"', DNS::RECORD_CAA);
|
|
$this->assertEquals($validator->isValid('github.com'), false);
|
|
|
|
$validator = new DNS('letsencrypt.org', DNS::RECORD_CAA);
|
|
$this->assertEquals($validator->isValid('github.com'), false);
|
|
|
|
// Valid becasue no CAA record configured
|
|
$validator = new DNS('anything.com', DNS::RECORD_CAA);
|
|
$this->assertEquals($validator->isValid('cloud.appwrite.io'), true);
|
|
|
|
// Valid becasue no CAA record configured
|
|
$validator = new DNS('something.org', DNS::RECORD_CAA);
|
|
$this->assertEquals($validator->isValid('cloud.appwrite.io'), true);
|
|
}
|
|
}
|