xref: /dokuwiki/_test/tests/inc/fulltext_backlinks.test.php (revision 66d935e75f9ebbb37332c14e0a9425170c7c9330)
107ff0babSMichael Hamann<?php
207ff0babSMichael Hamann
307ff0babSMichael Hamann// must be run within Dokuwiki
407ff0babSMichael Hamannif (!defined('DOKU_INC')) die();
507ff0babSMichael Hamann
607ff0babSMichael Hamann/**
707ff0babSMichael Hamann * Test cases for the link index
807ff0babSMichael Hamann *
907ff0babSMichael Hamann * @author Michael Hamann <michael@content-space.de>
1007ff0babSMichael Hamann */
11*66d935e7SMichael Hamannclass fulltext_backlinks_test extends DokuWikiTest {
1207ff0babSMichael Hamann
1307ff0babSMichael Hamann    public function test_internallink() {
1407ff0babSMichael Hamann        saveWikiText('test:internallinks', '[[internälLink]] [[..:internal link]]', 'Test initialization');
1507ff0babSMichael Hamann        idx_addPage('test:internallinks');
1607ff0babSMichael Hamann
1707ff0babSMichael Hamann        $this->assertEquals(array('test:internallinks'), ft_backlinks('internal_link'));
1807ff0babSMichael Hamann        $this->assertEquals(array('test:internallinks'), ft_backlinks('test:internaellink'));
1907ff0babSMichael Hamann    }
2007ff0babSMichael Hamann
2107ff0babSMichael Hamann    public function test_links_in_footnotes() {
2207ff0babSMichael Hamann        saveWikiText('test:link_footnotes', '(([[footnote]] [[:foÖtnotel]]))', 'Test initialization');
2307ff0babSMichael Hamann        idx_addPage('test:link_footnotes');
2407ff0babSMichael Hamann
2507ff0babSMichael Hamann        $this->assertEquals(array('test:link_footnotes'), ft_backlinks('test:footnote'));
2607ff0babSMichael Hamann        $this->assertEquals(array('test:link_footnotes'), ft_backlinks('fooetnotel'));
2707ff0babSMichael Hamann    }
2807ff0babSMichael Hamann
2907ff0babSMichael Hamann    public function test_links_in_hidden_pages() {
3007ff0babSMichael Hamann        global $conf;
3107ff0babSMichael Hamann        $conf['hidepages'] = 'hidden:.*';
3207ff0babSMichael Hamann        saveWikiText('hidden:links', '[[wiki:hiddenlink|linktitle]]', 'Test initialization');
3307ff0babSMichael Hamann        idx_addPage('hidden:links');
3407ff0babSMichael Hamann        saveWikiText('visible:links', '[[wiki:hiddenlink]]', 'Test initialization');
3507ff0babSMichael Hamann        idx_addPage('visible:links');
3607ff0babSMichael Hamann
3707ff0babSMichael Hamann        $this->assertEquals(array('visible:links'), ft_backlinks('wiki:hiddenlink'));
3807ff0babSMichael Hamann        $this->assertEquals(array('visible:links'), ft_backlinks('wiki:hiddenlink', false));
3907ff0babSMichael Hamann        $this->assertEquals(array('hidden:links', 'visible:links'), ft_backlinks('wiki:hiddenlink', true));
4007ff0babSMichael Hamann    }
4107ff0babSMichael Hamann
4207ff0babSMichael Hamann    public function test_links_in_protected_pages() {
4307ff0babSMichael Hamann        global $conf;
4407ff0babSMichael Hamann        global $AUTH_ACL;
4507ff0babSMichael Hamann        $conf['superuser'] = 'alice';
4607ff0babSMichael Hamann        $conf['useacl']    = 1;
4707ff0babSMichael Hamann
4807ff0babSMichael Hamann        $AUTH_ACL = array(
4907ff0babSMichael Hamann            '*           @ALL           8',
5007ff0babSMichael Hamann            'secret:*      @ALL           0',
5107ff0babSMichael Hamann        );
5207ff0babSMichael Hamann
5307ff0babSMichael Hamann        $_SERVER['REMOTE_USER'] = 'eve';
5407ff0babSMichael Hamann
5507ff0babSMichael Hamann        saveWikiText('secret:links', '[[wiki:secretlink]]', 'Test initialization');
5607ff0babSMichael Hamann        idx_addPage('secret:links');
5707ff0babSMichael Hamann        saveWikiText('public:links', '[[wiki:secretlink]]', 'Test initialization');
5807ff0babSMichael Hamann        idx_addPage('public:links');
5907ff0babSMichael Hamann
6007ff0babSMichael Hamann        $this->assertEquals(array('public:links'), ft_backlinks('wiki:secretlink'));
6107ff0babSMichael Hamann        $this->assertEquals(array('public:links'), ft_backlinks('wiki:secretlink', false));
6207ff0babSMichael Hamann        $this->assertEquals(array('public:links', 'secret:links'), ft_backlinks('wiki:secretlink', true));
6307ff0babSMichael Hamann    }
6407ff0babSMichael Hamann
6507ff0babSMichael Hamann    public function test_links_in_deleted_pages() {
6607ff0babSMichael Hamann        saveWikiText('test:internallinks', '[[internallink]] [[..:internal link]]', 'Test initialization');
6707ff0babSMichael Hamann        idx_addPage('test:internallinks');
6807ff0babSMichael Hamann
6907ff0babSMichael Hamann        $this->assertEquals(array('test:internallinks'), ft_backlinks('test:internallink'));
7007ff0babSMichael Hamann        $this->assertEquals(array('test:internallinks'), ft_backlinks('internal_link'));
7107ff0babSMichael Hamann
7207ff0babSMichael Hamann        saveWikiText('test:internallinks', '', 'Deleted');
7307ff0babSMichael Hamann
7407ff0babSMichael Hamann        $this->assertEquals(array(), ft_backlinks('test:internallink'));
7507ff0babSMichael Hamann        $this->assertEquals(array(), ft_backlinks('internal_link'));
7607ff0babSMichael Hamann    }
77*66d935e7SMichael Hamann
78*66d935e7SMichael Hamann    function test_parameters() {
79*66d935e7SMichael Hamann        saveWikiText('test:links', '[[wiki:syntax?do=export_raw]] [[:web:scripts:add_vhost.sh?do=export_raw]]', 'Init tests');
80*66d935e7SMichael Hamann        idx_addPage('test:links');
81*66d935e7SMichael Hamann
82*66d935e7SMichael Hamann        $this->assertEquals(array('test:links'), ft_backlinks('wiki:syntax'));
83*66d935e7SMichael Hamann        $this->assertEquals(array('test:links'), ft_backlinks('web:scripts:add_vhost.sh'));
84*66d935e7SMichael Hamann    }
8507ff0babSMichael Hamann}
86