From 818d2283465b76931db168a9e2c72f2c0f004ecc Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Wed, 31 Jul 2013 17:20:00 +0200 Subject: Fix the useheading cache invalidation for hidden pages, add tests This adds a new parameter to ft_backlinks() to ignore permissions which is needed for invalidating the cache of linking pages with useheading enabled. This also adds various test cases for ft_backlinks(). --- _test/tests/inc/fulltext_backlinks.test.php | 77 +++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 _test/tests/inc/fulltext_backlinks.test.php (limited to '_test') diff --git a/_test/tests/inc/fulltext_backlinks.test.php b/_test/tests/inc/fulltext_backlinks.test.php new file mode 100644 index 000000000..058e13498 --- /dev/null +++ b/_test/tests/inc/fulltext_backlinks.test.php @@ -0,0 +1,77 @@ + + */ +class fultext_backlinks_test extends DokuWikiTest { + + public function test_internallink() { + saveWikiText('test:internallinks', '[[internälLink]] [[..:internal link]]', 'Test initialization'); + idx_addPage('test:internallinks'); + + $this->assertEquals(array('test:internallinks'), ft_backlinks('internal_link')); + $this->assertEquals(array('test:internallinks'), ft_backlinks('test:internaellink')); + } + + public function test_links_in_footnotes() { + saveWikiText('test:link_footnotes', '(([[footnote]] [[:foÖtnotel]]))', 'Test initialization'); + idx_addPage('test:link_footnotes'); + + $this->assertEquals(array('test:link_footnotes'), ft_backlinks('test:footnote')); + $this->assertEquals(array('test:link_footnotes'), ft_backlinks('fooetnotel')); + } + + public function test_links_in_hidden_pages() { + global $conf; + $conf['hidepages'] = 'hidden:.*'; + saveWikiText('hidden:links', '[[wiki:hiddenlink|linktitle]]', 'Test initialization'); + idx_addPage('hidden:links'); + saveWikiText('visible:links', '[[wiki:hiddenlink]]', 'Test initialization'); + idx_addPage('visible:links'); + + $this->assertEquals(array('visible:links'), ft_backlinks('wiki:hiddenlink')); + $this->assertEquals(array('visible:links'), ft_backlinks('wiki:hiddenlink', false)); + $this->assertEquals(array('hidden:links', 'visible:links'), ft_backlinks('wiki:hiddenlink', true)); + } + + public function test_links_in_protected_pages() { + global $conf; + global $AUTH_ACL; + $conf['superuser'] = 'alice'; + $conf['useacl'] = 1; + + $AUTH_ACL = array( + '* @ALL 8', + 'secret:* @ALL 0', + ); + + $_SERVER['REMOTE_USER'] = 'eve'; + + saveWikiText('secret:links', '[[wiki:secretlink]]', 'Test initialization'); + idx_addPage('secret:links'); + saveWikiText('public:links', '[[wiki:secretlink]]', 'Test initialization'); + idx_addPage('public:links'); + + $this->assertEquals(array('public:links'), ft_backlinks('wiki:secretlink')); + $this->assertEquals(array('public:links'), ft_backlinks('wiki:secretlink', false)); + $this->assertEquals(array('public:links', 'secret:links'), ft_backlinks('wiki:secretlink', true)); + } + + public function test_links_in_deleted_pages() { + saveWikiText('test:internallinks', '[[internallink]] [[..:internal link]]', 'Test initialization'); + idx_addPage('test:internallinks'); + + $this->assertEquals(array('test:internallinks'), ft_backlinks('test:internallink')); + $this->assertEquals(array('test:internallinks'), ft_backlinks('internal_link')); + + saveWikiText('test:internallinks', '', 'Deleted'); + + $this->assertEquals(array(), ft_backlinks('test:internallink')); + $this->assertEquals(array(), ft_backlinks('internal_link')); + } +} -- cgit v1.2.3