WildcardDomainFieldTest   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 76
Duplicated Lines 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
eloc 32
c 3
b 0
f 0
dl 0
loc 76
rs 10
wmc 6

6 Methods

Rating   Name   Duplication   Size   Complexity  
A validWildcards() 0 7 1
A invalidDomains() 0 14 1
A testInvalidDomains() 0 4 1
A testValidWildcards() 0 4 1
A validDomains() 0 10 1
A testValidDomains() 0 4 1
1
<?php
2
3
namespace SilverStripe\Subsites\Tests;
4
5
use SilverStripe\Dev\SapphireTest;
6
use SilverStripe\Subsites\Forms\WildcardDomainField;
7
8
/**
9
 * Tests {@see WildcardDomainField}
10
 */
11
class WildcardDomainFieldTest extends SapphireTest
12
{
13
14
    /**
15
     * Check that valid domains are accepted
16
     *
17
     * @dataProvider validDomains
18
     * @param $domain
19
     */
20
    public function testValidDomains($domain)
21
    {
22
        $field = new WildcardDomainField('DomainField');
23
        $this->assertTrue($field->checkHostname($domain), "Validate that {$domain} is a valid domain name");
24
    }
25
26
    /**
27
     * Check that valid domains are accepted
28
     *
29
     * @dataProvider invalidDomains
30
     * @param $domain
31
     */
32
    public function testInvalidDomains($domain)
33
    {
34
        $field = new WildcardDomainField('DomainField');
35
        $this->assertFalse($field->checkHostname($domain), "Validate that {$domain} is an invalid domain name");
36
    }
37
38
    /**
39
     * Check that valid domains are accepted
40
     *
41
     * @dataProvider validWildcards
42
     * @param $domain
43
     */
44
    public function testValidWildcards($domain)
45
    {
46
        $field = new WildcardDomainField('DomainField');
47
        $this->assertTrue($field->checkHostname($domain), "Validate that {$domain} is a valid domain wildcard");
48
    }
49
50
    public function validDomains()
51
    {
52
        return [
53
            ['www.mysite.com'],
54
            ['domain7'],
55
            ['mysite.co.n-z'],
56
            ['subdomain.my-site.com'],
57
            ['subdomain.mysite'],
58
            ['subdomain.mysite.com:80'],
59
            ['mysite:80']
60
        ];
61
    }
62
63
    public function invalidDomains()
64
    {
65
        return [
66
            ['-mysite'],
67
            ['.mysite'],
68
            ['mys..ite'],
69
            ['mysite-'],
70
            ['mysite.'],
71
            ['-mysite.*'],
72
            ['.mysite.*'],
73
            ['mys..ite.*'],
74
            ['*.mysite-'],
75
            ['*.mysite.'],
76
            [':1234']
77
        ];
78
    }
79
80
    public function validWildcards()
81
    {
82
        return [
83
            ['*.mysite.com'],
84
            ['mys*ite.com'],
85
            ['*.my-site.*'],
86
            ['*']
87
        ];
88
    }
89
}
90