Skip to content

Commit

Permalink
Merge 8e5ac95 into c3bd5b7
Browse files Browse the repository at this point in the history
  • Loading branch information
DepkaCZ committed Jul 12, 2018
2 parents c3bd5b7 + 8e5ac95 commit 84b3e11
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 10 deletions.
15 changes: 11 additions & 4 deletions src/DI/ValidatorExtension.php
Expand Up @@ -16,7 +16,7 @@
use Nette;
use Nette\DI\Compiler;
use Nette\Utils\Validators;

use Symfony\Component\Validator\Constraints\Email;


/**
Expand All @@ -37,7 +37,8 @@ class ValidatorExtension extends Nette\DI\CompilerExtension implements ITranslat
'cache' => 'default',
'translationDomain' => NULL,
'debug' => '%debugMode%',
'strictEmail' => FALSE,
'strictEmail' => NULL,
'emailValidationMode' => \Symfony\Component\Validator\Constraints\Email::VALIDATION_MODE_LOOSE
];


Expand Down Expand Up @@ -80,12 +81,18 @@ public function loadConfiguration()
->setClass('Symfony\Component\Validator\Validator\ValidatorInterface')
->setFactory('Symfony\Component\Validator\Validator\RecursiveValidator');

Validators::assertField($config, 'strictEmail', 'boolean');
if ($config['strictEmail'] !== NULL) {
Validators::assertField($config, 'strictEmail', 'boolean');
trigger_error('`strictEmail` configuration option is deprecated, use `emailValidationMode` instead.', E_USER_DEPRECATED);
$config['emailValidationMode'] = Email::VALIDATION_MODE_LOOSE;
}

Validators::assertField($config, 'emailValidationMode', 'string');

$builder->addDefinition($this->prefix('constraint.email'))
->setClass('Symfony\Component\Validator\Constraints\EmailValidator')
->setArguments([
'strict' => $config['strictEmail'],
'defaultMode' => $config['emailValidationMode'],
])
->addTag(self::TAG_CONSTRAINT_VALIDATOR);

Expand Down
9 changes: 5 additions & 4 deletions tests/KdybyTests/Validator/Extension.phpt
Expand Up @@ -118,9 +118,9 @@ class ExtensionTest extends Tester\TestCase
public function strictEmailDataProvider()
{
return [
[[], FALSE],
[[__DIR__ . '/config/strict-email.neon'], TRUE],
[[__DIR__ . '/config/non-strict-email.neon'], FALSE],
[[], 'loose'],
[[__DIR__ . '/config/strict-email.neon'], 'strict'],
[[__DIR__ . '/config/non-strict-email.neon'], 'loose'],
];
}

Expand All @@ -138,7 +138,8 @@ class ExtensionTest extends Tester\TestCase
$validator = $factory->getInstance(new \Symfony\Component\Validator\Constraints\Email());
Tester\Assert::type('Symfony\Component\Validator\Constraints\EmailValidator', $validator);

$property = new \ReflectionProperty('Symfony\Component\Validator\Constraints\EmailValidator', 'isStrict');
$property = new \ReflectionProperty('Symfony\Component\Validator\Constraints\EmailValidator', 'defaultMode');

$property->setAccessible(TRUE);
Tester\Assert::same($strict, $property->getValue($validator));
}
Expand Down
2 changes: 1 addition & 1 deletion tests/KdybyTests/Validator/config/non-strict-email.neon
@@ -1,2 +1,2 @@
validator:
strictEmail: false
emailValidationMode: 'loose'
2 changes: 1 addition & 1 deletion tests/KdybyTests/Validator/config/strict-email.neon
@@ -1,2 +1,2 @@
validator:
strictEmail: true
emailValidationMode: 'strict'

0 comments on commit 84b3e11

Please sign in to comment.