]> git.immae.eu Git - github/shaarli/Shaarli.git/blob - tests/plugins/PluginArchiveorgTest.php
namespacing: add plugin tests to \Shaarli\Plugin\[...]
[github/shaarli/Shaarli.git] / tests / plugins / PluginArchiveorgTest.php
1 <?php
2 namespace Shaarli\Plugin\Archiveorg;
3
4 /**
5 * PluginArchiveorgTest.php
6 */
7
8 use Shaarli\Plugin\PluginManager;
9
10 require_once 'plugins/archiveorg/archiveorg.php';
11
12 /**
13 * Class PluginArchiveorgTest
14 * Unit test for the archiveorg plugin
15 */
16 class PluginArchiveorgTest extends \PHPUnit\Framework\TestCase
17 {
18 /**
19 * Reset plugin path
20 */
21 public function setUp()
22 {
23 PluginManager::$PLUGINS_PATH = 'plugins';
24 }
25
26 /**
27 * Test render_linklist hook on external links.
28 */
29 public function testArchiveorgLinklistOnExternalLinks()
30 {
31 $str = 'http://randomstr.com/test';
32
33 $data = array(
34 'title' => $str,
35 'links' => array(
36 array(
37 'url' => $str,
38 'private' => 0,
39 'real_url' => $str
40 )
41 )
42 );
43
44 $data = hook_archiveorg_render_linklist($data);
45
46 $link = $data['links'][0];
47 // data shouldn't be altered
48 $this->assertEquals($str, $data['title']);
49 $this->assertEquals($str, $link['url']);
50
51 // plugin data
52 $this->assertEquals(1, count($link['link_plugin']));
53 $this->assertNotFalse(strpos($link['link_plugin'][0], $str));
54 }
55
56 /**
57 * Test render_linklist hook on internal links.
58 */
59 public function testArchiveorgLinklistOnInternalLinks()
60 {
61 $internalLink1 = 'http://shaarli.shaarli/?qvMAqg';
62 $internalLinkRealURL1 = '?qvMAqg';
63
64 $internalLink2 = 'http://shaarli.shaarli/?2_7zww';
65 $internalLinkRealURL2 = '?2_7zww';
66
67 $internalLink3 = 'http://shaarli.shaarli/?z7u-_Q';
68 $internalLinkRealURL3 = '?z7u-_Q';
69
70 $data = array(
71 'title' => $internalLink1,
72 'links' => array(
73 array(
74 'url' => $internalLink1,
75 'private' => 0,
76 'real_url' => $internalLinkRealURL1
77 ),
78 array(
79 'url' => $internalLink1,
80 'private' => 1,
81 'real_url' => $internalLinkRealURL1
82 ),
83 array(
84 'url' => $internalLink2,
85 'private' => 0,
86 'real_url' => $internalLinkRealURL2
87 ),
88 array(
89 'url' => $internalLink2,
90 'private' => 1,
91 'real_url' => $internalLinkRealURL2
92 ),
93 array(
94 'url' => $internalLink3,
95 'private' => 0,
96 'real_url' => $internalLinkRealURL3
97 ),
98 array(
99 'url' => $internalLink3,
100 'private' => 1,
101 'real_url' => $internalLinkRealURL3
102 )
103 )
104 );
105
106 $data = hook_archiveorg_render_linklist($data);
107
108 // Case n°1: first link type, public
109 $link = $data['links'][0];
110
111 $this->assertEquals(1, count($link['link_plugin']));
112 $this->assertNotFalse(strpos($link['link_plugin'][0], $internalLink1));
113
114 // Case n°2: first link type, private
115 $link = $data['links'][1];
116
117 $this->assertArrayNotHasKey('link_plugin', $link);
118
119 // Case n°3: second link type, public
120 $link = $data['links'][2];
121
122 $this->assertEquals(1, count($link['link_plugin']));
123 $this->assertNotFalse(strpos($link['link_plugin'][0], $internalLink2));
124
125 // Case n°4: second link type, private
126 $link = $data['links'][3];
127
128 $this->assertArrayNotHasKey('link_plugin', $link);
129
130 // Case n°5: third link type, public
131 $link = $data['links'][4];
132
133 $this->assertEquals(1, count($link['link_plugin']));
134 $this->assertNotFalse(strpos($link['link_plugin'][0], $internalLink3));
135
136 // Case n°6: third link type, private
137 $link = $data['links'][5];
138
139 $this->assertArrayNotHasKey('link_plugin', $link);
140 }
141 }