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