1f8369d7dSTobias Sarnowski<?php 2f8369d7dSTobias Sarnowski 3f8369d7dSTobias Sarnowskiclass search_test extends DokuWikiTest { 43fed52e1SGuillaume 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 133fed52e1SGuillaume Turri function test_search_allpages(){ 143fed52e1SGuillaume Turri $data = array(); 153fed52e1SGuillaume Turri 163fed52e1SGuillaume Turri //depth is 0 hence we should recurse endlesly 173fed52e1SGuillaume Turri search($data, dirname(__FILE__) . '/data', 'search_allpages', array('depth' => 0), 'ns1'); 183fed52e1SGuillaume Turri $this->assertEquals(3, count($data)); 193fed52e1SGuillaume Turri 203fed52e1SGuillaume Turri //depth is 1 and we start too deep to expect results 213fed52e1SGuillaume Turri $data = array(); 223fed52e1SGuillaume Turri search($data, dirname(__FILE__) . '/data', 'search_allpages', array('depth' => 1), 'ns1/ns3'); 233fed52e1SGuillaume Turri $this->assertEquals(0, count($data)); 243fed52e1SGuillaume Turri 25*5737a81eSMichael Hamann //depth is 2 so I should get only pages from ns1 263fed52e1SGuillaume Turri $data = array(); 27*5737a81eSMichael Hamann search($data, dirname(__FILE__) . '/data', 'search_allpages', array('depth' => 2), 'ns1'); 283fed52e1SGuillaume Turri $this->assertEquals(2, count($data)); 293fed52e1SGuillaume Turri } 303fed52e1SGuillaume Turri 31f8369d7dSTobias Sarnowski function test_search_index(){ 32f8369d7dSTobias Sarnowski $data = array(); 33f8369d7dSTobias Sarnowski search($data, dirname(__FILE__) . '/data', 'search_index', 34f8369d7dSTobias Sarnowski array('ns' => 'ns2')); 35f8369d7dSTobias Sarnowski $this->assertEquals(array_map(array($this, 'strip_index_data'), $data), 36f8369d7dSTobias Sarnowski array( 37f8369d7dSTobias Sarnowski array( 38f8369d7dSTobias Sarnowski 'id' => 'ns1', 39f8369d7dSTobias Sarnowski 'type' => 'd', 40f8369d7dSTobias Sarnowski 'level' => 1, 41f8369d7dSTobias Sarnowski 'open' => false 42f8369d7dSTobias Sarnowski ), array( 43f8369d7dSTobias Sarnowski 'id' => 'ns2', 44f8369d7dSTobias Sarnowski 'type' => 'd', 45f8369d7dSTobias Sarnowski 'level' => 1, 46f8369d7dSTobias Sarnowski 'open' => true 47f8369d7dSTobias Sarnowski ), array( 48f8369d7dSTobias Sarnowski 'id' => 'ns2:page1', 49f8369d7dSTobias Sarnowski 'type' => 'f', 50f8369d7dSTobias Sarnowski 'level' => 2, 51f8369d7dSTobias Sarnowski 'open' => true, 52f8369d7dSTobias Sarnowski ), )); 53f8369d7dSTobias Sarnowski $data = array(); 54f8369d7dSTobias Sarnowski search($data, dirname(__FILE__) . '/data', 'search_index', 55f8369d7dSTobias Sarnowski array('ns' => 'ns1/ns3')); 56f8369d7dSTobias Sarnowski $this->assertEquals(array_map(array($this, 'strip_index_data'), $data), 57f8369d7dSTobias Sarnowski array( 58f8369d7dSTobias Sarnowski array( 59f8369d7dSTobias Sarnowski 'id' => 'ns1', 60f8369d7dSTobias Sarnowski 'type' => 'd', 61f8369d7dSTobias Sarnowski 'level' => 1, 62f8369d7dSTobias Sarnowski 'open' => true, 63f8369d7dSTobias Sarnowski ), 64f8369d7dSTobias Sarnowski array( 65f8369d7dSTobias Sarnowski 'id' => 'ns1:ns3', 66f8369d7dSTobias Sarnowski 'type' => 'd', 67f8369d7dSTobias Sarnowski 'level' => 2, 68f8369d7dSTobias Sarnowski 'open' => true, 69f8369d7dSTobias Sarnowski ), 70f8369d7dSTobias Sarnowski array( 71f8369d7dSTobias Sarnowski 'id' => 'ns1:ns3:page3', 72f8369d7dSTobias Sarnowski 'type' => 'f', 73f8369d7dSTobias Sarnowski 'level' => 3, 74f8369d7dSTobias Sarnowski 'open' => true, 75f8369d7dSTobias Sarnowski ), 76f8369d7dSTobias Sarnowski array( 77f8369d7dSTobias Sarnowski 'id' => 'ns1:page1', 78f8369d7dSTobias Sarnowski 'type' => 'f', 79f8369d7dSTobias Sarnowski 'level' => 2, 80f8369d7dSTobias Sarnowski 'open' => true, 81f8369d7dSTobias Sarnowski ), 82f8369d7dSTobias Sarnowski array( 83f8369d7dSTobias Sarnowski 'id' => 'ns1:page2', 84f8369d7dSTobias Sarnowski 'type' => 'f', 85f8369d7dSTobias Sarnowski 'level' => 2, 86f8369d7dSTobias Sarnowski 'open' => true, 87f8369d7dSTobias Sarnowski ), 88f8369d7dSTobias Sarnowski array( 89f8369d7dSTobias Sarnowski 'id' => 'ns2', 90f8369d7dSTobias Sarnowski 'type' => 'd', 91f8369d7dSTobias Sarnowski 'level' => 1, 92f8369d7dSTobias Sarnowski 'open' => false, 93f8369d7dSTobias Sarnowski ), )); 94f8369d7dSTobias Sarnowski $data = array(); 95f8369d7dSTobias Sarnowski search($data, dirname(__FILE__) . '/data', 'search_index', 96f8369d7dSTobias Sarnowski array('ns' => 'ns1/ns3', 'nofiles' => true)); 97f8369d7dSTobias Sarnowski $this->assertEquals(array_map(array($this, 'strip_index_data'), $data), 98f8369d7dSTobias Sarnowski array( 99f8369d7dSTobias Sarnowski array( 100f8369d7dSTobias Sarnowski 'id' => 'ns1', 101f8369d7dSTobias Sarnowski 'type' => 'd', 102f8369d7dSTobias Sarnowski 'level' => 1, 103f8369d7dSTobias Sarnowski 'open' => true, 104f8369d7dSTobias Sarnowski ), 105f8369d7dSTobias Sarnowski array( 106f8369d7dSTobias Sarnowski 'id' => 'ns1:ns3', 107f8369d7dSTobias Sarnowski 'type' => 'd', 108f8369d7dSTobias Sarnowski 'level' => 2, 109f8369d7dSTobias Sarnowski 'open' => true, 110f8369d7dSTobias Sarnowski ), 111f8369d7dSTobias Sarnowski array( 112f8369d7dSTobias Sarnowski 'id' => 'ns2', 113f8369d7dSTobias Sarnowski 'type' => 'd', 114f8369d7dSTobias Sarnowski 'level' => 1, 115f8369d7dSTobias Sarnowski 'open' => false, 116f8369d7dSTobias Sarnowski ), )); 117f8369d7dSTobias Sarnowski 118f8369d7dSTobias Sarnowski } 119f8369d7dSTobias Sarnowski} 120f8369d7dSTobias Sarnowski//Setup VIM: ex: et ts=4 : 121