aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--plugins/wallabag/wallabag.php22
-rw-r--r--tests/plugins/PluginWallabagTest.php49
2 files changed, 64 insertions, 7 deletions
diff --git a/plugins/wallabag/wallabag.php b/plugins/wallabag/wallabag.php
index db8151c9..024a3d2b 100644
--- a/plugins/wallabag/wallabag.php
+++ b/plugins/wallabag/wallabag.php
@@ -1,25 +1,33 @@
1<?php 1<?php
2 2
3/**
4 * Plugin Wallabag.
5 */
6
3// don't raise unnecessary warnings 7// don't raise unnecessary warnings
4if (is_file(PluginManager::$PLUGINS_PATH . '/wallabag/config.php')) { 8if (is_file(PluginManager::$PLUGINS_PATH . '/wallabag/config.php')) {
5 include PluginManager::$PLUGINS_PATH . '/wallabag/config.php'; 9 include PluginManager::$PLUGINS_PATH . '/wallabag/config.php';
6} 10}
7 11
8if (!isset($GLOBALS['plugins']['WALLABAG_URL'])) { 12if (!isset($GLOBALS['plugins']['WALLABAG_URL'])) {
9 header('Content-Type: text/plain; charset=utf-8'); 13 $GLOBALS['plugins']['errors'][] = 'Wallabag plugin error: '.
10 echo 'Wallabag plugin error: '. PHP_EOL; 14 'Please define "$GLOBALS[\'plugins\'][\'WALLABAG_URL\']" '.
11 echo ' Please copy "plugins/wallabag/config.php.dist" to config.php and configure your Wallabag URL.'. PHP_EOL; 15 'in "plugins/wallabag/config.php" or in your Shaarli config.php file.';
12 echo ' You can also define "$GLOBALS[\'plugins\'][\'WALLABAG_URL\']" in your global Shaarli config.php file.';
13 exit;
14} 16}
15 17
16/** 18/**
17 * Add wallabag icon to link_plugin when rendering linklist. 19 * Add wallabag icon to link_plugin when rendering linklist.
18 * 20 *
19 * @param $data - linklist data. 21 * @param mixed $data - linklist data.
22 *
20 * @return mixed - linklist data with wallabag plugin. 23 * @return mixed - linklist data with wallabag plugin.
21 */ 24 */
22function hook_wallabag_render_linklist($data) { 25function hook_wallabag_render_linklist($data)
26{
27 if (!isset($GLOBALS['plugins']['WALLABAG_URL'])) {
28 return $data;
29 }
30
23 $wallabag_html = file_get_contents(PluginManager::$PLUGINS_PATH . '/wallabag/wallabag.html'); 31 $wallabag_html = file_get_contents(PluginManager::$PLUGINS_PATH . '/wallabag/wallabag.html');
24 32
25 foreach ($data['links'] as &$value) { 33 foreach ($data['links'] as &$value) {
diff --git a/tests/plugins/PluginWallabagTest.php b/tests/plugins/PluginWallabagTest.php
new file mode 100644
index 00000000..7cc83f4f
--- /dev/null
+++ b/tests/plugins/PluginWallabagTest.php
@@ -0,0 +1,49 @@
1<?php
2
3/**
4 * PluginWallabagTest.php.php
5 */
6
7require_once 'plugins/wallabag/wallabag.php';
8
9/**
10 * Class PluginWallabagTest
11 * Unit test for the Wallabag plugin
12 */
13class PluginWallabagTest extends PHPUnit_Framework_TestCase
14{
15 /**
16 * Reset plugin path
17 */
18 function setUp()
19 {
20 PluginManager::$PLUGINS_PATH = 'plugins';
21 }
22
23 /**
24 * Test render_linklist hook.
25 */
26 function testWallabagLinklist()
27 {
28 $GLOBALS['plugins']['WALLABAG_URL'] = 'value';
29 $str = 'http://randomstr.com/test';
30 $data = array(
31 'title' => $str,
32 'links' => array(
33 array(
34 'url' => $str,
35 )
36 )
37 );
38
39 $data = hook_wallabag_render_linklist($data);
40 $link = $data['links'][0];
41 // data shouldn't be altered
42 $this->assertEquals($str, $data['title']);
43 $this->assertEquals($str, $link['url']);
44
45 // plugin data
46 $this->assertEquals(1, count($link['link_plugin']));
47 $this->assertNotFalse(strpos($link['link_plugin'][0], $str));
48 }
49}