Fixed wrong task link generation within Markdown text

This commit is contained in:
Frederic Guillot
2016-04-29 17:32:43 -04:00
parent 81a25cbe63
commit fc8f8748b9
8 changed files with 124 additions and 83 deletions

View File

@@ -3,30 +3,43 @@
require_once __DIR__.'/../Base.php';
use Kanboard\Helper\TextHelper;
use Kanboard\Model\Project;
use Kanboard\Model\TaskCreation;
class TextHelperTest extends Base
{
public function testMarkdownTaskLink()
{
$h = new TextHelper($this->container);
$helper = new TextHelper($this->container);
$projectModel = new Project($this->container);
$taskCreationModel = new TaskCreation($this->container);
$this->assertEquals('<p>Test</p>', $h->markdown('Test'));
$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>', $helper->markdown('Test'));
$this->assertEquals(
'<p>Task #123</p>',
$h->markdown('Task #123')
'<p>Task <a href="?controller=task&amp;action=show&amp;task_id=123">#123</a></p>',
$helper->markdown('Task #123')
);
$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 #123</p>',
$helper->markdown('Task #123', true)
);
$this->assertEquals(
'<p>Task <a href="?controller=task&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'
)
);
}
@@ -35,6 +48,7 @@ class TextHelperTest extends Base
{
$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 @admin @notfound</p>', $h->markdown('Text @admin @notfound', true));
}
public function testFormatBytes()

View File

@@ -93,4 +93,23 @@ class TaskFinderTest extends Base
$this->assertEquals(1, $tf->countByProjectId(1));
$this->assertEquals(2, $tf->countByProjectId(2));
}
public function testGetProjectToken()
{
$taskCreationModel = new TaskCreation($this->container);
$taskFinderModel = new TaskFinder($this->container);
$projectModel = new Project($this->container);
$this->assertEquals(1, $projectModel->create(array('name' => 'Project #1')));
$this->assertEquals(2, $projectModel->create(array('name' => 'Project #2')));
$this->assertTrue($projectModel->enablePublicAccess(1));
$this->assertEquals(1, $taskCreationModel->create(array('title' => 'Task #1', 'project_id' => 1)));
$this->assertEquals(2, $taskCreationModel->create(array('title' => 'Task #2', 'project_id' => 2)));
$project = $projectModel->getById(1);
$this->assertEquals($project['token'], $taskFinderModel->getProjectToken(1));
$this->assertEmpty($taskFinderModel->getProjectToken(2));
}
}