From 30cdeaa689eae4f6ab10196a3148a2137e7361c5 Mon Sep 17 00:00:00 2001 From: Thomas Andres Date: Sun, 12 Mar 2017 18:03:09 +0100 Subject: Changed TaskValidator to accept all date/time formats for date_started The TaskValidator did only accept the date/time format defined in the application configuration. --- app/Validator/TaskValidator.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Validator/TaskValidator.php b/app/Validator/TaskValidator.php index f9441c8b..68234411 100644 --- a/app/Validator/TaskValidator.php +++ b/app/Validator/TaskValidator.php @@ -43,7 +43,7 @@ class TaskValidator extends BaseValidator new Validators\MaxLength('title', t('The maximum length is %d characters', 200), 200), new Validators\MaxLength('reference', t('The maximum length is %d characters', 50), 50), new Validators\Date('date_due', t('Invalid date'), $this->dateParser->getParserFormats()), - new Validators\Date('date_started', t('Invalid date'), array($this->dateParser->getUserDateTimeFormat())), + new Validators\Date('date_started', t('Invalid date'), $this->dateParser->getDateTimeFormats(true)), new Validators\Numeric('time_spent', t('This value must be numeric')), new Validators\Numeric('time_estimated', t('This value must be numeric')), ); -- cgit v1.2.3 From ad0cee20c199f5432affca90a320583677bb1e04 Mon Sep 17 00:00:00 2001 From: Thomas Andres Date: Thu, 16 Mar 2017 22:43:59 +0100 Subject: changed date_started to the same behaviour as date_due --- app/Validator/TaskValidator.php | 2 +- doc/en_US/api-task-procedures.markdown | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Validator/TaskValidator.php b/app/Validator/TaskValidator.php index 68234411..f82e7374 100644 --- a/app/Validator/TaskValidator.php +++ b/app/Validator/TaskValidator.php @@ -43,7 +43,7 @@ class TaskValidator extends BaseValidator new Validators\MaxLength('title', t('The maximum length is %d characters', 200), 200), new Validators\MaxLength('reference', t('The maximum length is %d characters', 50), 50), new Validators\Date('date_due', t('Invalid date'), $this->dateParser->getParserFormats()), - new Validators\Date('date_started', t('Invalid date'), $this->dateParser->getDateTimeFormats(true)), + new Validators\Date('date_started', t('Invalid date'), $this->dateParser->getParserFormats()), new Validators\Numeric('time_spent', t('This value must be numeric')), new Validators\Numeric('time_estimated', t('This value must be numeric')), ); diff --git a/doc/en_US/api-task-procedures.markdown b/doc/en_US/api-task-procedures.markdown index af24c523..a5691c12 100644 --- a/doc/en_US/api-task-procedures.markdown +++ b/doc/en_US/api-task-procedures.markdown @@ -23,7 +23,7 @@ API Task Procedures - **recurrence_timeframe** (integer, optional) - **recurrence_basedate** (integer, optional) - **tags** ([]string, optional) - - **date_started**: d/m/Y H:i format (string, optional) + - **date_started**: ISO8601 format (string, optional) - Result on success: **task_id** - Result on failure: **false** -- cgit v1.2.3 From 0c378e2b5186175dd664145dcb9f83498c78b929 Mon Sep 17 00:00:00 2001 From: Thomas Andres Date: Thu, 16 Mar 2017 22:45:08 +0100 Subject: added dates to unit tests --- tests/units/Validator/TaskValidatorTest.php | 52 +++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/tests/units/Validator/TaskValidatorTest.php b/tests/units/Validator/TaskValidatorTest.php index 0c7fead7..5c1b9a52 100644 --- a/tests/units/Validator/TaskValidatorTest.php +++ b/tests/units/Validator/TaskValidatorTest.php @@ -67,4 +67,56 @@ class TaskValidatorTest extends Base $result = $taskValidator->validateCreation(array('project_id' => 1, 'title' => 'test', 'swimlane_id' => 0)); $this->assertFalse($result[0]); } + + public function testDateField() + { + $taskValidator = new TaskValidator($this->container); + + // date_due + // ISO dates + $result = $taskValidator->validateCreation(array('project_id' => 1, 'title' => 'test', 'date_due' => '2017-02-01')); + $this->assertTrue($result[0]); + $result = $taskValidator->validateCreation(array('project_id' => 1, 'title' => 'test', 'date_due' => '2017-02-01 13:15')); + $this->assertTrue($result[0]); + $result = $taskValidator->validateCreation(array('project_id' => 1, 'title' => 'test', 'date_due' => '2017-02-01 1:15 pm')); + $this->assertFalse($result[0]); + $result = $taskValidator->validateCreation(array('project_id' => 1, 'title' => 'test', 'date_due' => '2017_02_01')); + $this->assertTrue($result[0]); + $result = $taskValidator->validateCreation(array('project_id' => 1, 'title' => 'test', 'date_due' => '2017_02_01 13:15')); + $this->assertTrue($result[0]); + $result = $taskValidator->validateCreation(array('project_id' => 1, 'title' => 'test', 'date_due' => '2017_02_01 1:15 am')); + $this->assertFalse($result[0]); + + // d/m/Y dates + $result = $taskValidator->validateCreation(array('project_id' => 1, 'title' => 'test', 'date_due' => '02/01/2017')); + $this->assertTrue($result[0]); + $result = $taskValidator->validateCreation(array('project_id' => 1, 'title' => 'test', 'date_due' => '02/01/2017 13:15')); + $this->assertTrue($result[0]); + $result = $taskValidator->validateCreation(array('project_id' => 1, 'title' => 'test', 'date_due' => '02/01/2017 1:15 pm')); + $this->assertFalse($result[0]); + + + // date_started + // ISO dates + $result = $taskValidator->validateCreation(array('project_id' => 1, 'title' => 'test', 'date_started' => '2017-02-01')); + $this->assertTrue($result[0]); + $result = $taskValidator->validateCreation(array('project_id' => 1, 'title' => 'test', 'date_started' => '2017-02-01 13:15')); + $this->assertTrue($result[0]); + $result = $taskValidator->validateCreation(array('project_id' => 1, 'title' => 'test', 'date_started' => '2017-02-01 1:15 pm')); + $this->assertFalse($result[0]); + $result = $taskValidator->validateCreation(array('project_id' => 1, 'title' => 'test', 'date_started' => '2017_02_01')); + $this->assertTrue($result[0]); + $result = $taskValidator->validateCreation(array('project_id' => 1, 'title' => 'test', 'date_started' => '2017_02_01 13:15')); + $this->assertTrue($result[0]); + $result = $taskValidator->validateCreation(array('project_id' => 1, 'title' => 'test', 'date_started' => '2017_02_01 1:15 pm')); + $this->assertFalse($result[0]); + + // d/m/Y dates + $result = $taskValidator->validateCreation(array('project_id' => 1, 'title' => 'test', 'date_started' => '02/01/2017')); + $this->assertTrue($result[0]); + $result = $taskValidator->validateCreation(array('project_id' => 1, 'title' => 'test', 'date_started' => '02/01/2017 13:15')); + $this->assertTrue($result[0]); + $result = $taskValidator->validateCreation(array('project_id' => 1, 'title' => 'test', 'date_started' => '02/01/2017 1:15 pm')); + $this->assertFalse($result[0]); + } } -- cgit v1.2.3