summaryrefslogtreecommitdiff
path: root/tests/units/Helper
diff options
context:
space:
mode:
Diffstat (limited to 'tests/units/Helper')
-rw-r--r--tests/units/Helper/AssetHelperTest.php4
-rw-r--r--tests/units/Helper/MailHelperTest.php35
-rw-r--r--tests/units/Helper/ProjectActivityHelperTest.php50
-rw-r--r--tests/units/Helper/TextHelperTest.php40
-rw-r--r--tests/units/Helper/UrlHelperTest.php4
-rw-r--r--tests/units/Helper/UserHelperTest.php216
6 files changed, 250 insertions, 99 deletions
diff --git a/tests/units/Helper/AssetHelperTest.php b/tests/units/Helper/AssetHelperTest.php
index 6ef5accd..da780c4b 100644
--- a/tests/units/Helper/AssetHelperTest.php
+++ b/tests/units/Helper/AssetHelperTest.php
@@ -3,14 +3,14 @@
require_once __DIR__.'/../Base.php';
use Kanboard\Helper\AssetHelper;
-use Kanboard\Model\Config;
+use Kanboard\Model\ConfigModel;
class AssetHelperTest extends Base
{
public function testCustomCss()
{
$h = new AssetHelper($this->container);
- $c = new Config($this->container);
+ $c = new ConfigModel($this->container);
$this->assertEmpty($h->customCss());
diff --git a/tests/units/Helper/MailHelperTest.php b/tests/units/Helper/MailHelperTest.php
new file mode 100644
index 00000000..b2d4ba6e
--- /dev/null
+++ b/tests/units/Helper/MailHelperTest.php
@@ -0,0 +1,35 @@
+<?php
+
+require_once __DIR__.'/../Base.php';
+
+use Kanboard\Helper\MailHelper;
+
+class MailHelperTest extends Base
+{
+ public function testMailboxHash()
+ {
+ $helper = new MailHelper($this->container);
+ $this->assertEquals('test1', $helper->getMailboxHash('a+test1@localhost'));
+ $this->assertEquals('', $helper->getMailboxHash('test1@localhost'));
+ $this->assertEquals('', $helper->getMailboxHash('test1'));
+ }
+
+ public function testFilterSubject()
+ {
+ $helper = new MailHelper($this->container);
+ $this->assertEquals('Test', $helper->filterSubject('Test'));
+ $this->assertEquals('Test', $helper->filterSubject('RE: Test'));
+ $this->assertEquals('Test', $helper->filterSubject('FW: Test'));
+ }
+
+ public function testGetSenderAddress()
+ {
+ $helper = new MailHelper($this->container);
+ $this->assertEquals('notifications@kanboard.local', $helper->getMailSenderAddress());
+
+ $this->container['configModel']->save(array('mail_sender_address' => 'me@here'));
+ $this->container['memoryCache']->flush();
+
+ $this->assertEquals('me@here', $helper->getMailSenderAddress());
+ }
+}
diff --git a/tests/units/Helper/ProjectActivityHelperTest.php b/tests/units/Helper/ProjectActivityHelperTest.php
index 88b2d352..1ad95699 100644
--- a/tests/units/Helper/ProjectActivityHelperTest.php
+++ b/tests/units/Helper/ProjectActivityHelperTest.php
@@ -1,11 +1,11 @@
<?php
use Kanboard\Helper\ProjectActivityHelper;
-use Kanboard\Model\Project;
-use Kanboard\Model\ProjectActivity;
-use Kanboard\Model\Task;
-use Kanboard\Model\TaskCreation;
-use Kanboard\Model\TaskFinder;
+use Kanboard\Model\ProjectModel;
+use Kanboard\Model\ProjectActivityModel;
+use Kanboard\Model\TaskModel;
+use Kanboard\Model\TaskCreationModel;
+use Kanboard\Model\TaskFinderModel;
require_once __DIR__.'/../Base.php';
@@ -13,10 +13,10 @@ class ProjectActivityHelperTest extends Base
{
public function testGetProjectEvents()
{
- $taskFinder = new TaskFinder($this->container);
- $taskCreation = new TaskCreation($this->container);
- $projectModel = new Project($this->container);
- $projectActivityModel = new ProjectActivity($this->container);
+ $taskFinder = new TaskFinderModel($this->container);
+ $taskCreation = new TaskCreationModel($this->container);
+ $projectModel = new ProjectModel($this->container);
+ $projectActivityModel = new ProjectActivityModel($this->container);
$this->assertEquals(1, $projectModel->create(array('name' => 'P1')));
@@ -24,9 +24,9 @@ class ProjectActivityHelperTest extends Base
$this->assertEquals(2, $taskCreation->create(array('title' => 'Test', 'project_id' => 1)));
$this->assertEquals(3, $taskCreation->create(array('title' => 'Test', 'project_id' => 1)));
- $this->assertNotFalse($projectActivityModel->createEvent(1, 1, 1, Task::EVENT_CREATE, array('task' => $taskFinder->getById(1))));
- $this->assertNotFalse($projectActivityModel->createEvent(1, 2, 1, Task::EVENT_CREATE, array('task' => $taskFinder->getById(2))));
- $this->assertNotFalse($projectActivityModel->createEvent(1, 3, 1, Task::EVENT_CREATE, array('task' => $taskFinder->getById(3))));
+ $this->assertNotFalse($projectActivityModel->createEvent(1, 1, 1, TaskModel::EVENT_CREATE, array('task' => $taskFinder->getById(1))));
+ $this->assertNotFalse($projectActivityModel->createEvent(1, 2, 1, TaskModel::EVENT_CREATE, array('task' => $taskFinder->getById(2))));
+ $this->assertNotFalse($projectActivityModel->createEvent(1, 3, 1, TaskModel::EVENT_CREATE, array('task' => $taskFinder->getById(3))));
$helper = new ProjectActivityHelper($this->container);
$events = $helper->getProjectEvents(1);
@@ -41,10 +41,10 @@ class ProjectActivityHelperTest extends Base
public function testGetProjectsEvents()
{
- $taskFinder = new TaskFinder($this->container);
- $taskCreation = new TaskCreation($this->container);
- $projectModel = new Project($this->container);
- $projectActivityModel = new ProjectActivity($this->container);
+ $taskFinder = new TaskFinderModel($this->container);
+ $taskCreation = new TaskCreationModel($this->container);
+ $projectModel = new ProjectModel($this->container);
+ $projectActivityModel = new ProjectActivityModel($this->container);
$this->assertEquals(1, $projectModel->create(array('name' => 'P1')));
$this->assertEquals(2, $projectModel->create(array('name' => 'P2')));
@@ -54,9 +54,9 @@ class ProjectActivityHelperTest extends Base
$this->assertEquals(2, $taskCreation->create(array('title' => 'Test', 'project_id' => 2)));
$this->assertEquals(3, $taskCreation->create(array('title' => 'Test', 'project_id' => 3)));
- $this->assertNotFalse($projectActivityModel->createEvent(1, 1, 1, Task::EVENT_CREATE, array('task' => $taskFinder->getById(1))));
- $this->assertNotFalse($projectActivityModel->createEvent(2, 2, 1, Task::EVENT_CREATE, array('task' => $taskFinder->getById(2))));
- $this->assertNotFalse($projectActivityModel->createEvent(3, 3, 1, Task::EVENT_CREATE, array('task' => $taskFinder->getById(3))));
+ $this->assertNotFalse($projectActivityModel->createEvent(1, 1, 1, TaskModel::EVENT_CREATE, array('task' => $taskFinder->getById(1))));
+ $this->assertNotFalse($projectActivityModel->createEvent(2, 2, 1, TaskModel::EVENT_CREATE, array('task' => $taskFinder->getById(2))));
+ $this->assertNotFalse($projectActivityModel->createEvent(3, 3, 1, TaskModel::EVENT_CREATE, array('task' => $taskFinder->getById(3))));
$helper = new ProjectActivityHelper($this->container);
$events = $helper->getProjectsEvents(array(1, 2));
@@ -71,18 +71,18 @@ class ProjectActivityHelperTest extends Base
public function testGetTaskEvents()
{
- $taskFinder = new TaskFinder($this->container);
- $taskCreation = new TaskCreation($this->container);
- $projectModel = new Project($this->container);
- $projectActivityModel = new ProjectActivity($this->container);
+ $taskFinder = new TaskFinderModel($this->container);
+ $taskCreation = new TaskCreationModel($this->container);
+ $projectModel = new ProjectModel($this->container);
+ $projectActivityModel = new ProjectActivityModel($this->container);
$this->assertEquals(1, $projectModel->create(array('name' => 'P1')));
$this->assertEquals(1, $taskCreation->create(array('title' => 'Test', 'project_id' => 1)));
$this->assertEquals(2, $taskCreation->create(array('title' => 'Test', 'project_id' => 1)));
- $this->assertNotFalse($projectActivityModel->createEvent(1, 1, 1, Task::EVENT_CREATE, array('task' => $taskFinder->getById(1))));
- $this->assertNotFalse($projectActivityModel->createEvent(1, 2, 1, Task::EVENT_CREATE, array('task' => $taskFinder->getById(2))));
+ $this->assertNotFalse($projectActivityModel->createEvent(1, 1, 1, TaskModel::EVENT_CREATE, array('task' => $taskFinder->getById(1))));
+ $this->assertNotFalse($projectActivityModel->createEvent(1, 2, 1, TaskModel::EVENT_CREATE, array('task' => $taskFinder->getById(2))));
$helper = new ProjectActivityHelper($this->container);
$events = $helper->getTaskEvents(1);
diff --git a/tests/units/Helper/TextHelperTest.php b/tests/units/Helper/TextHelperTest.php
index d7324dfd..c9447abb 100644
--- a/tests/units/Helper/TextHelperTest.php
+++ b/tests/units/Helper/TextHelperTest.php
@@ -3,30 +3,43 @@
require_once __DIR__.'/../Base.php';
use Kanboard\Helper\TextHelper;
+use Kanboard\Model\ProjectModel;
+use Kanboard\Model\TaskCreationModel;
class TextHelperTest extends Base
{
public function testMarkdownTaskLink()
{
- $h = new TextHelper($this->container);
+ $helper = new TextHelper($this->container);
+ $projectModel = new ProjectModel($this->container);
+ $taskCreationModel = new TaskCreationModel($this->container);
+
+ $this->assertEquals(1, $projectModel->create(array('name' => 'Project #1')));
+ $this->assertTrue($projectModel->enablePublicAccess(1));
+ $this->assertEquals(1, $taskCreationModel->create(array('title' => 'Task #1', 'project_id' => 1)));
+ $project = $projectModel->getById(1);
- $this->assertEquals('<p>Test</p>', $h->markdown('Test'));
+ $this->assertEquals('<p>Test</p>', $helper->markdown('Test'));
+
+ $this->assertEquals(
+ '<p>Task <a href="?controller=TaskViewController&amp;action=show&amp;task_id=123">#123</a></p>',
+ $helper->markdown('Task #123')
+ );
$this->assertEquals(
'<p>Task #123</p>',
- $h->markdown('Task #123')
+ $helper->markdown('Task #123', true)
);
$this->assertEquals(
- '<p>Task <a href="?controller=a&amp;action=b&amp;c=d&amp;task_id=123">#123</a></p>',
- $h->markdown('Task #123', array('controller' => 'a', 'action' => 'b', 'params' => array('c' => 'd')))
+ '<p>Task <a href="?controller=TaskViewController&amp;action=readonly&amp;token='.$project['token'].'&amp;task_id=1">#1</a></p>',
+ $helper->markdown('Task #1', true)
);
$this->assertEquals(
'<p>Check that: <a href="http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454">http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454</a></p>',
- $h->markdown(
- 'Check that: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454',
- array('controller' => 'a', 'action' => 'b', 'params' => array('c' => 'd'))
+ $helper->markdown(
+ 'Check that: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454'
)
);
}
@@ -34,7 +47,16 @@ class TextHelperTest extends Base
public function testMarkdownUserLink()
{
$h = new TextHelper($this->container);
- $this->assertEquals('<p>Text <a href="?controller=user&amp;action=profile&amp;user_id=1" class="user-mention-link">@admin</a> @notfound</p>', $h->markdown('Text @admin @notfound'));
+ $this->assertEquals('<p>Text <a href="?controller=UserViewController&amp;action=profile&amp;user_id=1" class="user-mention-link">@admin</a> @notfound</p>', $h->markdown('Text @admin @notfound'));
+ $this->assertEquals('<p>Text @admin @notfound</p>', $h->markdown('Text @admin @notfound', true));
+ }
+
+ public function testMarkdownAttribute()
+ {
+ $helper = new TextHelper($this->container);
+ $this->assertEquals('&lt;p&gt;&Ccedil;a marche&lt;/p&gt;', $helper->markdownAttribute('Ça marche'));
+ $this->assertEquals('&lt;p&gt;Test with &amp;quot;double quotes&amp;quot;&lt;/p&gt;', $helper->markdownAttribute('Test with "double quotes"'));
+ $this->assertEquals('&lt;p&gt;Test with &#039;single quotes&#039;&lt;/p&gt;', $helper->markdownAttribute("Test with 'single quotes'"));
}
public function testFormatBytes()
diff --git a/tests/units/Helper/UrlHelperTest.php b/tests/units/Helper/UrlHelperTest.php
index 34ab7604..b1f0a032 100644
--- a/tests/units/Helper/UrlHelperTest.php
+++ b/tests/units/Helper/UrlHelperTest.php
@@ -3,7 +3,7 @@
require_once __DIR__.'/../Base.php';
use Kanboard\Helper\UrlHelper;
-use Kanboard\Model\Config;
+use Kanboard\Model\ConfigModel;
use Kanboard\Core\Http\Request;
class UrlHelperTest extends Base
@@ -115,7 +115,7 @@ class UrlHelperTest extends Base
$h = new UrlHelper($this->container);
$this->assertEquals('http://kb:1234/', $h->base());
- $c = new Config($this->container);
+ $c = new ConfigModel($this->container);
$c->save(array('application_url' => 'https://mykanboard/'));
$this->container['memoryCache']->flush();
diff --git a/tests/units/Helper/UserHelperTest.php b/tests/units/Helper/UserHelperTest.php
index 9a9832b2..10bbc58e 100644
--- a/tests/units/Helper/UserHelperTest.php
+++ b/tests/units/Helper/UserHelperTest.php
@@ -2,11 +2,14 @@
require_once __DIR__.'/../Base.php';
+use Kanboard\Core\User\UserSession;
use Kanboard\Helper\UserHelper;
-use Kanboard\Model\Project;
-use Kanboard\Model\ProjectUserRole;
-use Kanboard\Model\User as UserModel;
+use Kanboard\Model\ProjectModel;
+use Kanboard\Model\ProjectUserRoleModel;
+use Kanboard\Model\TaskCreationModel;
+use Kanboard\Model\TaskFinderModel;
use Kanboard\Core\Security\Role;
+use Kanboard\Model\UserModel;
class UserHelperTest extends Base
{
@@ -17,6 +20,7 @@ class UserHelperTest extends Base
$this->assertEquals('CN', $helper->getInitials('chuck norris'));
$this->assertEquals('CN', $helper->getInitials('chuck norris #2'));
$this->assertEquals('A', $helper->getInitials('admin'));
+ $this->assertEquals('Ü君', $helper->getInitials('Ü 君が代'));
}
public function testGetRoleName()
@@ -36,9 +40,9 @@ class UserHelperTest extends Base
'role' => Role::APP_ADMIN,
);
- $this->assertTrue($helper->hasAccess('user', 'create'));
- $this->assertTrue($helper->hasAccess('ProjectCreation', 'create'));
- $this->assertTrue($helper->hasAccess('ProjectCreation', 'createPrivate'));
+ $this->assertTrue($helper->hasAccess('UserCreationController', 'create'));
+ $this->assertTrue($helper->hasAccess('ProjectCreationController', 'create'));
+ $this->assertTrue($helper->hasAccess('ProjectCreationController', 'createPrivate'));
}
public function testHasAccessForManagers()
@@ -50,9 +54,9 @@ class UserHelperTest extends Base
'role' => Role::APP_MANAGER,
);
- $this->assertFalse($helper->hasAccess('user', 'create'));
- $this->assertTrue($helper->hasAccess('ProjectCreation', 'create'));
- $this->assertTrue($helper->hasAccess('ProjectCreation', 'createPrivate'));
+ $this->assertFalse($helper->hasAccess('UserCreationController', 'show'));
+ $this->assertTrue($helper->hasAccess('ProjectCreationController', 'create'));
+ $this->assertTrue($helper->hasAccess('ProjectCreationController', 'createPrivate'));
}
public function testHasAccessForUsers()
@@ -64,15 +68,15 @@ class UserHelperTest extends Base
'role' => Role::APP_USER,
);
- $this->assertFalse($helper->hasAccess('user', 'create'));
- $this->assertFalse($helper->hasAccess('ProjectCreation', 'create'));
- $this->assertTrue($helper->hasAccess('ProjectCreation', 'createPrivate'));
+ $this->assertFalse($helper->hasAccess('UserCreationController', 'show'));
+ $this->assertFalse($helper->hasAccess('ProjectCreationController', 'create'));
+ $this->assertTrue($helper->hasAccess('ProjectCreationController', 'createPrivate'));
}
public function testHasProjectAccessForAdmins()
{
$helper = new UserHelper($this->container);
- $project = new Project($this->container);
+ $project = new ProjectModel($this->container);
$this->container['sessionStorage']->user = array(
'id' => 2,
@@ -81,14 +85,14 @@ class UserHelperTest extends Base
$this->assertEquals(1, $project->create(array('name' => 'My project')));
- $this->assertTrue($helper->hasProjectAccess('ProjectEdit', 'edit', 1));
- $this->assertTrue($helper->hasProjectAccess('board', 'show', 1));
+ $this->assertTrue($helper->hasProjectAccess('ProjectEditController', 'edit', 1));
+ $this->assertTrue($helper->hasProjectAccess('BoardViewController', 'show', 1));
}
public function testHasProjectAccessForManagers()
{
$helper = new UserHelper($this->container);
- $project = new Project($this->container);
+ $project = new ProjectModel($this->container);
$this->container['sessionStorage']->user = array(
'id' => 2,
@@ -97,14 +101,14 @@ class UserHelperTest extends Base
$this->assertEquals(1, $project->create(array('name' => 'My project')));
- $this->assertFalse($helper->hasProjectAccess('ProjectEdit', 'edit', 1));
- $this->assertFalse($helper->hasProjectAccess('board', 'show', 1));
+ $this->assertFalse($helper->hasProjectAccess('ProjectEditController', 'edit', 1));
+ $this->assertFalse($helper->hasProjectAccess('BoardViewController', 'show', 1));
}
public function testHasProjectAccessForUsers()
{
$helper = new UserHelper($this->container);
- $project = new Project($this->container);
+ $project = new ProjectModel($this->container);
$this->container['sessionStorage']->user = array(
'id' => 2,
@@ -113,16 +117,16 @@ class UserHelperTest extends Base
$this->assertEquals(1, $project->create(array('name' => 'My project')));
- $this->assertFalse($helper->hasProjectAccess('ProjectEdit', 'edit', 1));
- $this->assertFalse($helper->hasProjectAccess('board', 'show', 1));
+ $this->assertFalse($helper->hasProjectAccess('ProjectEditController', 'edit', 1));
+ $this->assertFalse($helper->hasProjectAccess('BoardViewController', 'show', 1));
}
public function testHasProjectAccessForAppManagerAndProjectManagers()
{
$helper = new UserHelper($this->container);
$user = new UserModel($this->container);
- $project = new Project($this->container);
- $projectUserRole = new ProjectUserRole($this->container);
+ $project = new ProjectModel($this->container);
+ $projectUserRole = new ProjectUserRoleModel($this->container);
$this->container['sessionStorage']->user = array(
'id' => 2,
@@ -134,23 +138,23 @@ class UserHelperTest extends Base
$this->assertEquals(2, $user->create(array('username' => 'user')));
$this->assertTrue($projectUserRole->addUser(1, 2, Role::PROJECT_MANAGER));
- $this->assertTrue($helper->hasProjectAccess('ProjectEdit', 'edit', 1));
- $this->assertTrue($helper->hasProjectAccess('board', 'show', 1));
- $this->assertTrue($helper->hasProjectAccess('task', 'show', 1));
- $this->assertTrue($helper->hasProjectAccess('taskcreation', 'save', 1));
+ $this->assertTrue($helper->hasProjectAccess('ProjectEditController', 'edit', 1));
+ $this->assertTrue($helper->hasProjectAccess('BoardViewController', 'show', 1));
+ $this->assertTrue($helper->hasProjectAccess('TaskViewController', 'show', 1));
+ $this->assertTrue($helper->hasProjectAccess('taskcreationcontroller', 'save', 1));
- $this->assertFalse($helper->hasProjectAccess('ProjectEdit', 'edit', 2));
- $this->assertFalse($helper->hasProjectAccess('board', 'show', 2));
- $this->assertFalse($helper->hasProjectAccess('task', 'show', 2));
- $this->assertFalse($helper->hasProjectAccess('taskcreation', 'save', 2));
+ $this->assertFalse($helper->hasProjectAccess('ProjectEditController', 'edit', 2));
+ $this->assertFalse($helper->hasProjectAccess('BoardViewController', 'show', 2));
+ $this->assertFalse($helper->hasProjectAccess('TaskViewController', 'show', 2));
+ $this->assertFalse($helper->hasProjectAccess('TaskCreationController', 'save', 2));
}
public function testHasProjectAccessForProjectManagers()
{
$helper = new UserHelper($this->container);
$user = new UserModel($this->container);
- $project = new Project($this->container);
- $projectUserRole = new ProjectUserRole($this->container);
+ $project = new ProjectModel($this->container);
+ $projectUserRole = new ProjectUserRoleModel($this->container);
$this->container['sessionStorage']->user = array(
'id' => 2,
@@ -162,23 +166,23 @@ class UserHelperTest extends Base
$this->assertEquals(2, $user->create(array('username' => 'user')));
$this->assertTrue($projectUserRole->addUser(1, 2, Role::PROJECT_MANAGER));
- $this->assertTrue($helper->hasProjectAccess('ProjectEdit', 'edit', 1));
- $this->assertTrue($helper->hasProjectAccess('board', 'show', 1));
- $this->assertTrue($helper->hasProjectAccess('task', 'show', 1));
- $this->assertTrue($helper->hasProjectAccess('taskcreation', 'save', 1));
+ $this->assertTrue($helper->hasProjectAccess('ProjectEditController', 'edit', 1));
+ $this->assertTrue($helper->hasProjectAccess('BoardViewController', 'show', 1));
+ $this->assertTrue($helper->hasProjectAccess('TaskViewController', 'show', 1));
+ $this->assertTrue($helper->hasProjectAccess('TaskCreationController', 'save', 1));
- $this->assertFalse($helper->hasProjectAccess('ProjectEdit', 'edit', 2));
- $this->assertFalse($helper->hasProjectAccess('board', 'show', 2));
- $this->assertFalse($helper->hasProjectAccess('task', 'show', 2));
- $this->assertFalse($helper->hasProjectAccess('taskcreation', 'save', 2));
+ $this->assertFalse($helper->hasProjectAccess('ProjectEditController', 'edit', 2));
+ $this->assertFalse($helper->hasProjectAccess('BoardViewController', 'show', 2));
+ $this->assertFalse($helper->hasProjectAccess('TaskViewController', 'show', 2));
+ $this->assertFalse($helper->hasProjectAccess('TaskCreationController', 'save', 2));
}
public function testHasProjectAccessForProjectMembers()
{
$helper = new UserHelper($this->container);
$user = new UserModel($this->container);
- $project = new Project($this->container);
- $projectUserRole = new ProjectUserRole($this->container);
+ $project = new ProjectModel($this->container);
+ $projectUserRole = new ProjectUserRoleModel($this->container);
$this->container['sessionStorage']->user = array(
'id' => 2,
@@ -190,23 +194,23 @@ class UserHelperTest extends Base
$this->assertEquals(2, $user->create(array('username' => 'user')));
$this->assertTrue($projectUserRole->addUser(1, 2, Role::PROJECT_MEMBER));
- $this->assertFalse($helper->hasProjectAccess('ProjectEdit', 'edit', 1));
- $this->assertTrue($helper->hasProjectAccess('board', 'show', 1));
- $this->assertTrue($helper->hasProjectAccess('task', 'show', 1));
- $this->assertTrue($helper->hasProjectAccess('taskcreation', 'save', 1));
+ $this->assertFalse($helper->hasProjectAccess('ProjectEditController', 'edit', 1));
+ $this->assertTrue($helper->hasProjectAccess('BoardViewController', 'show', 1));
+ $this->assertTrue($helper->hasProjectAccess('TaskViewController', 'show', 1));
+ $this->assertTrue($helper->hasProjectAccess('TaskCreationController', 'save', 1));
- $this->assertFalse($helper->hasProjectAccess('ProjectEdit', 'edit', 2));
- $this->assertFalse($helper->hasProjectAccess('board', 'show', 2));
- $this->assertFalse($helper->hasProjectAccess('task', 'show', 2));
- $this->assertFalse($helper->hasProjectAccess('taskcreation', 'save', 2));
+ $this->assertFalse($helper->hasProjectAccess('ProjectEditController', 'edit', 2));
+ $this->assertFalse($helper->hasProjectAccess('BoardViewController', 'show', 2));
+ $this->assertFalse($helper->hasProjectAccess('TaskViewController', 'show', 2));
+ $this->assertFalse($helper->hasProjectAccess('TaskCreationController', 'save', 2));
}
public function testHasProjectAccessForProjectViewers()
{
$helper = new UserHelper($this->container);
$user = new UserModel($this->container);
- $project = new Project($this->container);
- $projectUserRole = new ProjectUserRole($this->container);
+ $project = new ProjectModel($this->container);
+ $projectUserRole = new ProjectUserRoleModel($this->container);
$this->container['sessionStorage']->user = array(
'id' => 2,
@@ -218,14 +222,104 @@ class UserHelperTest extends Base
$this->assertEquals(2, $user->create(array('username' => 'user')));
$this->assertTrue($projectUserRole->addUser(1, 2, Role::PROJECT_VIEWER));
- $this->assertFalse($helper->hasProjectAccess('ProjectEdit', 'edit', 1));
- $this->assertTrue($helper->hasProjectAccess('board', 'show', 1));
- $this->assertTrue($helper->hasProjectAccess('task', 'show', 1));
- $this->assertFalse($helper->hasProjectAccess('taskcreation', 'save', 1));
+ $this->assertFalse($helper->hasProjectAccess('ProjectEditController', 'edit', 1));
+ $this->assertTrue($helper->hasProjectAccess('BoardViewController', 'show', 1));
+ $this->assertTrue($helper->hasProjectAccess('TaskViewController', 'show', 1));
+ $this->assertFalse($helper->hasProjectAccess('TaskCreationController', 'save', 1));
- $this->assertFalse($helper->hasProjectAccess('ProjectEdit', 'edit', 2));
- $this->assertFalse($helper->hasProjectAccess('board', 'show', 2));
- $this->assertFalse($helper->hasProjectAccess('task', 'show', 2));
- $this->assertFalse($helper->hasProjectAccess('taskcreation', 'save', 2));
+ $this->assertFalse($helper->hasProjectAccess('ProjectEditController', 'edit', 2));
+ $this->assertFalse($helper->hasProjectAccess('BoardViewController', 'show', 2));
+ $this->assertFalse($helper->hasProjectAccess('TaskViewController', 'show', 2));
+ $this->assertFalse($helper->hasProjectAccess('TaskCreationController', 'save', 2));
+ }
+
+ public function testCanRemoveTask()
+ {
+ $taskCreationModel = new TaskCreationModel($this->container);
+ $taskFinderModel = new TaskFinderModel($this->container);
+ $helper = new UserHelper($this->container);
+ $projectModel = new ProjectModel($this->container);
+ $userModel = new UserModel($this->container);
+ $userSessionModel = new UserSession($this->container);
+
+ $this->assertNotFalse($userModel->create(array('username' => 'toto', 'password' => '123456')));
+ $this->assertNotFalse($userModel->create(array('username' => 'toto2', 'password' => '123456')));
+ $this->assertEquals(1, $projectModel->create(array('name' => 'Project #1')));
+ $this->assertEquals(1, $taskCreationModel->create(array('title' => 'TaskViewController #1', 'project_id' => 1, 'creator_id' => 1)));
+ $this->assertEquals(2, $taskCreationModel->create(array('title' => 'TaskViewController #2', 'project_id' => 1, 'creator_id' => 2)));
+ $this->assertEquals(3, $taskCreationModel->create(array('title' => 'TaskViewController #3', 'project_id' => 1, 'creator_id' => 3)));
+ $this->assertEquals(4, $taskCreationModel->create(array('title' => 'TaskViewController #4', 'project_id' => 1)));
+
+ // User #1 can remove everything
+ $user = $userModel->getById(1);
+ $this->assertNotEmpty($user);
+ $userSessionModel->initialize($user);
+
+ $task = $taskFinderModel->getById(1);
+ $this->assertNotEmpty($task);
+ $this->assertTrue($helper->canRemoveTask($task));
+
+ // User #2 can't remove the TaskViewController #1
+ $user = $userModel->getById(2);
+ $this->assertNotEmpty($user);
+ $userSessionModel->initialize($user);
+
+ $task = $taskFinderModel->getById(1);
+ $this->assertNotEmpty($task);
+ $this->assertFalse($helper->canRemoveTask($task));
+
+ // User #1 can remove everything
+ $user = $userModel->getById(1);
+ $this->assertNotEmpty($user);
+ $userSessionModel->initialize($user);
+
+ $task = $taskFinderModel->getById(2);
+ $this->assertNotEmpty($task);
+ $this->assertTrue($helper->canRemoveTask($task));
+
+ // User #2 can remove his own TaskViewController
+ $user = $userModel->getById(2);
+ $this->assertNotEmpty($user);
+ $userSessionModel->initialize($user);
+
+ $task = $taskFinderModel->getById(2);
+ $this->assertNotEmpty($task);
+ $this->assertTrue($helper->canRemoveTask($task));
+
+ // User #1 can remove everything
+ $user = $userModel->getById(1);
+ $this->assertNotEmpty($user);
+ $userSessionModel->initialize($user);
+
+ $task = $taskFinderModel->getById(3);
+ $this->assertNotEmpty($task);
+ $this->assertTrue($helper->canRemoveTask($task));
+
+ // User #2 can't remove the TaskViewController #3
+ $user = $userModel->getById(2);
+ $this->assertNotEmpty($user);
+ $userSessionModel->initialize($user);
+
+ $task = $taskFinderModel->getById(3);
+ $this->assertNotEmpty($task);
+ $this->assertFalse($helper->canRemoveTask($task));
+
+ // User #1 can remove everything
+ $user = $userModel->getById(1);
+ $this->assertNotEmpty($user);
+ $userSessionModel->initialize($user);
+
+ $task = $taskFinderModel->getById(4);
+ $this->assertNotEmpty($task);
+ $this->assertTrue($helper->canRemoveTask($task));
+
+ // User #2 can't remove the TaskViewController #4
+ $user = $userModel->getById(2);
+ $this->assertNotEmpty($user);
+ $userSessionModel->initialize($user);
+
+ $task = $taskFinderModel->getById(4);
+ $this->assertNotEmpty($task);
+ $this->assertFalse($helper->canRemoveTask($task));
}
}