Add unit tests for the QRCode plugin

+ coding style
This commit is contained in:
ArthurHoaro 2015-11-07 16:13:08 +01:00
parent 14c8efbe31
commit abb3ff38f5
2 changed files with 76 additions and 4 deletions

View file

@ -1,11 +1,15 @@
<?php <?php
/**
// TODO: Can't be tested in localhost * Plugin qrcode
* Add QRCode containing URL for each links.
* Display a QRCode icon in link list.
*/
/** /**
* Add qrcode icon to link_plugin when rendering linklist. * Add qrcode icon to link_plugin when rendering linklist.
* *
* @param $data - linklist data. * @param array $data - linklist data.
*
* @return mixed - linklist data with qrcode plugin. * @return mixed - linklist data with qrcode plugin.
*/ */
function hook_qrcode_render_linklist($data) function hook_qrcode_render_linklist($data)
@ -24,6 +28,7 @@ function hook_qrcode_render_linklist($data)
* When linklist is displayed, include qrcode JS files. * When linklist is displayed, include qrcode JS files.
* *
* @param array $data - footer data. * @param array $data - footer data.
*
* @return mixed - footer data with qrcode JS files added. * @return mixed - footer data with qrcode JS files added.
*/ */
function hook_qrcode_render_footer($data) function hook_qrcode_render_footer($data)
@ -33,4 +38,4 @@ function hook_qrcode_render_footer($data)
} }
return $data; return $data;
} }

View file

@ -0,0 +1,67 @@
<?php
/**
* PlugQrcodeTest.php
*/
require_once 'plugins/qrcode/qrcode.php';
require_once 'application/Router.php';
/**
* Class PlugQrcodeTest
* Unit test for the QR-Code plugin
*/
class PlugQrcodeTest extends PHPUnit_Framework_TestCase
{
/**
* Reset plugin path
*/
function setUp() {
PluginManager::$PLUGINS_PATH = 'plugins';
}
/**
* Test render_linklist hook.
*/
function testQrcodeLinklist()
{
$str = 'http://randomstr.com/test';
$data = array(
'title' => $str,
'links' => array(
array(
'url' => $str,
)
)
);
$data = hook_qrcode_render_linklist($data);
$link = $data['links'][0];
// data shouldn't be altered
$this->assertEquals($str, $data['title']);
$this->assertEquals($str, $link['url']);
// plugin data
$this->assertEquals(1, count($link['link_plugin']));
$this->assertNotFalse(strpos($link['link_plugin'][0], $str));
}
/**
* Test render_footer hook.
*/
function testQrcodeFooter()
{
$str = 'stuff';
$data = array($str => $str);
$data['_PAGE_'] = Router::$PAGE_LINKLIST;
$data = hook_qrcode_render_footer($data);
$this->assertEquals($str, $data[$str]);
$this->assertEquals(1, count($data['js_files']));
$data = array($str => $str);
$data['_PAGE_'] = $str;
$this->assertEquals($str, $data[$str]);
$this->assertArrayNotHasKey('js_files', $data);
}
}