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