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