<?php
+namespace Shaarli\Plugin\Isso;
+
+use DateTime;
+use Shaarli\Bookmark\Bookmark;
+use Shaarli\Config\ConfigManager;
+use Shaarli\Plugin\PluginManager;
+use Shaarli\TestCase;
require_once 'plugins/isso/isso.php';
*
* Test the Isso plugin (comment system).
*/
-class PluginIssoTest extends PHPUnit_Framework_TestCase
+class PluginIssoTest extends TestCase
{
/**
* Reset plugin path
*/
- function setUp()
+ public function setUp(): void
{
PluginManager::$PLUGINS_PATH = 'plugins';
}
/**
* Test Isso init without errors.
*/
- function testWallabagInitNoError()
+ public function testIssoInitNoError(): void
{
$conf = new ConfigManager('');
$conf->set('plugins.ISSO_SERVER', 'value');
/**
* Test Isso init with errors.
*/
- function testWallabagInitError()
+ public function testIssoInitError(): void
{
$conf = new ConfigManager('');
$errors = isso_init($conf);
/**
* Test render_linklist hook with valid settings to display the comment form.
*/
- function testIssoDisplayed()
+ public function testIssoDisplayed(): void
{
$conf = new ConfigManager('');
$conf->set('plugins.ISSO_SERVER', 'value');
array(
'id' => 12,
'url' => $str,
- 'created' => DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $date),
+ 'created' => DateTime::createFromFormat(Bookmark::LINK_DATE_FORMAT, $date),
)
)
);
}
/**
- * Test isso plugin when multiple links are displayed (shouldn't be displayed).
+ * Test isso plugin when multiple bookmarks are displayed (shouldn't be displayed).
*/
- function testIssoMultipleLinks()
+ public function testIssoMultipleLinks(): void
{
$conf = new ConfigManager('');
$conf->set('plugins.ISSO_SERVER', 'value');
array(
'id' => 12,
'url' => $str,
- 'created' => DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $date1),
+ 'shorturl' => $short1 = 'abcd',
+ 'created' => DateTime::createFromFormat(Bookmark::LINK_DATE_FORMAT, $date1),
),
array(
'id' => 13,
'url' => $str . '2',
- 'created' => DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $date2),
+ 'shorturl' => $short2 = 'efgh',
+ 'created' => DateTime::createFromFormat(Bookmark::LINK_DATE_FORMAT, $date2),
),
)
);
$processed = hook_isso_render_linklist($data, $conf);
- // data shouldn't be altered
- $this->assertEquals($data, $processed);
+ // link_plugin should be added for the icon
+ $this->assertContainsPolyfill('<a href="/shaare/'. $short1 .'#isso-thread">', $processed['links'][0]['link_plugin'][0]);
+ $this->assertContainsPolyfill('<a href="/shaare/'. $short2 .'#isso-thread">', $processed['links'][1]['link_plugin'][0]);
}
/**
* Test isso plugin when using search (shouldn't be displayed).
*/
- function testIssoNotDisplayedWhenSearch()
+ public function testIssoNotDisplayedWhenSearch(): void
{
$conf = new ConfigManager('');
$conf->set('plugins.ISSO_SERVER', 'value');
array(
'id' => 12,
'url' => $str,
- 'created' => DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $date),
+ 'shorturl' => $short1 = 'abcd',
+ 'created' => DateTime::createFromFormat(Bookmark::LINK_DATE_FORMAT, $date),
)
),
'search_term' => $str
$processed = hook_isso_render_linklist($data, $conf);
- // data shouldn't be altered
- $this->assertEquals($data, $processed);
+ // link_plugin should be added for the icon
+ $this->assertContainsPolyfill('<a href="/shaare/'. $short1 .'#isso-thread">', $processed['links'][0]['link_plugin'][0]);
}
/**
* Test isso plugin without server configuration (shouldn't be displayed).
*/
- function testIssoWithoutConf()
+ public function testIssoWithoutConf(): void
{
$data = 'abc';
$conf = new ConfigManager('');