]> git.immae.eu Git - github/shaarli/Shaarli.git/blame - tests/plugins/PluginArchiveorgTest.php
namespacing: \Shaarli\Plugin\PluginManager
[github/shaarli/Shaarli.git] / tests / plugins / PluginArchiveorgTest.php
CommitLineData
9a364c28
A
1<?php
2
3/**
4 * PluginArchiveorgTest.php
5 */
6
e1850388
V
7use Shaarli\Plugin\PluginManager;
8
9a364c28
A
9require_once 'plugins/archiveorg/archiveorg.php';
10
11/**
5e148f8a
T
12 * Class PluginArchiveorgTest
13 * Unit test for the archiveorg plugin
9a364c28
A
14 */
15class PluginArchiveorgTest extends PHPUnit_Framework_TestCase
16{
17 /**
18 * Reset plugin path
19 */
93b1fe54 20 public function setUp()
9a364c28
A
21 {
22 PluginManager::$PLUGINS_PATH = 'plugins';
23 }
24
25 /**
5e148f8a 26 * Test render_linklist hook on external links.
9a364c28 27 */
93b1fe54 28 public function testArchiveorgLinklistOnExternalLinks()
9a364c28
A
29 {
30 $str = 'http://randomstr.com/test';
5e148f8a 31
9a364c28
A
32 $data = array(
33 'title' => $str,
34 'links' => array(
35 array(
36 'url' => $str,
5e148f8a
T
37 'private' => 0,
38 'real_url' => $str
9a364c28
A
39 )
40 )
41 );
42
43 $data = hook_archiveorg_render_linklist($data);
5e148f8a 44
9a364c28
A
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));
5e148f8a
T
53 }
54
55 /**
56 * Test render_linklist hook on internal links.
57 */
93b1fe54 58 public function testArchiveorgLinklistOnInternalLinks()
5e148f8a
T
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
5e148f8a
T
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);
9a364c28
A
139 }
140}