1a8dba452SMichael Hamann<?php 2a8dba452SMichael Hamann/** 3a8dba452SMichael Hamann * Tests the indexing functionality of the indexer 4a8dba452SMichael Hamann * 5a8dba452SMichael Hamann * @author Michael Hamann <michael@content-space.de> 6a8dba452SMichael Hamann */ 7a8dba452SMichael Hamannclass indexer_indexing_test extends DokuWikiTest { 8a8dba452SMichael Hamann public function setUp() { 9a8dba452SMichael Hamann parent::setUp(); 10a8dba452SMichael Hamann saveWikiText('testpage', 'Foo bar baz.', 'Test initialization'); 11a8dba452SMichael Hamann saveWikiText('notfound', 'Foon barn bazn.', 'Test initialization'); 12a8dba452SMichael Hamann idx_addPage('testpage'); 13a8dba452SMichael Hamann idx_addPage('notfound'); 14a8dba452SMichael Hamann } 15a8dba452SMichael Hamann 16a8dba452SMichael Hamann public function test_words() { 17a8dba452SMichael Hamann $indexer = idx_get_indexer(); 18a8dba452SMichael Hamann $query = array('baz', 'foo'); 19a8dba452SMichael Hamann $this->assertEquals(array('baz' => array('testpage' => 1), 'foo' => array('testpage' => 1)), $indexer->lookup($query)); 20a8dba452SMichael Hamann } 21a8dba452SMichael Hamann 22a8dba452SMichael Hamann public function test_numerically_identical_words() { 23a8dba452SMichael Hamann $indexer = idx_get_indexer(); 24a8dba452SMichael Hamann $indexer->addPageWords('testpage', '0x1 002'); 25a8dba452SMichael Hamann $indexer->addPageWords('notfound', '0x2'); 26a8dba452SMichael Hamann $query = array('001', '002'); 279f5b9cf1SMichael Hamann $this->assertEquals(array('001' => array(), '002' => array('testpage' => 1)), $indexer->lookup($query)); 28a8dba452SMichael Hamann } 29a8dba452SMichael Hamann 30a8dba452SMichael Hamann public function test_meta() { 31a8dba452SMichael Hamann $indexer = idx_get_indexer(); 32a8dba452SMichael Hamann $indexer->addMetaKeys('testpage', 'testkey', 'testvalue'); 33a8dba452SMichael Hamann $indexer->addMetaKeys('notfound', 'testkey', 'notvalue'); 34a8dba452SMichael Hamann $query = 'testvalue'; 35a8dba452SMichael Hamann $this->assertEquals(array('testpage'), $indexer->lookupKey('testkey', $query)); 36a8dba452SMichael Hamann } 37a8dba452SMichael Hamann 38a8dba452SMichael Hamann public function test_numerically_identical_meta_values() { 39a8dba452SMichael Hamann $indexer = idx_get_indexer(); 40a8dba452SMichael Hamann $indexer->addMetaKeys('testpage', 'numkey', array('0001', '01')); 41a8dba452SMichael Hamann $indexer->addMetaKeys('notfound', 'numkey', array('00001', '000001')); 42a8dba452SMichael Hamann $query = array('001', '01'); 43a8dba452SMichael Hamann $this->assertEquals(array('001' => array(), '01' => array('testpage')), $indexer->lookupKey('numkey', $query)); 44a8dba452SMichael Hamann } 45*5a1d0548SMichael Hamann 46*5a1d0548SMichael Hamann public function test_numeric_twice() { 47*5a1d0548SMichael Hamann $indexer = idx_get_indexer(); 48*5a1d0548SMichael Hamann $indexer->addPageWords('testpage', '| 1010 | Dallas |'); 49*5a1d0548SMichael Hamann $query = array('1010'); 50*5a1d0548SMichael Hamann $this->assertEquals(array('1010' => array('testpage' => 1)), $indexer->lookup($query)); 51*5a1d0548SMichael Hamann $indexer->addPageWords('notfound', '| 1010 | Dallas |'); 52*5a1d0548SMichael Hamann $this->assertEquals(array('1010' => array('testpage' => 1, 'notfound' => 1)), $indexer->lookup($query)); 53*5a1d0548SMichael Hamann } 54*5a1d0548SMichael Hamann 55*5a1d0548SMichael Hamann public function test_numeric_twice_meta() { 56*5a1d0548SMichael Hamann $indexer = idx_get_indexer(); 57*5a1d0548SMichael Hamann $indexer->addMetaKeys('testpage', 'onezero', array('1010')); 58*5a1d0548SMichael Hamann $indexer->addMetaKeys('notfound', 'onezero', array('1010')); 59*5a1d0548SMichael Hamann $query = '1010'; 60*5a1d0548SMichael Hamann $this->assertEquals(array('notfound', 'testpage'), $indexer->lookupKey('onezero', $query)); 61*5a1d0548SMichael Hamann } 62a8dba452SMichael Hamann}