fix #22 tag & project validation
This commit is contained in:
parent
fb763a765e
commit
0a0a4f9788
@ -21,6 +21,8 @@ use JMS\Serializer\SerializerBuilder;
|
|||||||
*/
|
*/
|
||||||
class TaskManager
|
class TaskManager
|
||||||
{
|
{
|
||||||
|
const PATTERN = '/^[\wäüö]*$/i';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var Taskwarrior
|
* @var Taskwarrior
|
||||||
*/
|
*/
|
||||||
@ -216,6 +218,16 @@ class TaskManager
|
|||||||
$errors[] = "A recurring task must also have a 'due' date.";
|
$errors[] = "A recurring task must also have a 'due' date.";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!preg_match(static::PATTERN, $task->getProject())) {
|
||||||
|
$errors[] = sprintf("Project with the name '%s' is not allowed", $task->getProject());
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($task->getTags() as $tag) {
|
||||||
|
if (!preg_match(static::PATTERN, $tag)) {
|
||||||
|
$errors[] = sprintf("Tag with the name '%s' is not allowed", $tag);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return $errors;
|
return $errors;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -549,6 +549,18 @@ class TaskManagerTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->assertCount(1,$this->taskManager->filterPending('+später'));
|
$this->assertCount(1,$this->taskManager->filterPending('+später'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testTagNameNotAllowed()
|
||||||
|
{
|
||||||
|
$this->setExpectedException('DavidBadura\Taskwarrior\Exception\TaskwarriorException',
|
||||||
|
"Tag with the name 'foo-bar' is not allowed");
|
||||||
|
|
||||||
|
$task1 = new Task();
|
||||||
|
$task1->setDescription('foo1');
|
||||||
|
$task1->addTag('foo-bar');
|
||||||
|
|
||||||
|
$this->taskManager->save($task1);
|
||||||
|
}
|
||||||
|
|
||||||
public function testWait()
|
public function testWait()
|
||||||
{
|
{
|
||||||
$task1 = new Task();
|
$task1 = new Task();
|
||||||
|
Loading…
Reference in New Issue
Block a user