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