xref: /dokuwiki/_test/tests/inc/indexer_indexing.test.php (revision a8dba4523d2ecd09dd69a68a36673eaf5c009c57)
1*a8dba452SMichael Hamann<?php
2*a8dba452SMichael Hamann/**
3*a8dba452SMichael Hamann * Tests the indexing functionality of the indexer
4*a8dba452SMichael Hamann *
5*a8dba452SMichael Hamann * @author Michael Hamann <michael@content-space.de>
6*a8dba452SMichael Hamann */
7*a8dba452SMichael Hamannclass indexer_indexing_test extends DokuWikiTest {
8*a8dba452SMichael Hamann    public function setUp() {
9*a8dba452SMichael Hamann        parent::setUp();
10*a8dba452SMichael Hamann        saveWikiText('testpage', 'Foo bar baz.', 'Test initialization');
11*a8dba452SMichael Hamann        saveWikiText('notfound', 'Foon barn bazn.', 'Test initialization');
12*a8dba452SMichael Hamann        idx_addPage('testpage');
13*a8dba452SMichael Hamann        idx_addPage('notfound');
14*a8dba452SMichael Hamann    }
15*a8dba452SMichael Hamann
16*a8dba452SMichael Hamann    public function test_words() {
17*a8dba452SMichael Hamann        $indexer = idx_get_indexer();
18*a8dba452SMichael Hamann        $query = array('baz', 'foo');
19*a8dba452SMichael Hamann        $this->assertEquals(array('baz' => array('testpage' => 1), 'foo' => array('testpage' => 1)), $indexer->lookup($query));
20*a8dba452SMichael Hamann    }
21*a8dba452SMichael Hamann
22*a8dba452SMichael Hamann    public function test_numerically_identical_words() {
23*a8dba452SMichael Hamann        $indexer = idx_get_indexer();
24*a8dba452SMichael Hamann        $indexer->addPageWords('testpage', '0x1 002');
25*a8dba452SMichael Hamann        $indexer->addPageWords('notfound', '0x2');
26*a8dba452SMichael Hamann        $query = array('001', '002');
27*a8dba452SMichael Hamann        $this->assertEquals(array('001' => array('notfound' => 1), '002' => array('testpage' => 1)), $indexer->lookup($query));
28*a8dba452SMichael Hamann    }
29*a8dba452SMichael Hamann
30*a8dba452SMichael Hamann    public function test_meta() {
31*a8dba452SMichael Hamann        $indexer = idx_get_indexer();
32*a8dba452SMichael Hamann        $indexer->addMetaKeys('testpage', 'testkey', 'testvalue');
33*a8dba452SMichael Hamann        $indexer->addMetaKeys('notfound', 'testkey', 'notvalue');
34*a8dba452SMichael Hamann        $query = 'testvalue';
35*a8dba452SMichael Hamann        $this->assertEquals(array('testpage'), $indexer->lookupKey('testkey', $query));
36*a8dba452SMichael Hamann    }
37*a8dba452SMichael Hamann
38*a8dba452SMichael Hamann    public function test_numerically_identical_meta_values() {
39*a8dba452SMichael Hamann        $indexer = idx_get_indexer();
40*a8dba452SMichael Hamann        $indexer->addMetaKeys('testpage', 'numkey', array('0001', '01'));
41*a8dba452SMichael Hamann        $indexer->addMetaKeys('notfound', 'numkey', array('00001', '000001'));
42*a8dba452SMichael Hamann        $query = array('001', '01');
43*a8dba452SMichael Hamann        $this->assertEquals(array('001' => array(), '01' => array('testpage')), $indexer->lookupKey('numkey', $query));
44*a8dba452SMichael Hamann    }
45*a8dba452SMichael Hamann}