<?php
+/**
+ * Plugin addlink_toolbar.
+ * Adds the addlink input on the linklist page.
+ */
+
/**
* When linklist is displayed, add play videos to header's toolbar.
*
* @param array $data - header data.
+ *
* @return mixed - header data with addlink toolbar item.
*/
-function hook_addlink_toolbar_render_header($data) {
+function hook_addlink_toolbar_render_header($data)
+{
if ($data['_PAGE_'] == Router::$PAGE_LINKLIST && $data['_LOGGEDIN_'] === true) {
$data['fields_toolbar'][] = file_get_contents(PluginManager::$PLUGINS_PATH . '/addlink_toolbar/addlink_toolbar.html');
}
* When link list is displayed, include markdown CSS.
*
* @param array $data - includes data.
+ *
* @return mixed - includes data with markdown CSS file added.
*/
-function hook_addlink_toolbar_render_includes($data) {
+function hook_addlink_toolbar_render_includes($data)
+{
if ($data['_PAGE_'] == Router::$PAGE_LINKLIST && $data['_LOGGEDIN_'] === true) {
$data['css_files'][] = PluginManager::$PLUGINS_PATH . '/addlink_toolbar/addlink_toolbar.css';
}
--- /dev/null
+<?php
+
+/**
+ * PluginPlayvideosTest.php
+ */
+
+require_once 'plugins/addlink_toolbar/addlink_toolbar.php';
+require_once 'application/Router.php';
+
+/**
+ * Class PluginAddlinkTest
+ * Unit test for the Addlink toolbar plugin
+ */
+class PluginAddlinkTest extends PHPUnit_Framework_TestCase
+{
+ /**
+ * Reset plugin path.
+ */
+ function setUp()
+ {
+ PluginManager::$PLUGINS_PATH = 'plugins';
+ }
+
+ /**
+ * Test render_header hook while logged in.
+ */
+ function testAddlinkHeaderLoggedIn()
+ {
+ $str = 'stuff';
+ $data = array($str => $str);
+ $data['_PAGE_'] = Router::$PAGE_LINKLIST;
+ $data['_LOGGEDIN_'] = true;
+
+ $data = hook_addlink_toolbar_render_header($data);
+ $this->assertEquals($str, $data[$str]);
+ $this->assertEquals(1, count($data['fields_toolbar']));
+
+ $data = array($str => $str);
+ $data['_PAGE_'] = $str;
+ $data['_LOGGEDIN_'] = true;
+ $data = hook_addlink_toolbar_render_header($data);
+ $this->assertEquals($str, $data[$str]);
+ $this->assertArrayNotHasKey('fields_toolbar', $data);
+ }
+
+ /**
+ * Test render_header hook while logged out.
+ */
+ function testAddlinkHeaderLoggedOut()
+ {
+ $str = 'stuff';
+ $data = array($str => $str);
+ $data['_PAGE_'] = Router::$PAGE_LINKLIST;
+ $data['_LOGGEDIN_'] = false;
+
+ $data = hook_addlink_toolbar_render_header($data);
+ $this->assertEquals($str, $data[$str]);
+ $this->assertArrayNotHasKey('fields_toolbar', $data);
+ }
+
+ /**
+ * Test render_includes hook while logged in.
+ */
+ function testAddlinkIncludesLoggedIn()
+ {
+ $str = 'stuff';
+ $data = array($str => $str);
+ $data['_PAGE_'] = Router::$PAGE_LINKLIST;
+ $data['_LOGGEDIN_'] = true;
+
+ $data = hook_addlink_toolbar_render_includes($data);
+ $this->assertEquals($str, $data[$str]);
+ $this->assertEquals(1, count($data['css_files']));
+
+ $str = 'stuff';
+ $data = array($str => $str);
+ $data['_PAGE_'] = $str;
+ $data['_LOGGEDIN_'] = true;
+
+ $data = hook_addlink_toolbar_render_includes($data);
+ $this->assertEquals($str, $data[$str]);
+ $this->assertArrayNotHasKey('css_files', $data);
+ }
+
+ /**
+ * Test render_includes hook.
+ * Should not affect css files while logged out.
+ */
+ function testAddlinkIncludesLoggedOut()
+ {
+ $str = 'stuff';
+ $data = array($str => $str);
+ $data['_PAGE_'] = Router::$PAGE_LINKLIST;
+ $data['_LOGGEDIN_'] = false;
+
+ $data = hook_addlink_toolbar_render_includes($data);
+ $this->assertEquals($str, $data[$str]);
+ $this->assertArrayNotHasKey('css_files', $data);
+ }
+}