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 { 8*1c33cec3SAndreas Gohr public function setUp() : void { 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 } 455a1d0548SMichael Hamann 465a1d0548SMichael Hamann public function test_numeric_twice() { 475a1d0548SMichael Hamann $indexer = idx_get_indexer(); 485a1d0548SMichael Hamann $indexer->addPageWords('testpage', '| 1010 | Dallas |'); 495a1d0548SMichael Hamann $query = array('1010'); 505a1d0548SMichael Hamann $this->assertEquals(array('1010' => array('testpage' => 1)), $indexer->lookup($query)); 515a1d0548SMichael Hamann $indexer->addPageWords('notfound', '| 1010 | Dallas |'); 525a1d0548SMichael Hamann $this->assertEquals(array('1010' => array('testpage' => 1, 'notfound' => 1)), $indexer->lookup($query)); 535a1d0548SMichael Hamann } 545a1d0548SMichael Hamann 555a1d0548SMichael Hamann public function test_numeric_twice_meta() { 565a1d0548SMichael Hamann $indexer = idx_get_indexer(); 575a1d0548SMichael Hamann $indexer->addMetaKeys('testpage', 'onezero', array('1010')); 585a1d0548SMichael Hamann $indexer->addMetaKeys('notfound', 'onezero', array('1010')); 595a1d0548SMichael Hamann $query = '1010'; 605a1d0548SMichael Hamann $this->assertEquals(array('notfound', 'testpage'), $indexer->lookupKey('onezero', $query)); 615a1d0548SMichael Hamann } 62f1ce98a5SPhy 63f1ce98a5SPhy public function test_numeric_zerostring_meta() { 64f1ce98a5SPhy $indexer = idx_get_indexer(); 65f1ce98a5SPhy $indexer->addMetaKeys('zero1', 'zerostring', array('0')); 66f1ce98a5SPhy $indexer->addMetaKeys('zero2', 'zerostring', array('0')); 67f1ce98a5SPhy $indexer->addMetaKeys('0', 'zerostring', array('zero')); 68f1ce98a5SPhy 69f1ce98a5SPhy $query = '0'; 70f1ce98a5SPhy $result = $indexer->lookupKey('zerostring', $query); 71f1ce98a5SPhy sort($result); 72f1ce98a5SPhy $this->assertEquals(array('zero1', 'zero2'), $result); 73f1ce98a5SPhy 74f1ce98a5SPhy $query = 'zero'; 75f1ce98a5SPhy $result = $indexer->lookupKey('zerostring', $query); 76f1ce98a5SPhy sort($result); 77f1ce98a5SPhy $this->assertEquals(array('0'), $result); 78f1ce98a5SPhy } 79a8dba452SMichael Hamann} 80