2 namespace Shaarli\Plugin\Archiveorg
;
5 * PluginArchiveorgTest.php
8 use Shaarli\Plugin\PluginManager
;
10 require_once 'plugins/archiveorg/archiveorg.php';
13 * Class PluginArchiveorgTest
14 * Unit test for the archiveorg plugin
16 class PluginArchiveorgTest
extends \PHPUnit\Framework\TestCase
21 public function setUp()
23 PluginManager
::$PLUGINS_PATH = 'plugins';
27 * Test render_linklist hook on external bookmarks.
29 public function testArchiveorgLinklistOnExternalLinks()
31 $str = 'http://randomstr.com/test';
44 $data = hook_archiveorg_render_linklist($data);
46 $link = $data['links'][0];
47 // data shouldn't be altered
48 $this->assertEquals($str, $data['title']);
49 $this->assertEquals($str, $link['url']);
52 $this->assertEquals(1, count($link['link_plugin']));
53 $this->assertNotFalse(strpos($link['link_plugin'][0], $str));
57 * Test render_linklist hook on internal bookmarks.
59 public function testArchiveorgLinklistOnInternalLinks()
61 $internalLink1 = 'http://shaarli.shaarli/?qvMAqg';
62 $internalLinkRealURL1 = '?qvMAqg';
64 $internalLink2 = 'http://shaarli.shaarli/?2_7zww';
65 $internalLinkRealURL2 = '?2_7zww';
67 $internalLink3 = 'http://shaarli.shaarli/?z7u-_Q';
68 $internalLinkRealURL3 = '?z7u-_Q';
71 'title' => $internalLink1,
74 'url' => $internalLink1,
76 'real_url' => $internalLinkRealURL1
79 'url' => $internalLink1,
81 'real_url' => $internalLinkRealURL1
84 'url' => $internalLink2,
86 'real_url' => $internalLinkRealURL2
89 'url' => $internalLink2,
91 'real_url' => $internalLinkRealURL2
94 'url' => $internalLink3,
96 'real_url' => $internalLinkRealURL3
99 'url' => $internalLink3,
101 'real_url' => $internalLinkRealURL3
106 $data = hook_archiveorg_render_linklist($data);
108 // Case n°1: first link type, public
109 $link = $data['links'][0];
111 $this->assertEquals(1, count($link['link_plugin']));
112 $this->assertNotFalse(strpos($link['link_plugin'][0], $internalLink1));
114 // Case n°2: first link type, private
115 $link = $data['links'][1];
117 $this->assertArrayNotHasKey('link_plugin', $link);
119 // Case n°3: second link type, public
120 $link = $data['links'][2];
122 $this->assertEquals(1, count($link['link_plugin']));
123 $this->assertNotFalse(strpos($link['link_plugin'][0], $internalLink2));
125 // Case n°4: second link type, private
126 $link = $data['links'][3];
128 $this->assertArrayNotHasKey('link_plugin', $link);
130 // Case n°5: third link type, public
131 $link = $data['links'][4];
133 $this->assertEquals(1, count($link['link_plugin']));
134 $this->assertNotFalse(strpos($link['link_plugin'][0], $internalLink3));
136 // Case n°6: third link type, private
137 $link = $data['links'][5];
139 $this->assertArrayNotHasKey('link_plugin', $link);