diff options
-rw-r--r-- | app/Controller/Task.php | 1 | ||||
-rw-r--r-- | app/Model/TaskCreation.php | 6 | ||||
-rw-r--r-- | tests/units/TaskCreationTest.php | 22 | ||||
-rw-r--r-- | tests/units/TaskDuplicationTest.php | 30 |
4 files changed, 57 insertions, 2 deletions
diff --git a/app/Controller/Task.php b/app/Controller/Task.php index 162b0ddd..0d85f411 100644 --- a/app/Controller/Task.php +++ b/app/Controller/Task.php @@ -152,7 +152,6 @@ class Task extends Base { $project = $this->getProject(); $values = $this->request->getValues(); - $values['creator_id'] = $this->userSession->getId(); list($valid, $errors) = $this->taskValidator->validateCreation($values); diff --git a/app/Model/TaskCreation.php b/app/Model/TaskCreation.php index b444a190..e530da13 100644 --- a/app/Model/TaskCreation.php +++ b/app/Model/TaskCreation.php @@ -46,7 +46,7 @@ class TaskCreation extends Base $this->dateParser->convert($values, array('date_due')); $this->dateParser->convert($values, array('date_started'), true); $this->removeFields($values, array('another_task')); - $this->resetFields($values, array('owner_id', 'swimlane_id', 'date_due', 'score', 'category_id', 'time_estimated')); + $this->resetFields($values, array('creator_id', 'owner_id', 'swimlane_id', 'date_due', 'score', 'category_id', 'time_estimated')); if (empty($values['column_id'])) { $values['column_id'] = $this->board->getFirstColumn($values['project_id']); @@ -60,6 +60,10 @@ class TaskCreation extends Base $values['title'] = t('Untitled'); } + if ($this->userSession->isLogged()) { + $values['creator_id'] = $this->userSession->getId(); + } + $values['swimlane_id'] = empty($values['swimlane_id']) ? 0 : $values['swimlane_id']; $values['date_creation'] = time(); $values['date_modification'] = $values['date_creation']; diff --git a/tests/units/TaskCreationTest.php b/tests/units/TaskCreationTest.php index 3dd2b714..03a85b64 100644 --- a/tests/units/TaskCreationTest.php +++ b/tests/units/TaskCreationTest.php @@ -175,6 +175,28 @@ class TaskCreationTest extends Base $this->assertEquals(1, $task['creator_id']); } + public function testThatCreatorIsDefined() + { + $p = new Project($this->container); + $tc = new TaskCreation($this->container); + $tf = new TaskFinder($this->container); + + $_SESSION = array(); + $_SESSION['user']['id'] = 1; + + $this->assertEquals(1, $p->create(array('name' => 'test'))); + $this->assertEquals(1, $tc->create(array('project_id' => 1, 'title' => 'test'))); + + $task = $tf->getById(1); + $this->assertNotEmpty($task); + $this->assertNotFalse($task); + + $this->assertEquals(1, $task['id']); + $this->assertEquals(1, $task['creator_id']); + + $_SESSION = array(); + } + public function testColumnId() { $p = new Project($this->container); diff --git a/tests/units/TaskDuplicationTest.php b/tests/units/TaskDuplicationTest.php index cd791312..4e44fd75 100644 --- a/tests/units/TaskDuplicationTest.php +++ b/tests/units/TaskDuplicationTest.php @@ -15,6 +15,36 @@ use Model\Swimlane; class TaskDuplicationTest extends Base { + public function testThatDuplicateDefineCreator() + { + $td = new TaskDuplication($this->container); + $tc = new TaskCreation($this->container); + $tf = new TaskFinder($this->container); + $p = new Project($this->container); + + $this->assertEquals(1, $p->create(array('name' => 'test1'))); + $this->assertEquals(1, $tc->create(array('title' => 'test', 'project_id' => 1))); + + $task = $tf->getById(1); + $this->assertNotEmpty($task); + $this->assertEquals(1, $task['position']); + $this->assertEquals(1, $task['project_id']); + $this->assertEquals(0, $task['creator_id']); + + $_SESSION = array(); + $_SESSION['user']['id'] = 1; + + // We duplicate our task + $this->assertEquals(2, $td->duplicate(1)); + + // Check the values of the duplicated task + $task = $tf->getById(2); + $this->assertNotEmpty($task); + $this->assertEquals(1, $task['creator_id']); + + $_SESSION = array(); + } + public function testDuplicateSameProject() { $td = new TaskDuplication($this->container); |