silverstripe-subsites/tests/php/WildcardDomainFieldTest.php

90 lines
2.1 KiB
PHP
Raw Normal View History

2017-05-29 13:42:42 +02:00
<?php
namespace SilverStripe\Subsites\Tests;
2017-05-29 13:42:42 +02:00
use SilverStripe\Dev\SapphireTest;
use SilverStripe\Subsites\Forms\WildcardDomainField;
2017-05-29 13:42:42 +02:00
/**
* Tests {@see WildcardDomainField}
*/
2017-06-01 15:57:53 +02:00
class WildcardDomainFieldTest extends SapphireTest
{
2017-05-29 13:42:42 +02:00
/**
* Check that valid domains are accepted
*
* @dataProvider validDomains
2017-06-01 15:10:07 +02:00
* @param $domain
2017-05-29 13:42:42 +02:00
*/
2017-06-01 15:57:53 +02:00
public function testValidDomains($domain)
{
2017-05-29 13:42:42 +02:00
$field = new WildcardDomainField('DomainField');
$this->assertTrue($field->checkHostname($domain), "Validate that {$domain} is a valid domain name");
}
/**
* Check that valid domains are accepted
*
* @dataProvider invalidDomains
2017-06-01 15:10:07 +02:00
* @param $domain
2017-05-29 13:42:42 +02:00
*/
2017-06-01 15:57:53 +02:00
public function testInvalidDomains($domain)
{
2017-05-29 13:42:42 +02:00
$field = new WildcardDomainField('DomainField');
$this->assertFalse($field->checkHostname($domain), "Validate that {$domain} is an invalid domain name");
}
/**
* Check that valid domains are accepted
*
* @dataProvider validWildcards
2017-06-01 15:10:07 +02:00
* @param $domain
2017-05-29 13:42:42 +02:00
*/
2017-06-01 15:57:53 +02:00
public function testValidWildcards($domain)
{
2017-05-29 13:42:42 +02:00
$field = new WildcardDomainField('DomainField');
$this->assertTrue($field->checkHostname($domain), "Validate that {$domain} is a valid domain wildcard");
}
2017-06-01 15:57:53 +02:00
public function validDomains()
{
return [
['www.mysite.com'],
['domain7'],
['mysite.co.n-z'],
['subdomain.my-site.com'],
['subdomain.mysite'],
['subdomain.mysite.com:80'],
['mysite:80']
2017-06-01 15:57:53 +02:00
];
2017-05-29 13:42:42 +02:00
}
2017-06-01 15:57:53 +02:00
public function invalidDomains()
{
return [
['-mysite'],
['.mysite'],
['mys..ite'],
['mysite-'],
['mysite.'],
['-mysite.*'],
['.mysite.*'],
['mys..ite.*'],
['*.mysite-'],
['*.mysite.'],
[':1234']
2017-06-01 15:57:53 +02:00
];
2017-05-29 13:42:42 +02:00
}
2017-06-01 15:57:53 +02:00
public function validWildcards()
{
return [
['*.mysite.com'],
['mys*ite.com'],
['*.my-site.*'],
['*']
];
2017-05-29 13:42:42 +02:00
}
}