From a2f6487fa330a3bfd6517c7dc950213b3a7734e2 Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Wed, 13 Oct 2010 03:52:36 +0000 Subject: [PATCH] BUGFIX DateField with setConfig('dmyfields') now validates TRUE for empty values (fixes #5458) (from r103450) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@112140 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- forms/DateField.php | 2 +- tests/forms/DateFieldTest.php | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/forms/DateField.php b/forms/DateField.php index 35a968b96..da959bd71 100755 --- a/forms/DateField.php +++ b/forms/DateField.php @@ -351,7 +351,7 @@ JS; // date format if($this->getConfig('dmyfields')) { - $valid = ($this->validateArrayValue($this->value)); + $valid = (!$this->value || $this->validateArrayValue($this->value)); } else { $valid = (Zend_Date::isDate($this->value, $this->getConfig('dateformat'), $this->locale)); } diff --git a/tests/forms/DateFieldTest.php b/tests/forms/DateFieldTest.php index b3c04fa47..20705a5bf 100644 --- a/tests/forms/DateFieldTest.php +++ b/tests/forms/DateFieldTest.php @@ -119,6 +119,12 @@ class DateFieldTest extends SapphireTest { $f->setValue(array('day' => 29, 'month' => 03, 'year' => 2003)); $this->assertTrue($f->validate(new RequiredFields())); + $f->setValue(null); + $this->assertTrue($f->validate(new RequiredFields()), 'NULL values are validating TRUE'); + + $f->setValue(array()); + $this->assertTrue($f->validate(new RequiredFields()), 'Empty array values are validating TRUE'); + // TODO Fix array validation // $f = new DateField('Date', 'Date', array('day' => 9999, 'month' => 9999, 'year' => 9999)); // $this->assertFalse($f->validate(new RequiredFields()));