COMMA is not allowed in domain part

This commit is contained in:
Eduardo Gulias Davis
2014-08-22 01:05:58 +02:00
parent bb530a1930
commit 82f8514d89
3 changed files with 12 additions and 5 deletions
+4 -4
View File
@@ -116,13 +116,13 @@ class EmailLexer extends AbstractLexer
protected function getCatchablePatterns()
{
return array(
'[a-zA-Z_]+[4,6]?',
'[a-zA-Z_]+[46]?',
'[0-9]+',
'\r\n',
'::',
'\s+',
'[\x1-\x1F]+',
'.'
'[\x10-\x1F]+',
'.',
);
}
@@ -149,7 +149,7 @@ class EmailLexer extends AbstractLexer
return $this->charValue[$value];
}
if (preg_match('/[\x1-\x1F]+/', $value)) {
if (preg_match('/[\x10-\x1F]+/', $value)) {
return self::INVALID;
}
@@ -235,12 +235,18 @@ class DomainPart extends Parser
protected function checkDomainPartExceptions($prev)
{
if ($this->lexer->token['type'] === EmailLexer::S_COMMA) {
throw new \InvalidArgumentException('ERR_COMMA_IN_DOMAIN');
}
if ($this->lexer->token['type'] === EmailLexer::S_AT) {
throw new \InvalidArgumentException('ERR_CONSECUTIVEATS');
}
if ($this->lexer->token['type'] === EmailLexer::S_OPENQBRACKET && $prev['type'] !== EmailLexer::S_AT) {
throw new \InvalidArgumentException('ERR_EXPECTING_ATEXT');
}
if ($this->lexer->token['type'] === EmailLexer::S_HYPHEN && $this->lexer->isNextToken(EmailLexer::S_DOT)) {
throw new \InvalidArgumentException('ERR_DOMAINHYPHENEND');
}
@@ -45,7 +45,7 @@ class EmailValidatorTest extends \PHPUnit_Framework_TestCase
/**
* @dataProvider getInvalidEmails
*/
public function testAInvalidEmails($email)
public function testInvalidEmails($email)
{
$this->assertFalse($this->validator->isValid($email));
}
@@ -65,6 +65,7 @@ class EmailValidatorTest extends \PHPUnit_Framework_TestCase
array('username@ example . com'),
array('example@(fake).com'),
array('example@(fake.com'),
array('username@example,com'),
);
}