[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

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

   1  <?php
   2  
   3  class search_test extends DokuWikiTest {
   4  
   5      function strip_index_data($entry) {
   6          $n_entry = array();
   7          foreach(array('id', 'type', 'level', 'open') as $k) {
   8              $n_entry[$k] = $entry[$k];
   9          }
  10          return $n_entry;
  11      }
  12  
  13      function test_search_allpages(){
  14        $data = array();
  15  
  16        //depth is 0 hence we should recurse endlesly
  17        search($data, dirname(__FILE__) . '/data', 'search_allpages',  array('depth' => 0), 'ns1');
  18        $this->assertEquals(3, count($data));
  19  
  20        //depth is 1 and we start too deep to expect results
  21        $data = array();
  22        search($data, dirname(__FILE__) . '/data', 'search_allpages',  array('depth' => 1), 'ns1/ns3');
  23        $this->assertEquals(0, count($data));
  24  
  25        //depth is 2 so I should get only pages from ns1
  26        $data = array();
  27        search($data, dirname(__FILE__) . '/data', 'search_allpages', array('depth' => 2), 'ns1');
  28        $this->assertEquals(2, count($data));
  29      }
  30  
  31      function test_search_index(){
  32          $data = array();
  33          search($data, dirname(__FILE__) . '/data', 'search_index',
  34                 array('ns' => 'ns2'));
  35          $this->assertEquals(array_map(array($this, 'strip_index_data'), $data),
  36                             array(
  37                                array(
  38                                  'id'   => 'ns1',
  39                                  'type' => 'd',
  40                                  'level' => 1,
  41                                  'open' => false
  42                                ), array(
  43                                  'id'   => 'ns2',
  44                                  'type' => 'd',
  45                                  'level' => 1,
  46                                  'open' => true
  47                                ), array(
  48                                  'id' => 'ns2:page1',
  49                                  'type' => 'f',
  50                                  'level' => 2,
  51                                  'open' => true,
  52                                ), ));
  53          $data = array();
  54          search($data, dirname(__FILE__) . '/data', 'search_index',
  55                 array('ns' => 'ns1/ns3'));
  56          $this->assertEquals(array_map(array($this, 'strip_index_data'), $data),
  57                             array(
  58                                array(
  59                                  'id' => 'ns1',
  60                                  'type' => 'd',
  61                                  'level' => 1,
  62                                  'open' => true,
  63                                ),
  64                                array(
  65                                  'id' => 'ns1:ns3',
  66                                  'type' => 'd',
  67                                  'level' => 2,
  68                                  'open' => true,
  69                                ),
  70                                array(
  71                                  'id' => 'ns1:ns3:page3',
  72                                  'type' => 'f',
  73                                  'level' => 3,
  74                                  'open' => true,
  75                                ),
  76                                array(
  77                                  'id' => 'ns1:page1',
  78                                  'type' => 'f',
  79                                  'level' => 2,
  80                                  'open' => true,
  81                                ),
  82                                array(
  83                                  'id' => 'ns1:page2',
  84                                  'type' => 'f',
  85                                  'level' => 2,
  86                                  'open' => true,
  87                                ),
  88                                array(
  89                                  'id' => 'ns2',
  90                                  'type' => 'd',
  91                                  'level' => 1,
  92                                  'open' => false,
  93                                ), ));
  94          $data = array();
  95          search($data, dirname(__FILE__) . '/data', 'search_index',
  96                 array('ns' => 'ns1/ns3', 'nofiles' => true));
  97          $this->assertEquals(array_map(array($this, 'strip_index_data'), $data),
  98                             array(
  99                                array(
 100                                  'id' => 'ns1',
 101                                  'type' => 'd',
 102                                  'level' => 1,
 103                                  'open' => true,
 104                                ),
 105                                array(
 106                                  'id' => 'ns1:ns3',
 107                                  'type' => 'd',
 108                                  'level' => 2,
 109                                  'open' => true,
 110                                ),
 111                                array(
 112                                  'id' => 'ns2',
 113                                  'type' => 'd',
 114                                  'level' => 1,
 115                                  'open' => false,
 116                                ), ));
 117  
 118      }
 119  }
 120  //Setup VIM: ex: et ts=4 :