xref: /dokuwiki/_test/tests/inc/indexer_indexing.test.php (revision 9f5b9cf15569babaa90f0d6f3dd58cefd5439bc5)
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');
27*9f5b9cf1SMichael 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    }
45a8dba452SMichael Hamann}