Added mail helper
This commit is contained in:
parent
ca87b1b60f
commit
c50255813b
|
|
@ -27,6 +27,7 @@ use Pimple\Container;
|
|||
* @property \Kanboard\Helper\LayoutHelper $layout
|
||||
* @property \Kanboard\Helper\ProjectHeaderHelper $projectHeader
|
||||
* @property \Kanboard\Helper\ProjectActivityHelper $projectActivity
|
||||
* @property \Kanboard\Helper\MailHelper $mail
|
||||
*/
|
||||
class Helper
|
||||
{
|
||||
|
|
|
|||
|
|
@ -12,26 +12,6 @@ use Pimple\Container;
|
|||
*/
|
||||
class Tool
|
||||
{
|
||||
/**
|
||||
* Get the mailbox hash from an email address
|
||||
*
|
||||
* @static
|
||||
* @access public
|
||||
* @param string $email
|
||||
* @return string
|
||||
*/
|
||||
public static function getMailboxHash($email)
|
||||
{
|
||||
if (! strpos($email, '@') || ! strpos($email, '+')) {
|
||||
return '';
|
||||
}
|
||||
|
||||
list($local_part, ) = explode('@', $email);
|
||||
list(, $identifier) = explode('+', $local_part);
|
||||
|
||||
return $identifier;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build dependency injection container from an array
|
||||
*
|
||||
|
|
|
|||
|
|
@ -0,0 +1,48 @@
|
|||
<?php
|
||||
|
||||
namespace Kanboard\Helper;
|
||||
|
||||
use Kanboard\Core\Base;
|
||||
|
||||
/**
|
||||
* Class MailHelper
|
||||
*
|
||||
* @package Kanboard\Helper
|
||||
* @author Frederic Guillot
|
||||
*/
|
||||
class MailHelper extends Base
|
||||
{
|
||||
/**
|
||||
* Get the mailbox hash from an email address
|
||||
*
|
||||
* @access public
|
||||
* @param string $email
|
||||
* @return string
|
||||
*/
|
||||
public function getMailboxHash($email)
|
||||
{
|
||||
if (! strpos($email, '@') || ! strpos($email, '+')) {
|
||||
return '';
|
||||
}
|
||||
|
||||
list($localPart, ) = explode('@', $email);
|
||||
list(, $identifier) = explode('+', $localPart);
|
||||
|
||||
return $identifier;
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter mail subject
|
||||
*
|
||||
* @access public
|
||||
* @param string $subject
|
||||
* @return string
|
||||
*/
|
||||
public function filterSubject($subject)
|
||||
{
|
||||
$subject = str_replace('RE: ', '', $subject);
|
||||
$subject = str_replace('FW: ', '', $subject);
|
||||
|
||||
return $subject;
|
||||
}
|
||||
}
|
||||
|
|
@ -89,6 +89,22 @@ class SwimlaneModel extends Base
|
|||
->findOne();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get first active swimlane for a project
|
||||
*
|
||||
* @access public
|
||||
* @param integer $project_id
|
||||
* @return array
|
||||
*/
|
||||
public function getFirstActiveSwimlane($project_id)
|
||||
{
|
||||
return $this->db->table(self::TABLE)
|
||||
->eq('is_active', self::ACTIVE)
|
||||
->eq('project_id', $project_id)
|
||||
->orderBy('position', 'asc')
|
||||
->findOne();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get default swimlane properties
|
||||
*
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ class HelperProvider implements ServiceProviderInterface
|
|||
$container['helper']->register('avatar', '\Kanboard\Helper\AvatarHelper');
|
||||
$container['helper']->register('projectHeader', '\Kanboard\Helper\ProjectHeaderHelper');
|
||||
$container['helper']->register('projectActivity', '\Kanboard\Helper\ProjectActivityHelper');
|
||||
$container['helper']->register('mail', '\Kanboard\Helper\MailHelper');
|
||||
|
||||
$container['template'] = new Template($container['helper']);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,15 +0,0 @@
|
|||
<?php
|
||||
|
||||
require_once __DIR__.'/../Base.php';
|
||||
|
||||
use Kanboard\Core\Tool;
|
||||
|
||||
class ToolTest extends Base
|
||||
{
|
||||
public function testMailboxHash()
|
||||
{
|
||||
$this->assertEquals('test1', Tool::getMailboxHash('a+test1@localhost'));
|
||||
$this->assertEquals('', Tool::getMailboxHash('test1@localhost'));
|
||||
$this->assertEquals('', Tool::getMailboxHash('test1'));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
<?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'));
|
||||
}
|
||||
}
|
||||
|
|
@ -30,6 +30,19 @@ class SwimlaneTest extends Base
|
|||
$this->assertEquals('', $s->getNameById(23));
|
||||
}
|
||||
|
||||
public function testGetFirstActiveSwimlane()
|
||||
{
|
||||
$projectModel = new ProjectModel($this->container);
|
||||
$swimlaneModel = new SwimlaneModel($this->container);
|
||||
|
||||
$this->assertEquals(1, $projectModel->create(array('name' => 'UnitTest')));
|
||||
$this->assertEquals(1, $swimlaneModel->create(array('project_id' => 1, 'name' => 'Swimlane #1', 'is_active' => 0)));
|
||||
$this->assertEquals(2, $swimlaneModel->create(array('project_id' => 1, 'name' => 'Swimlane #2')));
|
||||
|
||||
$swimlane = $swimlaneModel->getFirstActiveSwimlane(1);
|
||||
$this->assertEquals(2, $swimlane['id']);
|
||||
}
|
||||
|
||||
public function testGetList()
|
||||
{
|
||||
$p = new ProjectModel($this->container);
|
||||
|
|
|
|||
Loading…
Reference in New Issue