4 * PluginArchiveorgTest.php
7 require_once 'plugins/archiveorg/archiveorg.php';
10 * Class PluginArchiveorgTest
11 * Unit test for the archiveorg plugin
13 class PluginArchiveorgTest
extends PHPUnit_Framework_TestCase
18 public function setUp()
20 PluginManager
::$PLUGINS_PATH = 'plugins';
24 * Test render_linklist hook on external links.
26 public function testArchiveorgLinklistOnExternalLinks()
28 $str = 'http://randomstr.com/test';
41 $data = hook_archiveorg_render_linklist($data);
43 $link = $data['links'][0];
44 // data shouldn't be altered
45 $this->assertEquals($str, $data['title']);
46 $this->assertEquals($str, $link['url']);
49 $this->assertEquals(1, count($link['link_plugin']));
50 $this->assertNotFalse(strpos($link['link_plugin'][0], $str));
54 * Test render_linklist hook on internal links.
56 public function testArchiveorgLinklistOnInternalLinks()
58 $internalLink1 = 'http://shaarli.shaarli/?qvMAqg';
59 $internalLinkRealURL1 = '?qvMAqg';
61 $internalLink2 = 'http://shaarli.shaarli/?2_7zww';
62 $internalLinkRealURL2 = '?2_7zww';
64 $internalLink3 = 'http://shaarli.shaarli/?z7u-_Q';
65 $internalLinkRealURL3 = '?z7u-_Q';
68 'title' => $internalLink1,
71 'url' => $internalLink1,
73 'real_url' => $internalLinkRealURL1
76 'url' => $internalLink1,
78 'real_url' => $internalLinkRealURL1
81 'url' => $internalLink2,
83 'real_url' => $internalLinkRealURL2
86 'url' => $internalLink2,
88 'real_url' => $internalLinkRealURL2
91 'url' => $internalLink3,
93 'real_url' => $internalLinkRealURL3
96 'url' => $internalLink3,
98 'real_url' => $internalLinkRealURL3
103 $data = hook_archiveorg_render_linklist($data);
105 // Case n°1: first link type, public
106 $link = $data['links'][0];
108 $this->assertEquals(1, count($link['link_plugin']));
109 $this->assertNotFalse(strpos($link['link_plugin'][0], $internalLink1));
111 // Case n°2: first link type, private
112 $link = $data['links'][1];
114 $this->assertArrayNotHasKey('link_plugin', $link);
116 // Case n°3: second link type, public
117 $link = $data['links'][2];
119 $this->assertEquals(1, count($link['link_plugin']));
120 $this->assertNotFalse(strpos($link['link_plugin'][0], $internalLink2));
122 // Case n°4: second link type, private
123 $link = $data['links'][3];
125 $this->assertArrayNotHasKey('link_plugin', $link);
127 // Case n°5: third link type, public
128 $link = $data['links'][4];
130 $this->assertEquals(1, count($link['link_plugin']));
131 $this->assertNotFalse(strpos($link['link_plugin'][0], $internalLink3));
133 // Case n°6: third link type, private
134 $link = $data['links'][5];
136 $this->assertArrayNotHasKey('link_plugin', $link);