| | <?php |
| |
|
| | require_once __DIR__.'/../../Base.php'; |
| |
|
| | use Kanboard\Core\ExternalLink\ExternalLinkManager; |
| | use Kanboard\ExternalLink\WebLinkProvider; |
| | use Kanboard\ExternalLink\AttachmentLinkProvider; |
| |
|
| | class ExternalLinkManagerTest extends Base |
| | { |
| | public function testRegister() |
| | { |
| | $externalLinkManager = new ExternalLinkManager($this->container); |
| | $webLinkProvider = new WebLinkProvider($this->container); |
| | $attachmentLinkProvider = new AttachmentLinkProvider($this->container); |
| |
|
| | $externalLinkManager->register($webLinkProvider); |
| | $externalLinkManager->register($attachmentLinkProvider); |
| |
|
| | $this->assertInstanceOf(get_class($webLinkProvider), $externalLinkManager->getProvider($webLinkProvider->getType())); |
| | $this->assertInstanceOf(get_class($attachmentLinkProvider), $externalLinkManager->getProvider($attachmentLinkProvider->getType())); |
| | } |
| |
|
| | public function testGetProviderNotFound() |
| | { |
| | $externalLinkManager = new ExternalLinkManager($this->container); |
| |
|
| | $this->expectException('\Kanboard\Core\ExternalLink\ExternalLinkProviderNotFound'); |
| | $externalLinkManager->getProvider('not found'); |
| | } |
| |
|
| | public function testGetTypes() |
| | { |
| | $externalLinkManager = new ExternalLinkManager($this->container); |
| | $webLinkProvider = new WebLinkProvider($this->container); |
| | $attachmentLinkProvider = new AttachmentLinkProvider($this->container); |
| |
|
| | $this->assertEquals(array(ExternalLinkManager::TYPE_AUTO => 'Auto'), $externalLinkManager->getTypes()); |
| |
|
| | $externalLinkManager->register($webLinkProvider); |
| | $externalLinkManager->register($attachmentLinkProvider); |
| |
|
| | $this->assertEquals( |
| | array(ExternalLinkManager::TYPE_AUTO => 'Auto', 'attachment' => 'Attachment', 'weblink' => 'Web Link'), |
| | $externalLinkManager->getTypes() |
| | ); |
| | } |
| |
|
| | public function testGetDependencyLabel() |
| | { |
| | $externalLinkManager = new ExternalLinkManager($this->container); |
| | $webLinkProvider = new WebLinkProvider($this->container); |
| | $attachmentLinkProvider = new AttachmentLinkProvider($this->container); |
| |
|
| | $externalLinkManager->register($webLinkProvider); |
| | $externalLinkManager->register($attachmentLinkProvider); |
| |
|
| | $this->assertSame('Related', $externalLinkManager->getDependencyLabel($webLinkProvider->getType(), 'related')); |
| | $this->assertSame('custom', $externalLinkManager->getDependencyLabel($webLinkProvider->getType(), 'custom')); |
| | } |
| |
|
| | public function testFindProviderNotFound() |
| | { |
| | $externalLinkManager = new ExternalLinkManager($this->container); |
| | $webLinkProvider = new WebLinkProvider($this->container); |
| | $attachmentLinkProvider = new AttachmentLinkProvider($this->container); |
| |
|
| | $externalLinkManager->register($webLinkProvider); |
| | $externalLinkManager->register($attachmentLinkProvider); |
| |
|
| | $this->expectException('\Kanboard\Core\ExternalLink\ExternalLinkProviderNotFound'); |
| | $externalLinkManager->find(); |
| | } |
| |
|
| | public function testFindProvider() |
| | { |
| | $externalLinkManager = new ExternalLinkManager($this->container); |
| | $webLinkProvider = new WebLinkProvider($this->container); |
| | $attachmentLinkProvider = new AttachmentLinkProvider($this->container); |
| |
|
| | $externalLinkManager->register($webLinkProvider); |
| | $externalLinkManager->register($attachmentLinkProvider); |
| |
|
| | $externalLinkManager->setUserInput(array('text' => 'https://google.com/', 'type' => ExternalLinkManager::TYPE_AUTO)); |
| | $this->assertSame($webLinkProvider, $externalLinkManager->find()); |
| |
|
| | $externalLinkManager->setUserInput(array('text' => 'https://google.com/file.pdf', 'type' => ExternalLinkManager::TYPE_AUTO)); |
| | $this->assertSame($attachmentLinkProvider, $externalLinkManager->find()); |
| | } |
| |
|
| | public function testFindProviderWithSelectedType() |
| | { |
| | $externalLinkManager = new ExternalLinkManager($this->container); |
| | $webLinkProvider = new WebLinkProvider($this->container); |
| | $attachmentLinkProvider = new AttachmentLinkProvider($this->container); |
| |
|
| | $externalLinkManager->register($webLinkProvider); |
| | $externalLinkManager->register($attachmentLinkProvider); |
| |
|
| | $externalLinkManager->setUserInput(array('text' => 'https://google.com/', 'type' => $webLinkProvider->getType())); |
| | $this->assertSame($webLinkProvider, $externalLinkManager->find()); |
| |
|
| | $externalLinkManager->setUserInput(array('text' => 'https://google.com/file.pdf', 'type' => $attachmentLinkProvider->getType())); |
| | $this->assertSame($attachmentLinkProvider, $externalLinkManager->find()); |
| | } |
| |
|
| | public function testFindProviderWithSelectedTypeNotFound() |
| | { |
| | $externalLinkManager = new ExternalLinkManager($this->container); |
| | $webLinkProvider = new WebLinkProvider($this->container); |
| | $attachmentLinkProvider = new AttachmentLinkProvider($this->container); |
| |
|
| | $externalLinkManager->register($webLinkProvider); |
| | $externalLinkManager->register($attachmentLinkProvider); |
| |
|
| | $this->expectException('\Kanboard\Core\ExternalLink\ExternalLinkProviderNotFound'); |
| | $externalLinkManager->setUserInput(array('text' => 'https://google.com/', 'type' => 'not found')); |
| | $externalLinkManager->find(); |
| | } |
| | } |
| |
|