Test for hypen

This commit is contained in:
Eduardo Gulias Davis
2020-05-24 15:17:36 +02:00
parent 5b045d96ca
commit 138fa69163
3 changed files with 20 additions and 1 deletions
+2 -1
View File
@@ -17,6 +17,7 @@ use Egulias\EmailValidator\Exception\ExpectingDTEXT;
use Egulias\EmailValidator\Exception\NoDomainPart;
use Egulias\EmailValidator\Exception\UnopenedComment;
use Egulias\EmailValidator\Result\InvalidEmail;
use Egulias\EmailValidator\Result\Reason\DomainHyphened as ReasonDomainHyphened;
use Egulias\EmailValidator\Result\Reason\DotAtStart as ReasonDotAtStart;
use Egulias\EmailValidator\Result\Result;
use Egulias\EmailValidator\Result\ValidEmail;
@@ -108,7 +109,7 @@ class DomainPart extends Parser
return new InvalidEmail(new ReasonDotAtStart(), $this->lexer->token['value']);
}
if ($this->lexer->token['type'] === EmailLexer::S_HYPHEN) {
throw new DomainHyphened();
return new InvalidEmail(new ReasonDomainHyphened('After AT'), $this->lexer->token['value']);
}
return new ValidEmail();
}
@@ -0,0 +1,16 @@
<?php
namespace Egulias\EmailValidator\Result\Reason;
class DomainHyphened extends DetailedReason
{
public function code() : int
{
return 144;
}
public function description() : string
{
return 'S_HYPHEN found in domain';
}
}
@@ -46,6 +46,7 @@ use Egulias\EmailValidator\Result\Reason\ExpectingATEXT as ReasonExpectingATEXT;
use Egulias\EmailValidator\Result\Reason\UnclosedComment as ReasonUnclosedComment;
use Egulias\EmailValidator\Result\Reason\UnclosedQuotedString;
use Egulias\EmailValidator\Result\Reason\CRNoLF as ReasonCRNoLF;
use Egulias\EmailValidator\Result\Reason\DomainHyphened as ReasonDomainHyphened;
class RFCValidationTest extends TestCase
{
@@ -202,6 +203,7 @@ class RFCValidationTest extends TestCase
[new InvalidEmail(new ReasonExpectingATEXT('Invalid token found'), '<'), '<example_example>@example.fr'],
[new InvalidEmail(new ReasonDotAtStart(), '.'), '.example@localhost'],
[new InvalidEmail(new ReasonDotAtStart(), '.'), 'example@.localhost'],
[new InvalidEmail(new ReasonDomainHyphened('After AT'), '-'), 'example@-localhost'],
[new DotAtEnd(), 'example@localhost.'],
[new InvalidEmail(new ReasonDotAtEnd(), '.'), 'example.@example.co.uk'],
[new InvalidEmail(new ReasonUnclosedComment(), '('), '(example@localhost'],