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