xref: /dokuwiki/_test/tests/inc/search/search.test.php (revision 3fed52e12907b55aa9542b8d0da42c3992f8384f)
1<?php
2
3class 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 1 so I should get only pages from ns1
26      $data = array();
27      search($data, dirname(__FILE__) . '/data', 'search_allpages', array('depth' => 1), 'ns1');
28      $this->assertEquals(2, count($data));
29    }
30
31    function test_search_index(){
32      return;
33        $data = array();
34        search($data, dirname(__FILE__) . '/data', 'search_index',
35               array('ns' => 'ns2'));
36        $this->assertEquals(array_map(array($this, 'strip_index_data'), $data),
37                           array(
38                              array(
39                                'id'   => 'ns1',
40                                'type' => 'd',
41                                'level' => 1,
42                                'open' => false
43                              ), array(
44                                'id'   => 'ns2',
45                                'type' => 'd',
46                                'level' => 1,
47                                'open' => true
48                              ), array(
49                                'id' => 'ns2:page1',
50                                'type' => 'f',
51                                'level' => 2,
52                                'open' => true,
53                              ), ));
54        $data = array();
55        search($data, dirname(__FILE__) . '/data', 'search_index',
56               array('ns' => 'ns1/ns3'));
57        $this->assertEquals(array_map(array($this, 'strip_index_data'), $data),
58                           array(
59                              array(
60                                'id' => 'ns1',
61                                'type' => 'd',
62                                'level' => 1,
63                                'open' => true,
64                              ),
65                              array(
66                                'id' => 'ns1:ns3',
67                                'type' => 'd',
68                                'level' => 2,
69                                'open' => true,
70                              ),
71                              array(
72                                'id' => 'ns1:ns3:page3',
73                                'type' => 'f',
74                                'level' => 3,
75                                'open' => true,
76                              ),
77                              array(
78                                'id' => 'ns1:page1',
79                                'type' => 'f',
80                                'level' => 2,
81                                'open' => true,
82                              ),
83                              array(
84                                'id' => 'ns1:page2',
85                                'type' => 'f',
86                                'level' => 2,
87                                'open' => true,
88                              ),
89                              array(
90                                'id' => 'ns2',
91                                'type' => 'd',
92                                'level' => 1,
93                                'open' => false,
94                              ), ));
95        $data = array();
96        search($data, dirname(__FILE__) . '/data', 'search_index',
97               array('ns' => 'ns1/ns3', 'nofiles' => true));
98        $this->assertEquals(array_map(array($this, 'strip_index_data'), $data),
99                           array(
100                              array(
101                                'id' => 'ns1',
102                                'type' => 'd',
103                                'level' => 1,
104                                'open' => true,
105                              ),
106                              array(
107                                'id' => 'ns1:ns3',
108                                'type' => 'd',
109                                'level' => 2,
110                                'open' => true,
111                              ),
112                              array(
113                                'id' => 'ns2',
114                                'type' => 'd',
115                                'level' => 1,
116                                'open' => false,
117                              ), ));
118
119    }
120}
121//Setup VIM: ex: et ts=4 :
122