[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/_test/tests/inc/ -> fulltext_backlinks.test.php (source)

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