From facbcdcf4524a19332120dc73bcbd183cbcccd24 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Mon, 9 Jul 2012 17:53:53 +0200 Subject: [PATCH] [Validator] fixed error message for dates like 2012-02-31 (closes #4223) --- src/Symfony/Component/Validator/Constraints/DateValidator.php | 4 ++-- .../Component/Validator/Constraints/DateValidatorTest.php | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Validator/Constraints/DateValidator.php b/src/Symfony/Component/Validator/Constraints/DateValidator.php index 89893bbcda..0a30d14b61 100644 --- a/src/Symfony/Component/Validator/Constraints/DateValidator.php +++ b/src/Symfony/Component/Validator/Constraints/DateValidator.php @@ -48,12 +48,12 @@ class DateValidator extends ConstraintValidator $value = (string) $value; - if (!preg_match(static::PATTERN, $value, $matches)) { + if (!preg_match(static::PATTERN, $value, $matches) || !checkdate($matches[2], $matches[3], $matches[1])) { $this->setMessage($constraint->message, array('{{ value }}' => $value)); return false; } - return checkdate($matches[2], $matches[3], $matches[1]); + return true; } } diff --git a/tests/Symfony/Tests/Component/Validator/Constraints/DateValidatorTest.php b/tests/Symfony/Tests/Component/Validator/Constraints/DateValidatorTest.php index 0e64a6f459..5b691a4910 100644 --- a/tests/Symfony/Tests/Component/Validator/Constraints/DateValidatorTest.php +++ b/tests/Symfony/Tests/Component/Validator/Constraints/DateValidatorTest.php @@ -73,6 +73,7 @@ class DateValidatorTest extends \PHPUnit_Framework_TestCase public function testInvalidDates($date) { $this->assertFalse($this->validator->isValid($date, new Date())); + $this->assertEquals('This value is not a valid date', $this->validator->getMessageTemplate()); } public function getInvalidDates()