From 5e148f8a529abf72256ef74ed149d56a5b27bd72 Mon Sep 17 00:00:00 2001 From: Teromene Date: Tue, 11 Oct 2016 16:37:42 +0100 Subject: Archive.org plugin: do not propose archival of private notes Fixes #637 --- tests/plugins/PluginArchiveorgTest.php | 102 +++++++++++++++++++++++++++++++-- 1 file changed, 98 insertions(+), 4 deletions(-) (limited to 'tests/plugins') diff --git a/tests/plugins/PluginArchiveorgTest.php b/tests/plugins/PluginArchiveorgTest.php index dbc52bc8..4daa4c9d 100644 --- a/tests/plugins/PluginArchiveorgTest.php +++ b/tests/plugins/PluginArchiveorgTest.php @@ -7,8 +7,8 @@ require_once 'plugins/archiveorg/archiveorg.php'; /** - * Class PlugQrcodeTest - * Unit test for the QR-Code plugin + * Class PluginArchiveorgTest + * Unit test for the archiveorg plugin */ class PluginArchiveorgTest extends PHPUnit_Framework_TestCase { @@ -21,21 +21,25 @@ class PluginArchiveorgTest extends PHPUnit_Framework_TestCase } /** - * Test render_linklist hook. + * Test render_linklist hook on external links. */ - function testArchiveorgLinklist() + function testArchiveorgLinklistOnExternalLinks() { $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']); @@ -44,5 +48,95 @@ class PluginArchiveorgTest extends PHPUnit_Framework_TestCase // plugin data $this->assertEquals(1, count($link['link_plugin'])); $this->assertNotFalse(strpos($link['link_plugin'][0], $str)); + + } + + /** + * Test render_linklist hook on internal links. + */ + function testArchiveorgLinklistOnInternalLinks() + { + $internalLink1 = 'http://shaarli.shaarli/?qvMAqg'; + $internalLinkRealURL1 = '?qvMAqg'; + + $internalLink2 = 'http://shaarli.shaarli/?2_7zww'; + $internalLinkRealURL2 = '?2_7zww'; + + $internalLink3 = 'http://shaarli.shaarli/?z7u-_Q'; + $internalLinkRealURL3 = '?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); + } + } -- cgit v1.2.3