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