]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - tests/plugins/PluginIssoTest.php
Isso plugin: add an icon in linklist if enabled
[github/shaarli/Shaarli.git] / tests / plugins / PluginIssoTest.php
index ea86a05c257318f2f31720084e3b295278a8fa8f..2c9efbcde4292a221392a725d73d488dd26c2c9e 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+use Shaarli\Config\ConfigManager;
 
 require_once 'plugins/isso/isso.php';
 
@@ -12,7 +13,7 @@ class PluginIssoTest extends PHPUnit_Framework_TestCase
     /**
      * Reset plugin path
      */
-    function setUp()
+    public function setUp()
     {
         PluginManager::$PLUGINS_PATH = 'plugins';
     }
@@ -20,7 +21,7 @@ class PluginIssoTest extends PHPUnit_Framework_TestCase
     /**
      * Test Isso init without errors.
      */
-    function testWallabagInitNoError()
+    public function testIssoInitNoError()
     {
         $conf = new ConfigManager('');
         $conf->set('plugins.ISSO_SERVER', 'value');
@@ -31,7 +32,7 @@ class PluginIssoTest extends PHPUnit_Framework_TestCase
     /**
      * Test Isso init with errors.
      */
-    function testWallabagInitError()
+    public function testIssoInitError()
     {
         $conf = new ConfigManager('');
         $errors = isso_init($conf);
@@ -41,7 +42,7 @@ class PluginIssoTest extends PHPUnit_Framework_TestCase
     /**
      * Test render_linklist hook with valid settings to display the comment form.
      */
-    function testIssoDisplayed()
+    public function testIssoDisplayed()
     {
         $conf = new ConfigManager('');
         $conf->set('plugins.ISSO_SERVER', 'value');
@@ -52,8 +53,9 @@ class PluginIssoTest extends PHPUnit_Framework_TestCase
             'title' => $str,
             'links' => array(
                 array(
+                    'id' => 12,
                     'url' => $str,
-                    'created' => DateTime::createFromFormat('Ymd_His', $date),
+                    'created' => DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $date),
                 )
             )
         );
@@ -66,14 +68,21 @@ class PluginIssoTest extends PHPUnit_Framework_TestCase
 
         // plugin data
         $this->assertEquals(1, count($data['plugin_end_zone']));
-        $this->assertNotFalse(strpos($data['plugin_end_zone'][0], $date));
+        $this->assertNotFalse(strpos(
+            $data['plugin_end_zone'][0],
+            'data-isso-id="'. $data['links'][0]['id'] .'"'
+        ));
+        $this->assertNotFalse(strpos(
+            $data['plugin_end_zone'][0],
+            'data-title="'. $data['links'][0]['id'] .'"'
+        ));
         $this->assertNotFalse(strpos($data['plugin_end_zone'][0], 'embed.min.js'));
     }
 
     /**
      * Test isso plugin when multiple links are displayed (shouldn't be displayed).
      */
-    function testIssoMultipleLinks()
+    public function testIssoMultipleLinks()
     {
         $conf = new ConfigManager('');
         $conf->set('plugins.ISSO_SERVER', 'value');
@@ -85,25 +94,30 @@ class PluginIssoTest extends PHPUnit_Framework_TestCase
             'title' => $str,
             'links' => array(
                 array(
+                    'id' => 12,
                     'url' => $str,
-                    'created' => DateTime::createFromFormat('Ymd_His', $date1),
+                    'shorturl' => $short1 = 'abcd',
+                    'created' => DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $date1),
                 ),
                 array(
+                    'id' => 13,
                     'url' => $str . '2',
-                    'created' => DateTime::createFromFormat('Ymd_His', $date2),
+                    'shorturl' => $short2 = 'efgh',
+                    'created' => DateTime::createFromFormat(LinkDB::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->assertContains('<a href="?'. $short1 .'#isso-thread">', $processed['links'][0]['link_plugin'][0]);
+        $this->assertContains('<a href="?'. $short2 .'#isso-thread">', $processed['links'][1]['link_plugin'][0]);
     }
 
     /**
      * Test isso plugin when using search (shouldn't be displayed).
      */
-    function testIssoNotDisplayedWhenSearch()
+    public function testIssoNotDisplayedWhenSearch()
     {
         $conf = new ConfigManager('');
         $conf->set('plugins.ISSO_SERVER', 'value');
@@ -114,8 +128,10 @@ class PluginIssoTest extends PHPUnit_Framework_TestCase
             'title' => $str,
             'links' => array(
                 array(
+                    'id' => 12,
                     'url' => $str,
-                    'created' => DateTime::createFromFormat('Ymd_His', $date),
+                    'shorturl' => $short1 = 'abcd',
+                    'created' => DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $date),
                 )
             ),
             'search_term' => $str
@@ -123,14 +139,14 @@ class PluginIssoTest extends PHPUnit_Framework_TestCase
 
         $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->assertContains('<a href="?'. $short1 .'#isso-thread">', $processed['links'][0]['link_plugin'][0]);
     }
 
     /**
      * Test isso plugin without server configuration (shouldn't be displayed).
      */
-    function testIssoWithoutConf()
+    public function testIssoWithoutConf()
     {
         $data = 'abc';
         $conf = new ConfigManager('');