Просмотр файла libarea-0.9/vendor/utopia-php/domains/tests/Validator/PublicDomainTest.php

Размер файла: 2.54Kb
<?php

namespace Utopia\Domains\Validator;

use PHPUnit\Framework\TestCase;

class PublicDomainTest extends TestCase
{
    protected ?PublicDomain $domain;

    public function setUp(): void
    {
        $this->domain = new PublicDomain();
    }

    public function tearDown(): void
    {
        $this->domain = null;
    }

    public function testIsValid(): void
    {
        $this->assertEquals('Value must be a public domain', $this->domain->getDescription());
        // Known public domains
        $this->assertEquals(true, $this->domain->isValid('example.com'));
        $this->assertEquals(true, $this->domain->isValid('google.com'));
        $this->assertEquals(true, $this->domain->isValid('bbc.co.uk'));
        $this->assertEquals(true, $this->domain->isValid('appwrite.io'));
        $this->assertEquals(true, $this->domain->isValid('usa.gov'));
        $this->assertEquals(true, $this->domain->isValid('stanford.edu'));

        // URLs
        $this->assertEquals(true, $this->domain->isValid('http://google.com'));
        $this->assertEquals(true, $this->domain->isValid('http://www.google.com'));
        $this->assertEquals(true, $this->domain->isValid('https://example.com'));

        // Private domains
        $this->assertEquals(false, $this->domain->isValid('localhost'));
        $this->assertEquals(false, $this->domain->isValid('http://localhost'));
        $this->assertEquals(false, $this->domain->isValid('sub.demo.localhost'));
        $this->assertEquals(false, $this->domain->isValid('test.app.internal'));
        $this->assertEquals(false, $this->domain->isValid('home.local'));
        $this->assertEquals(false, $this->domain->isValid('qa.testing.internal'));
        $this->assertEquals(false, $this->domain->isValid('wiki.team.local'));
        $this->assertEquals(false, $this->domain->isValid('example.test'));
    }

    public function testAllowDomains(): void
    {
        // Adding localhost to allowed domains
        PublicDomain::allow(['localhost']);

        // Now localhost should be valid
        $this->assertEquals(true, $this->domain->isValid('localhost'));
        $this->assertEquals(true, $this->domain->isValid('http://localhost'));
        $this->assertEquals(false, $this->domain->isValid('test.app.internal'));

        // Adding more domains to allowed domains
        PublicDomain::allow(['test.app.internal', 'home.local']);

        // Now these domains should be valid
        $this->assertEquals(true, $this->domain->isValid('test.app.internal'));
        $this->assertEquals(true, $this->domain->isValid('home.local'));
    }
}