From ce5c6b7642e16e2be5db08b8b7e406edce06aa15 Mon Sep 17 00:00:00 2001 From: basico Date: Mon, 11 Feb 2013 17:17:39 +0000 Subject: [PATCH 1/2] fix: following doc conventions on dates format My: remove / separator format my: using the previous year's regex --- util/Validator.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/util/Validator.php b/util/Validator.php index ff78b82c60..e45fef5e17 100644 --- a/util/Validator.php +++ b/util/Validator.php @@ -234,10 +234,9 @@ public static function __init() { '((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468]' . '[048]|[3579][26])00)))))))\\,?\\ ((1[6-9]|[2-9]\\d)\\d{2}))$/', 'My' => '%^(Jan(uary)?|Feb(ruary)?|Ma(r(ch)?|y)|Apr(il)?|Ju((ly?)|(ne?))|' . - 'Aug(ust)?|Oct(ober)?|(Sep(?=\\b|t)t?|Nov|Dec)(ember)?)[ /]((1[6-9]' . + 'Aug(ust)?|Oct(ober)?|(Sep(?=\\b|t)t?|Nov|Dec)(ember)?)\\ ((1[6-9]' . '|[2-9]\\d)\\d{2})$%', - 'my' => '%^(((0[123456789]|10|11|12)([- /.])(([1][9][0-9][0-9])|([2][0-9]' . - '[0-9][0-9]))))$%' + 'my' => '%^(0?[1-9]|1[012])([- /.])((1[6-9])|([2-9]\\d)\\d{2})$%' ), 'ip' => function($value, $format = null, array $options = array()) { $options += array('flags' => array()); @@ -674,4 +673,4 @@ protected static function _checkFormats($rules) { } } -?> \ No newline at end of file +?> From a989ced87fd7a93d45b1cf5c044f3a12cc38143e Mon Sep 17 00:00:00 2001 From: josefer Date: Mon, 11 Feb 2013 22:15:53 +0000 Subject: [PATCH 2/2] Added date validate tests --- tests/cases/util/ValidatorTest.php | 30 ++++++++++++++++++++++++++++++ util/Validator.php | 2 +- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/tests/cases/util/ValidatorTest.php b/tests/cases/util/ValidatorTest.php index 47195a692a..f63d9f7f80 100644 --- a/tests/cases/util/ValidatorTest.php +++ b/tests/cases/util/ValidatorTest.php @@ -967,6 +967,36 @@ public function testCreditCardValidation() { $this->assertFalse(Validator::isLuhn(true)); } + public function testDateValidation() { + $this->assertTrue(Validator::isDate('31-12-2012', 'dmy')); + $this->assertTrue(Validator::isDate('1 1 1999', 'dmy')); + $this->assertTrue(Validator::isDate('12/31/2012', 'mdy')); + $this->assertTrue(Validator::isDate('02.29.2000', 'mdy')); + $this->assertTrue(Validator::isDate('2012/12/31', 'ymd')); + $this->assertTrue(Validator::isDate('1999-1-01', 'ymd')); + $this->assertTrue(Validator::isDate('31 Dec 2012', 'dMy')); + $this->assertTrue(Validator::isDate('1 January 1999', 'dMy')); + $this->assertTrue(Validator::isDate('Dec 31 2012', 'Mdy')); + $this->assertTrue(Validator::isDate('January 1, 1999', 'Mdy')); + $this->assertTrue(Validator::isDate('December 2012', 'My')); + $this->assertTrue(Validator::isDate('Jan 1999', 'My')); + $this->assertTrue(Validator::isDate('12/2012', 'my')); + $this->assertTrue(Validator::isDate('1 2012', 'my')); + + $this->assertFalse(Validator::isDate('32-12-2012', 'dmy')); + $this->assertFalse(Validator::isDate('29 2 1999', 'dmy')); + $this->assertFalse(Validator::isDate('13/31/2012', 'mdy')); + $this->assertFalse(Validator::isDate('1.0.1999', 'mdy')); + $this->assertFalse(Validator::isDate('2012/11/31', 'ymd')); + $this->assertFalse(Validator::isDate('2012/11/0', 'ymd')); + $this->assertFalse(Validator::isDate('31 Dic 2012', 'dMy')); + $this->assertFalse(Validator::isDate('1.January.1999', 'dMy')); + $this->assertFalse(Validator::isDate('Dec-31-2012', 'Mdy')); + $this->assertFalse(Validator::isDate('December/2012', 'My')); + $this->assertFalse(Validator::isDate('Jan.1999', 'My')); + $this->assertFalse(Validator::isDate('13 2012', 'my')); + } + public function testCheckHasErrors() { $rules = array('title' => array('please enter a title')); $result = Validator::check(array(), $rules); diff --git a/util/Validator.php b/util/Validator.php index e45fef5e17..6eb8ab47e3 100644 --- a/util/Validator.php +++ b/util/Validator.php @@ -673,4 +673,4 @@ protected static function _checkFormats($rules) { } } -?> +?> \ No newline at end of file