From e08166905cbeb1be8441299709e38560aceae5a8 Mon Sep 17 00:00:00 2001 From: Tom Witkowski Date: Wed, 12 Aug 2020 09:54:51 +0200 Subject: [PATCH 1/2] TDD: add unittest --- tests/Validation/ValidationValidatorTest.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/Validation/ValidationValidatorTest.php b/tests/Validation/ValidationValidatorTest.php index 196295923eae..44b152c41c0b 100755 --- a/tests/Validation/ValidationValidatorTest.php +++ b/tests/Validation/ValidationValidatorTest.php @@ -4,6 +4,7 @@ use DateTime; use DateTimeImmutable; +use Egulias\EmailValidator\Validation\NoRFCWarningsValidation; use Illuminate\Container\Container; use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Contracts\Auth\Guard; @@ -2422,6 +2423,17 @@ public function testValidateEmailWithFilterUnicodeCheck() $this->assertFalse($v->passes()); } + public function testValidateEmailWithCustomClassCheck() + { + $container = m::mock(Container::class); + $container->shouldReceive('make')->with(NoRFCWarningsValidation::class)->andReturn(new NoRFCWarningsValidation()); + + $v = new Validator($this->getIlluminateArrayTranslator(), ['x' => 'foo@bar '], ['x' => 'email:'.NoRFCWarningsValidation::class]); + $v->setContainer($container); + + $this->assertFalse($v->passes()); + } + /** * @dataProvider validUrls */ From b9415ea7010f2ba3bf5a7d4fafc39b38f9a93057 Mon Sep 17 00:00:00 2001 From: Tom Witkowski Date: Wed, 12 Aug 2020 09:55:42 +0200 Subject: [PATCH 2/2] add elseif case for FQCN email validation --- src/Illuminate/Validation/Concerns/ValidatesAttributes.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Illuminate/Validation/Concerns/ValidatesAttributes.php b/src/Illuminate/Validation/Concerns/ValidatesAttributes.php index 9e97da97181f..9803208ae902 100644 --- a/src/Illuminate/Validation/Concerns/ValidatesAttributes.php +++ b/src/Illuminate/Validation/Concerns/ValidatesAttributes.php @@ -656,6 +656,8 @@ public function validateEmail($attribute, $value, $parameters) return new FilterEmailValidation(); } elseif ($validation === 'filter_unicode') { return FilterEmailValidation::unicode(); + } elseif (is_string($validation) && class_exists($validation)) { + return $this->container->make($validation); } }) ->values()