4 * PluginArchiveorgTest.php
7 use Shaarli\Plugin\PluginManager
;
9 require_once 'plugins/archiveorg/archiveorg.php';
12 * Class PluginArchiveorgTest
13 * Unit test for the archiveorg plugin
15 class PluginArchiveorgTest
extends PHPUnit_Framework_TestCase
20 public function setUp()
22 PluginManager
::$PLUGINS_PATH = 'plugins';
26 * Test render_linklist hook on external links.
28 public function testArchiveorgLinklistOnExternalLinks()
30 $str = 'http://randomstr.com/test';
43 $data = hook_archiveorg_render_linklist($data);
45 $link = $data['links'][0];
46 // data shouldn't be altered
47 $this->assertEquals($str, $data['title']);
48 $this->assertEquals($str, $link['url']);
51 $this->assertEquals(1, count($link['link_plugin']));
52 $this->assertNotFalse(strpos($link['link_plugin'][0], $str));
56 * Test render_linklist hook on internal links.
58 public function testArchiveorgLinklistOnInternalLinks()
60 $internalLink1 = 'http://shaarli.shaarli/?qvMAqg';
61 $internalLinkRealURL1 = '?qvMAqg';
63 $internalLink2 = 'http://shaarli.shaarli/?2_7zww';
64 $internalLinkRealURL2 = '?2_7zww';
66 $internalLink3 = 'http://shaarli.shaarli/?z7u-_Q';
67 $internalLinkRealURL3 = '?z7u-_Q';
70 'title' => $internalLink1,
73 'url' => $internalLink1,
75 'real_url' => $internalLinkRealURL1
78 'url' => $internalLink1,
80 'real_url' => $internalLinkRealURL1
83 'url' => $internalLink2,
85 'real_url' => $internalLinkRealURL2
88 'url' => $internalLink2,
90 'real_url' => $internalLinkRealURL2
93 'url' => $internalLink3,
95 'real_url' => $internalLinkRealURL3
98 'url' => $internalLink3,
100 'real_url' => $internalLinkRealURL3
105 $data = hook_archiveorg_render_linklist($data);
107 // Case n°1: first link type, public
108 $link = $data['links'][0];
110 $this->assertEquals(1, count($link['link_plugin']));
111 $this->assertNotFalse(strpos($link['link_plugin'][0], $internalLink1));
113 // Case n°2: first link type, private
114 $link = $data['links'][1];
116 $this->assertArrayNotHasKey('link_plugin', $link);
118 // Case n°3: second link type, public
119 $link = $data['links'][2];
121 $this->assertEquals(1, count($link['link_plugin']));
122 $this->assertNotFalse(strpos($link['link_plugin'][0], $internalLink2));
124 // Case n°4: second link type, private
125 $link = $data['links'][3];
127 $this->assertArrayNotHasKey('link_plugin', $link);
129 // Case n°5: third link type, public
130 $link = $data['links'][4];
132 $this->assertEquals(1, count($link['link_plugin']));
133 $this->assertNotFalse(strpos($link['link_plugin'][0], $internalLink3));
135 // Case n°6: third link type, private
136 $link = $data['links'][5];
138 $this->assertArrayNotHasKey('link_plugin', $link);