1*07ff0babSMichael Hamann<?php 2*07ff0babSMichael Hamann 3*07ff0babSMichael Hamann// must be run within Dokuwiki 4*07ff0babSMichael Hamannif (!defined('DOKU_INC')) die(); 5*07ff0babSMichael Hamann 6*07ff0babSMichael Hamann/** 7*07ff0babSMichael Hamann * Test cases for the link index 8*07ff0babSMichael Hamann * 9*07ff0babSMichael Hamann * @author Michael Hamann <michael@content-space.de> 10*07ff0babSMichael Hamann */ 11*07ff0babSMichael Hamannclass fultext_backlinks_test extends DokuWikiTest { 12*07ff0babSMichael Hamann 13*07ff0babSMichael Hamann public function test_internallink() { 14*07ff0babSMichael Hamann saveWikiText('test:internallinks', '[[internälLink]] [[..:internal link]]', 'Test initialization'); 15*07ff0babSMichael Hamann idx_addPage('test:internallinks'); 16*07ff0babSMichael Hamann 17*07ff0babSMichael Hamann $this->assertEquals(array('test:internallinks'), ft_backlinks('internal_link')); 18*07ff0babSMichael Hamann $this->assertEquals(array('test:internallinks'), ft_backlinks('test:internaellink')); 19*07ff0babSMichael Hamann } 20*07ff0babSMichael Hamann 21*07ff0babSMichael Hamann public function test_links_in_footnotes() { 22*07ff0babSMichael Hamann saveWikiText('test:link_footnotes', '(([[footnote]] [[:foÖtnotel]]))', 'Test initialization'); 23*07ff0babSMichael Hamann idx_addPage('test:link_footnotes'); 24*07ff0babSMichael Hamann 25*07ff0babSMichael Hamann $this->assertEquals(array('test:link_footnotes'), ft_backlinks('test:footnote')); 26*07ff0babSMichael Hamann $this->assertEquals(array('test:link_footnotes'), ft_backlinks('fooetnotel')); 27*07ff0babSMichael Hamann } 28*07ff0babSMichael Hamann 29*07ff0babSMichael Hamann public function test_links_in_hidden_pages() { 30*07ff0babSMichael Hamann global $conf; 31*07ff0babSMichael Hamann $conf['hidepages'] = 'hidden:.*'; 32*07ff0babSMichael Hamann saveWikiText('hidden:links', '[[wiki:hiddenlink|linktitle]]', 'Test initialization'); 33*07ff0babSMichael Hamann idx_addPage('hidden:links'); 34*07ff0babSMichael Hamann saveWikiText('visible:links', '[[wiki:hiddenlink]]', 'Test initialization'); 35*07ff0babSMichael Hamann idx_addPage('visible:links'); 36*07ff0babSMichael Hamann 37*07ff0babSMichael Hamann $this->assertEquals(array('visible:links'), ft_backlinks('wiki:hiddenlink')); 38*07ff0babSMichael Hamann $this->assertEquals(array('visible:links'), ft_backlinks('wiki:hiddenlink', false)); 39*07ff0babSMichael Hamann $this->assertEquals(array('hidden:links', 'visible:links'), ft_backlinks('wiki:hiddenlink', true)); 40*07ff0babSMichael Hamann } 41*07ff0babSMichael Hamann 42*07ff0babSMichael Hamann public function test_links_in_protected_pages() { 43*07ff0babSMichael Hamann global $conf; 44*07ff0babSMichael Hamann global $AUTH_ACL; 45*07ff0babSMichael Hamann $conf['superuser'] = 'alice'; 46*07ff0babSMichael Hamann $conf['useacl'] = 1; 47*07ff0babSMichael Hamann 48*07ff0babSMichael Hamann $AUTH_ACL = array( 49*07ff0babSMichael Hamann '* @ALL 8', 50*07ff0babSMichael Hamann 'secret:* @ALL 0', 51*07ff0babSMichael Hamann ); 52*07ff0babSMichael Hamann 53*07ff0babSMichael Hamann $_SERVER['REMOTE_USER'] = 'eve'; 54*07ff0babSMichael Hamann 55*07ff0babSMichael Hamann saveWikiText('secret:links', '[[wiki:secretlink]]', 'Test initialization'); 56*07ff0babSMichael Hamann idx_addPage('secret:links'); 57*07ff0babSMichael Hamann saveWikiText('public:links', '[[wiki:secretlink]]', 'Test initialization'); 58*07ff0babSMichael Hamann idx_addPage('public:links'); 59*07ff0babSMichael Hamann 60*07ff0babSMichael Hamann $this->assertEquals(array('public:links'), ft_backlinks('wiki:secretlink')); 61*07ff0babSMichael Hamann $this->assertEquals(array('public:links'), ft_backlinks('wiki:secretlink', false)); 62*07ff0babSMichael Hamann $this->assertEquals(array('public:links', 'secret:links'), ft_backlinks('wiki:secretlink', true)); 63*07ff0babSMichael Hamann } 64*07ff0babSMichael Hamann 65*07ff0babSMichael Hamann public function test_links_in_deleted_pages() { 66*07ff0babSMichael Hamann saveWikiText('test:internallinks', '[[internallink]] [[..:internal link]]', 'Test initialization'); 67*07ff0babSMichael Hamann idx_addPage('test:internallinks'); 68*07ff0babSMichael Hamann 69*07ff0babSMichael Hamann $this->assertEquals(array('test:internallinks'), ft_backlinks('test:internallink')); 70*07ff0babSMichael Hamann $this->assertEquals(array('test:internallinks'), ft_backlinks('internal_link')); 71*07ff0babSMichael Hamann 72*07ff0babSMichael Hamann saveWikiText('test:internallinks', '', 'Deleted'); 73*07ff0babSMichael Hamann 74*07ff0babSMichael Hamann $this->assertEquals(array(), ft_backlinks('test:internallink')); 75*07ff0babSMichael Hamann $this->assertEquals(array(), ft_backlinks('internal_link')); 76*07ff0babSMichael Hamann } 77*07ff0babSMichael Hamann} 78