X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=tests%2Fplugins%2FPluginArchiveorgTest.php;h=467dc3d030583bed63a7382e6ea3afdd79f5be50;hb=a5a9cf23acd1248585173aa32757d9720b5f2d62;hp=dbc52bc89ad16a138b1ea746106fa67841d2dfb4;hpb=fd006c630b64146edc402b68d8503c716f8a55d6;p=github%2Fshaarli%2FShaarli.git diff --git a/tests/plugins/PluginArchiveorgTest.php b/tests/plugins/PluginArchiveorgTest.php index dbc52bc8..467dc3d0 100644 --- a/tests/plugins/PluginArchiveorgTest.php +++ b/tests/plugins/PluginArchiveorgTest.php @@ -1,41 +1,65 @@ savedScriptName = $_SERVER['SCRIPT_NAME'] ?? null; + $_SERVER['SCRIPT_NAME'] = '/index.php'; + } + + public function tearDown(): void + { + unset($_SERVER['SERVER_PORT']); + unset($_SERVER['SERVER_NAME']); + $_SERVER['SCRIPT_NAME'] = $this->savedScriptName; } /** - * Test render_linklist hook. + * Test render_linklist hook on external bookmarks. */ - function testArchiveorgLinklist() + public function testArchiveorgLinklistOnExternalLinks(): void { $str = 'http://randomstr.com/test'; + $data = array( 'title' => $str, 'links' => array( array( 'url' => $str, + 'private' => 0, + 'real_url' => $str ) ) ); $data = hook_archiveorg_render_linklist($data); + $link = $data['links'][0]; // data shouldn't be altered $this->assertEquals($str, $data['title']); @@ -45,4 +69,90 @@ class PluginArchiveorgTest extends PHPUnit_Framework_TestCase $this->assertEquals(1, count($link['link_plugin'])); $this->assertNotFalse(strpos($link['link_plugin'][0], $str)); } + + /** + * Test render_linklist hook on internal bookmarks. + */ + public function testArchiveorgLinklistOnInternalLinks(): void + { + $internalLink1 = 'http://shaarli.shaarli/shaare/qvMAqg'; + $internalLinkRealURL1 = '/shaare/qvMAqg'; + + $internalLink2 = 'http://shaarli.shaarli/shaare/2_7zww'; + $internalLinkRealURL2 = '/shaare/2_7zww'; + + $internalLink3 = 'http://shaarli.shaarli/shaare/z7u-_Q'; + $internalLinkRealURL3 = '/shaare/z7u-_Q'; + + $data = array( + 'title' => $internalLink1, + 'links' => array( + array( + 'url' => $internalLink1, + 'private' => 0, + 'real_url' => $internalLinkRealURL1 + ), + array( + 'url' => $internalLink1, + 'private' => 1, + 'real_url' => $internalLinkRealURL1 + ), + array( + 'url' => $internalLink2, + 'private' => 0, + 'real_url' => $internalLinkRealURL2 + ), + array( + 'url' => $internalLink2, + 'private' => 1, + 'real_url' => $internalLinkRealURL2 + ), + array( + 'url' => $internalLink3, + 'private' => 0, + 'real_url' => $internalLinkRealURL3 + ), + array( + 'url' => $internalLink3, + 'private' => 1, + 'real_url' => $internalLinkRealURL3 + ) + ) + ); + + $data = hook_archiveorg_render_linklist($data); + + // Case n°1: first link type, public + $link = $data['links'][0]; + + $this->assertEquals(1, count($link['link_plugin'])); + $this->assertNotFalse(strpos($link['link_plugin'][0], $internalLink1)); + + // Case n°2: first link type, private + $link = $data['links'][1]; + + $this->assertArrayNotHasKey('link_plugin', $link); + + // Case n°3: second link type, public + $link = $data['links'][2]; + + $this->assertEquals(1, count($link['link_plugin'])); + $this->assertNotFalse(strpos($link['link_plugin'][0], $internalLink2)); + + // Case n°4: second link type, private + $link = $data['links'][3]; + + $this->assertArrayNotHasKey('link_plugin', $link); + + // Case n°5: third link type, public + $link = $data['links'][4]; + + $this->assertEquals(1, count($link['link_plugin'])); + $this->assertNotFalse(strpos($link['link_plugin'][0], $internalLink3)); + + // Case n°6: third link type, private + $link = $data['links'][5]; + + $this->assertArrayNotHasKey('link_plugin', $link); + } }