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