Completed
Pull Request — master (#104)
by Eduardo Gulias
02:04
created

IsEmailFunctionTests::isEmailTestSuite()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 15
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 15
rs 9.4285
cc 2
eloc 10
nc 2
nop 0
1
<?php
2
3
namespace Egulias\Tests\EmailValidator\Validation;
4
5
use Egulias\EmailValidator\EmailValidator;
6
use Egulias\EmailValidator\Validation\DNSCheckValidation;
7
use Egulias\EmailValidator\Validation\MultipleValidationWithAnd;
8
use Egulias\EmailValidator\Validation\NoRFCWarningsValidation;
9
use Egulias\EmailValidator\Validation\RFCValidation;
10
11
class IsEmailFunctionTests extends \PHPUnit_Framework_TestCase
12
{
13
    /**
14
     * @dataProvider isEmailTestSuite
15
     */
16
    public function testAgainstIsEmailTestSuite($email)
17
    {
18
        $validator = new EmailValidator();
19
        $validations = new MultipleValidationWithAnd([
20
            new NoRFCWarningsValidation(),
21
            new DNSCheckValidation()
22
        ]);
23
24
        $this->assertFalse($validator->isValid($email, $validations), "Tested email " . $email);
25
26
    }
27
28
    public function isEmailTestSuite()
29
    {
30
        $testSuite = dirname(__FILE__) . '/../../resources/is_email_tests.xml';
31
		$document = new \DOMDocument();
32
		$document->load($testSuite);
33
        $elements = $document->getElementsByTagName('test');
34
        $tests = [];
35
36
        foreach($elements as $testElement) {
37
            $childNode = $testElement->childNodes;
38
            $tests[][] = ($childNode->item(1)->getAttribute('value'));
39
        }
40
41
        return $tests;
42
    }
43
44
}
45