diff --git a/EmailValidator/Parser/DomainPart.php b/EmailValidator/Parser/DomainPart.php index a21fb46..2953f62 100644 --- a/EmailValidator/Parser/DomainPart.php +++ b/EmailValidator/Parser/DomainPart.php @@ -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(); } diff --git a/EmailValidator/Result/Reason/DomainHyphened.php b/EmailValidator/Result/Reason/DomainHyphened.php new file mode 100644 index 0000000..2944eb8 --- /dev/null +++ b/EmailValidator/Result/Reason/DomainHyphened.php @@ -0,0 +1,16 @@ +@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'],