summaryrefslogtreecommitdiff
path: root/tests/units/ExternalLink
diff options
context:
space:
mode:
Diffstat (limited to 'tests/units/ExternalLink')
-rw-r--r--tests/units/ExternalLink/AttachmentLinkProviderTest.php64
-rw-r--r--tests/units/ExternalLink/AttachmentLinkTest.php18
-rw-r--r--tests/units/ExternalLink/WebLinkProviderTest.php52
-rw-r--r--tests/units/ExternalLink/WebLinkTest.php45
4 files changed, 179 insertions, 0 deletions
diff --git a/tests/units/ExternalLink/AttachmentLinkProviderTest.php b/tests/units/ExternalLink/AttachmentLinkProviderTest.php
new file mode 100644
index 00000000..fe374664
--- /dev/null
+++ b/tests/units/ExternalLink/AttachmentLinkProviderTest.php
@@ -0,0 +1,64 @@
+<?php
+
+require_once __DIR__.'/../Base.php';
+
+use Kanboard\ExternalLink\AttachmentLinkProvider;
+
+class AttachmentLinkProviderTest extends Base
+{
+ public function testGetName()
+ {
+ $attachmentLinkProvider = new AttachmentLinkProvider($this->container);
+ $this->assertEquals('Attachment', $attachmentLinkProvider->getName());
+ }
+
+ public function testGetType()
+ {
+ $attachmentLinkProvider = new AttachmentLinkProvider($this->container);
+ $this->assertEquals('attachment', $attachmentLinkProvider->getType());
+ }
+
+ public function testGetDependencies()
+ {
+ $attachmentLinkProvider = new AttachmentLinkProvider($this->container);
+ $this->assertEquals(array('related' => 'Related'), $attachmentLinkProvider->getDependencies());
+ }
+
+ public function testMatch()
+ {
+ $attachmentLinkProvider = new AttachmentLinkProvider($this->container);
+
+ $attachmentLinkProvider->setUserTextInput('http://kanboard.net/FILE.DOC');
+ $this->assertTrue($attachmentLinkProvider->match());
+
+ $attachmentLinkProvider->setUserTextInput('http://kanboard.net/folder/document.PDF');
+ $this->assertTrue($attachmentLinkProvider->match());
+
+ $attachmentLinkProvider->setUserTextInput('http://kanboard.net/archive.zip');
+ $this->assertTrue($attachmentLinkProvider->match());
+
+ $attachmentLinkProvider->setUserTextInput(' https://kanboard.net/folder/archive.tar ');
+ $this->assertTrue($attachmentLinkProvider->match());
+
+ $attachmentLinkProvider->setUserTextInput('http:// invalid url');
+ $this->assertFalse($attachmentLinkProvider->match());
+
+ $attachmentLinkProvider->setUserTextInput('');
+ $this->assertFalse($attachmentLinkProvider->match());
+
+ $attachmentLinkProvider->setUserTextInput('http://kanboard.net/folder/document.html');
+ $this->assertFalse($attachmentLinkProvider->match());
+
+ $attachmentLinkProvider->setUserTextInput('http://kanboard.net/folder/DOC.HTML');
+ $this->assertFalse($attachmentLinkProvider->match());
+
+ $attachmentLinkProvider->setUserTextInput('http://kanboard.net/folder/document.do');
+ $this->assertFalse($attachmentLinkProvider->match());
+ }
+
+ public function testGetLink()
+ {
+ $attachmentLinkProvider = new AttachmentLinkProvider($this->container);
+ $this->assertInstanceOf('\Kanboard\ExternalLink\AttachmentLink', $attachmentLinkProvider->getLink());
+ }
+}
diff --git a/tests/units/ExternalLink/AttachmentLinkTest.php b/tests/units/ExternalLink/AttachmentLinkTest.php
new file mode 100644
index 00000000..0211869c
--- /dev/null
+++ b/tests/units/ExternalLink/AttachmentLinkTest.php
@@ -0,0 +1,18 @@
+<?php
+
+require_once __DIR__.'/../Base.php';
+
+use Kanboard\ExternalLink\AttachmentLink;
+
+class AttachmentLinkTest extends Base
+{
+ public function testGetTitleFromUrl()
+ {
+ $url = 'https://kanboard.net/folder/document.pdf';
+
+ $link = new AttachmentLink($this->container);
+ $link->setUrl($url);
+ $this->assertEquals($url, $link->getUrl());
+ $this->assertEquals('document.pdf', $link->getTitle());
+ }
+}
diff --git a/tests/units/ExternalLink/WebLinkProviderTest.php b/tests/units/ExternalLink/WebLinkProviderTest.php
new file mode 100644
index 00000000..95110ed8
--- /dev/null
+++ b/tests/units/ExternalLink/WebLinkProviderTest.php
@@ -0,0 +1,52 @@
+<?php
+
+require_once __DIR__.'/../Base.php';
+
+use Kanboard\ExternalLink\WebLinkProvider;
+
+class WebLinkProviderTest extends Base
+{
+ public function testGetName()
+ {
+ $webLinkProvider = new WebLinkProvider($this->container);
+ $this->assertEquals('Web Link', $webLinkProvider->getName());
+ }
+
+ public function testGetType()
+ {
+ $webLinkProvider = new WebLinkProvider($this->container);
+ $this->assertEquals('weblink', $webLinkProvider->getType());
+ }
+
+ public function testGetDependencies()
+ {
+ $webLinkProvider = new WebLinkProvider($this->container);
+ $this->assertEquals(array('related' => 'Related'), $webLinkProvider->getDependencies());
+ }
+
+ public function testMatch()
+ {
+ $webLinkProvider = new WebLinkProvider($this->container);
+
+ $webLinkProvider->setUserTextInput('http://kanboard.net/');
+ $this->assertTrue($webLinkProvider->match());
+
+ $webLinkProvider->setUserTextInput('http://kanboard.net/mypage');
+ $this->assertTrue($webLinkProvider->match());
+
+ $webLinkProvider->setUserTextInput(' https://kanboard.net/ ');
+ $this->assertTrue($webLinkProvider->match());
+
+ $webLinkProvider->setUserTextInput('http:// invalid url');
+ $this->assertFalse($webLinkProvider->match());
+
+ $webLinkProvider->setUserTextInput('');
+ $this->assertFalse($webLinkProvider->match());
+ }
+
+ public function testGetLink()
+ {
+ $webLinkProvider = new WebLinkProvider($this->container);
+ $this->assertInstanceOf('\Kanboard\ExternalLink\WebLink', $webLinkProvider->getLink());
+ }
+}
diff --git a/tests/units/ExternalLink/WebLinkTest.php b/tests/units/ExternalLink/WebLinkTest.php
new file mode 100644
index 00000000..85487e15
--- /dev/null
+++ b/tests/units/ExternalLink/WebLinkTest.php
@@ -0,0 +1,45 @@
+<?php
+
+require_once __DIR__.'/../Base.php';
+
+use Kanboard\ExternalLink\WebLink;
+
+class WebLinkTest extends Base
+{
+ public function testGetTitleFromHtml()
+ {
+ $url = 'http://kanboard.net/something';
+ $title = 'My title';
+ $html = '<!DOCTYPE html><html><head><title> '.$title.' </title></head><body>Test</body></html>';
+
+ $webLink = new WebLink($this->container);
+ $webLink->setUrl($url);
+ $this->assertEquals($url, $webLink->getUrl());
+
+ $this->container['httpClient']
+ ->expects($this->once())
+ ->method('get')
+ ->with($url)
+ ->will($this->returnValue($html));
+
+ $this->assertEquals($title, $webLink->getTitle());
+ }
+
+ public function testGetTitleFromUrl()
+ {
+ $url = 'http://kanboard.net/something';
+ $html = '<!DOCTYPE html><html><head></head><body>Test</body></html>';
+
+ $webLink = new WebLink($this->container);
+ $webLink->setUrl($url);
+ $this->assertEquals($url, $webLink->getUrl());
+
+ $this->container['httpClient']
+ ->expects($this->once())
+ ->method('get')
+ ->with($url)
+ ->will($this->returnValue($html));
+
+ $this->assertEquals('kanboard.net/something', $webLink->getTitle());
+ }
+}