summaryrefslogtreecommitdiff
path: root/_test
diff options
context:
space:
mode:
authorMichael Hamann <michael@content-space.de>2013-07-31 17:20:00 +0200
committerChristopher Smith <chris@jalakai.co.uk>2013-08-01 11:11:52 +0200
commit818d2283465b76931db168a9e2c72f2c0f004ecc (patch)
tree21aef09b4fdc9946c50c33422847aef9c13d5494 /_test
parent40960973d7ca45411e13e072595928d13534989e (diff)
downloadrpg-818d2283465b76931db168a9e2c72f2c0f004ecc.tar.gz
rpg-818d2283465b76931db168a9e2c72f2c0f004ecc.tar.bz2
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().
Diffstat (limited to '_test')
-rw-r--r--_test/tests/inc/fulltext_backlinks.test.php77
1 files changed, 77 insertions, 0 deletions
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 @@
+<?php
+
+// must be run within Dokuwiki
+if (!defined('DOKU_INC')) die();
+
+/**
+ * Test cases for the link index
+ *
+ * @author Michael Hamann <michael@content-space.de>
+ */
+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'));
+ }
+}