1f8369d7dSTobias Sarnowski<?php 2f8369d7dSTobias Sarnowski 3f8369d7dSTobias Sarnowskiclass search_test extends DokuWikiTest { 4*3fed52e1SGuillaume Turri 5f8369d7dSTobias Sarnowski function strip_index_data($entry) { 6f8369d7dSTobias Sarnowski $n_entry = array(); 7f8369d7dSTobias Sarnowski foreach(array('id', 'type', 'level', 'open') as $k) { 8f8369d7dSTobias Sarnowski $n_entry[$k] = $entry[$k]; 9f8369d7dSTobias Sarnowski } 10f8369d7dSTobias Sarnowski return $n_entry; 11f8369d7dSTobias Sarnowski } 12f8369d7dSTobias Sarnowski 13*3fed52e1SGuillaume Turri function test_search_allpages(){ 14*3fed52e1SGuillaume Turri $data = array(); 15*3fed52e1SGuillaume Turri 16*3fed52e1SGuillaume Turri //depth is 0 hence we should recurse endlesly 17*3fed52e1SGuillaume Turri search($data, dirname(__FILE__) . '/data', 'search_allpages', array('depth' => 0), 'ns1'); 18*3fed52e1SGuillaume Turri $this->assertEquals(3, count($data)); 19*3fed52e1SGuillaume Turri 20*3fed52e1SGuillaume Turri //depth is 1 and we start too deep to expect results 21*3fed52e1SGuillaume Turri $data = array(); 22*3fed52e1SGuillaume Turri search($data, dirname(__FILE__) . '/data', 'search_allpages', array('depth' => 1), 'ns1/ns3'); 23*3fed52e1SGuillaume Turri $this->assertEquals(0, count($data)); 24*3fed52e1SGuillaume Turri 25*3fed52e1SGuillaume Turri //depth is 1 so I should get only pages from ns1 26*3fed52e1SGuillaume Turri $data = array(); 27*3fed52e1SGuillaume Turri search($data, dirname(__FILE__) . '/data', 'search_allpages', array('depth' => 1), 'ns1'); 28*3fed52e1SGuillaume Turri $this->assertEquals(2, count($data)); 29*3fed52e1SGuillaume Turri } 30*3fed52e1SGuillaume Turri 31f8369d7dSTobias Sarnowski function test_search_index(){ 32*3fed52e1SGuillaume Turri return; 33f8369d7dSTobias Sarnowski $data = array(); 34f8369d7dSTobias Sarnowski search($data, dirname(__FILE__) . '/data', 'search_index', 35f8369d7dSTobias Sarnowski array('ns' => 'ns2')); 36f8369d7dSTobias Sarnowski $this->assertEquals(array_map(array($this, 'strip_index_data'), $data), 37f8369d7dSTobias Sarnowski array( 38f8369d7dSTobias Sarnowski array( 39f8369d7dSTobias Sarnowski 'id' => 'ns1', 40f8369d7dSTobias Sarnowski 'type' => 'd', 41f8369d7dSTobias Sarnowski 'level' => 1, 42f8369d7dSTobias Sarnowski 'open' => false 43f8369d7dSTobias Sarnowski ), array( 44f8369d7dSTobias Sarnowski 'id' => 'ns2', 45f8369d7dSTobias Sarnowski 'type' => 'd', 46f8369d7dSTobias Sarnowski 'level' => 1, 47f8369d7dSTobias Sarnowski 'open' => true 48f8369d7dSTobias Sarnowski ), array( 49f8369d7dSTobias Sarnowski 'id' => 'ns2:page1', 50f8369d7dSTobias Sarnowski 'type' => 'f', 51f8369d7dSTobias Sarnowski 'level' => 2, 52f8369d7dSTobias Sarnowski 'open' => true, 53f8369d7dSTobias Sarnowski ), )); 54f8369d7dSTobias Sarnowski $data = array(); 55f8369d7dSTobias Sarnowski search($data, dirname(__FILE__) . '/data', 'search_index', 56f8369d7dSTobias Sarnowski array('ns' => 'ns1/ns3')); 57f8369d7dSTobias Sarnowski $this->assertEquals(array_map(array($this, 'strip_index_data'), $data), 58f8369d7dSTobias Sarnowski array( 59f8369d7dSTobias Sarnowski array( 60f8369d7dSTobias Sarnowski 'id' => 'ns1', 61f8369d7dSTobias Sarnowski 'type' => 'd', 62f8369d7dSTobias Sarnowski 'level' => 1, 63f8369d7dSTobias Sarnowski 'open' => true, 64f8369d7dSTobias Sarnowski ), 65f8369d7dSTobias Sarnowski array( 66f8369d7dSTobias Sarnowski 'id' => 'ns1:ns3', 67f8369d7dSTobias Sarnowski 'type' => 'd', 68f8369d7dSTobias Sarnowski 'level' => 2, 69f8369d7dSTobias Sarnowski 'open' => true, 70f8369d7dSTobias Sarnowski ), 71f8369d7dSTobias Sarnowski array( 72f8369d7dSTobias Sarnowski 'id' => 'ns1:ns3:page3', 73f8369d7dSTobias Sarnowski 'type' => 'f', 74f8369d7dSTobias Sarnowski 'level' => 3, 75f8369d7dSTobias Sarnowski 'open' => true, 76f8369d7dSTobias Sarnowski ), 77f8369d7dSTobias Sarnowski array( 78f8369d7dSTobias Sarnowski 'id' => 'ns1:page1', 79f8369d7dSTobias Sarnowski 'type' => 'f', 80f8369d7dSTobias Sarnowski 'level' => 2, 81f8369d7dSTobias Sarnowski 'open' => true, 82f8369d7dSTobias Sarnowski ), 83f8369d7dSTobias Sarnowski array( 84f8369d7dSTobias Sarnowski 'id' => 'ns1:page2', 85f8369d7dSTobias Sarnowski 'type' => 'f', 86f8369d7dSTobias Sarnowski 'level' => 2, 87f8369d7dSTobias Sarnowski 'open' => true, 88f8369d7dSTobias Sarnowski ), 89f8369d7dSTobias Sarnowski array( 90f8369d7dSTobias Sarnowski 'id' => 'ns2', 91f8369d7dSTobias Sarnowski 'type' => 'd', 92f8369d7dSTobias Sarnowski 'level' => 1, 93f8369d7dSTobias Sarnowski 'open' => false, 94f8369d7dSTobias Sarnowski ), )); 95f8369d7dSTobias Sarnowski $data = array(); 96f8369d7dSTobias Sarnowski search($data, dirname(__FILE__) . '/data', 'search_index', 97f8369d7dSTobias Sarnowski array('ns' => 'ns1/ns3', 'nofiles' => true)); 98f8369d7dSTobias Sarnowski $this->assertEquals(array_map(array($this, 'strip_index_data'), $data), 99f8369d7dSTobias Sarnowski array( 100f8369d7dSTobias Sarnowski array( 101f8369d7dSTobias Sarnowski 'id' => 'ns1', 102f8369d7dSTobias Sarnowski 'type' => 'd', 103f8369d7dSTobias Sarnowski 'level' => 1, 104f8369d7dSTobias Sarnowski 'open' => true, 105f8369d7dSTobias Sarnowski ), 106f8369d7dSTobias Sarnowski array( 107f8369d7dSTobias Sarnowski 'id' => 'ns1:ns3', 108f8369d7dSTobias Sarnowski 'type' => 'd', 109f8369d7dSTobias Sarnowski 'level' => 2, 110f8369d7dSTobias Sarnowski 'open' => true, 111f8369d7dSTobias Sarnowski ), 112f8369d7dSTobias Sarnowski array( 113f8369d7dSTobias Sarnowski 'id' => 'ns2', 114f8369d7dSTobias Sarnowski 'type' => 'd', 115f8369d7dSTobias Sarnowski 'level' => 1, 116f8369d7dSTobias Sarnowski 'open' => false, 117f8369d7dSTobias Sarnowski ), )); 118f8369d7dSTobias Sarnowski 119f8369d7dSTobias Sarnowski } 120f8369d7dSTobias Sarnowski} 121f8369d7dSTobias Sarnowski//Setup VIM: ex: et ts=4 : 122