xref: /dokuwiki/_test/tests/inc/search/search.test.php (revision 8628c4fa004048e67f75cd638b6be0b26fe3132c)
1<?php
2
3class search_test extends DokuWikiTest {
4    function strip_index_data($entry) {
5        $n_entry = array();
6        foreach(array('id', 'type', 'level', 'open') as $k) {
7            $n_entry[$k] = $entry[$k];
8        }
9        return $n_entry;
10    }
11
12    function test_search_index(){
13        $data = array();
14        search($data, dirname(__FILE__) . '/data', 'search_index',
15               array('ns' => 'ns2'));
16        $this->assertEquals(array_map(array($this, 'strip_index_data'), $data),
17                           array(
18                              array(
19                                'id'   => 'ns1',
20                                'type' => 'd',
21                                'level' => 1,
22                                'open' => false
23                              ), array(
24                                'id'   => 'ns2',
25                                'type' => 'd',
26                                'level' => 1,
27                                'open' => true
28                              ), array(
29                                'id' => 'ns2:page1',
30                                'type' => 'f',
31                                'level' => 2,
32                                'open' => true,
33                              ), ));
34        $data = array();
35        search($data, dirname(__FILE__) . '/data', 'search_index',
36               array('ns' => 'ns1/ns3'));
37        $this->assertEquals(array_map(array($this, 'strip_index_data'), $data),
38                           array(
39                              array(
40                                'id' => 'ns1',
41                                'type' => 'd',
42                                'level' => 1,
43                                'open' => true,
44                              ),
45                              array(
46                                'id' => 'ns1:ns3',
47                                'type' => 'd',
48                                'level' => 2,
49                                'open' => true,
50                              ),
51                              array(
52                                'id' => 'ns1:ns3:page3',
53                                'type' => 'f',
54                                'level' => 3,
55                                'open' => true,
56                              ),
57                              array(
58                                'id' => 'ns1:page1',
59                                'type' => 'f',
60                                'level' => 2,
61                                'open' => true,
62                              ),
63                              array(
64                                'id' => 'ns1:page2',
65                                'type' => 'f',
66                                'level' => 2,
67                                'open' => true,
68                              ),
69                              array(
70                                'id' => 'ns2',
71                                'type' => 'd',
72                                'level' => 1,
73                                'open' => false,
74                              ), ));
75        $data = array();
76        search($data, dirname(__FILE__) . '/data', 'search_index',
77               array('ns' => 'ns1/ns3', 'nofiles' => true));
78        $this->assertEquals(array_map(array($this, 'strip_index_data'), $data),
79                           array(
80                              array(
81                                'id' => 'ns1',
82                                'type' => 'd',
83                                'level' => 1,
84                                'open' => true,
85                              ),
86                              array(
87                                'id' => 'ns1:ns3',
88                                'type' => 'd',
89                                'level' => 2,
90                                'open' => true,
91                              ),
92                              array(
93                                'id' => 'ns2',
94                                'type' => 'd',
95                                'level' => 1,
96                                'open' => false,
97                              ), ));
98
99    }
100}
101//Setup VIM: ex: et ts=4 :
102