File: EmailParserTest.php

package info (click to toggle)
php-email-validator 4.0.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 760 kB
  • sloc: php: 3,534; makefile: 19; xml: 18
file content (45 lines) | stat: -rw-r--r-- 1,529 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php

namespace Egulias\EmailValidator\Tests\EmailValidator;

use Egulias\EmailValidator\EmailLexer;
use Egulias\EmailValidator\EmailParser;
use PHPUnit\Framework\TestCase;

class EmailParserTest extends TestCase
{
    public static function emailPartsProvider()
    {
        return [
            ['test@foo.com', 'test', 'foo.com'],
            ['"user@name"@example.com', '"user@name"', 'example.com'],
            ['validipv6@[IPv6:2001:db8:1ff::a0b:dbd0]', 'validipv6', '[IPv6:2001:db8:1ff::a0b:dbd0]'],
            ['validipv4@[127.0.0.0]', 'validipv4', '[127.0.0.0]']
        ];
    }
    /**
     * @dataProvider emailPartsProvider
     */
    public function testGetParts($email, $local, $domain)
    {
        $parser = new EmailParser(new EmailLexer());
        $parser->parse($email);

        $this->assertEquals($local, $parser->getLocalPart());
        $this->assertEquals($domain, $parser->getDomainPart());
    }

    public function testMultipleEmailAddresses()
    {
        $parser = new EmailParser(new EmailLexer());
        $parser->parse('some-local-part@some-random-but-large-domain-part.example.com');

        $this->assertSame('some-local-part', $parser->getLocalPart());
        $this->assertSame('some-random-but-large-domain-part.example.com', $parser->getDomainPart());

        $parser->parse('another-local-part@another.example.com');

        $this->assertSame('another-local-part', $parser->getLocalPart());
        $this->assertSame('another.example.com', $parser->getDomainPart());
    }
}