Lines Matching +full:- +full:- +full:name +full:- +full:only

22         $indexer->addPage('testpage');
26 $result = $pageIndex->search('/^testpage$/');
27 $this->assertNotEmpty($result, 'testpage not found in page.idx');
38 $indexer->addPage('delpage');
39 $indexer->deletePage('delpage', true);
43 $result = $pageIndex->search('/^delpage$/');
44 $this->assertNotEmpty($result, 'delpage should persist in page.idx');
55 $indexer->addPage('old_name');
57 $indexer->renamePage('old_name', 'new_name');
59 // the entity is renamed in place: new name present, old name gone
61 …$this->assertNotEmpty($pageIndex->search('/^new_name$/'), 'new_name not found in page.idx after re…
62 …$this->assertEmpty($pageIndex->search('/^old_name$/'), 'old_name should be gone from page.idx afte…
68 * The rename only changes the page's name in the index, not its content, so all of
69 * its index associations - including the pages it links to (relation_references) -
70 * must survive under the new name. This is what allows a page renamed early during a
73 * (the move operation writes it only later), so re-indexing from disk cannot be relied
76 * @see https://github.com/dokuwiki/dokuwiki - regression after the indexer rewrite
83 $indexer->addPage('refsource');
89 $this->assertEquals(['refsource'], $search->lookupKey('relation_references', $value));
93 $indexer->renamePage('refsource', 'moved:newsource');
97 $this->assertEquals(
99 $search->lookupKey('relation_references', $value),
105 * renamePage onto a name that already has its own index entry
107 * The renamed page must take over the destination name (keeping its own data) while the
109 * name resolves only to the renamed entity and does not leak as a phantom page.
116 $indexer->addPage('src');
118 $indexer->addPage('dst');
120 $indexer->renamePage('src', 'dst');
126 $this->assertEquals(['dst'], $search->lookupKey('relation_references', $value));
129 $this->assertEquals([], $search->lookupKey('relation_references', $value));
131 // exactly one entity named 'dst', the old name and any phantom entry are gone
132 $allPages = $indexer->getAllPages();
133 …$this->assertSame(['dst'], array_values(array_filter($allPages, fn($p) => $p === 'dst' || $p === '…
145 $indexer->addPage('clearpage');
147 $this->assertFileExists($conf['indexdir'] . '/page.idx');
149 $indexer->clear();
151 $this->assertFileDoesNotExist($conf['indexdir'] . '/page.idx');
160 // with no version-modifying plugins active the raw INDEXER_VERSION is returned
161 $this->assertSame(\dokuwiki\Search\INDEXER_VERSION, $indexer->getVersion());
172 // a brand-new page has no .indexed tag yet, so it always needs indexing
173 $this->assertTrue($indexer->needsIndexing('needsidx'));
176 $indexer->addPage('needsidx');
177 $this->assertFalse($indexer->needsIndexing('needsidx'));
178 $this->assertTrue($indexer->needsIndexing('needsidx', true)); // force
189 $this->assertTrue($indexer->addPage('retadd'), 'addPage should report work done');
192 …$this->assertFalse($indexer->addPage('retadd'), 'addPage should report nothing to do when up to da…
195 … $this->assertTrue($indexer->addPage('retadd', true), 'forced addPage should report work done');
206 …$this->assertFalse($indexer->deletePage('retdel'), 'deletePage should report nothing to do for an …
209 $indexer->addPage('retdel');
210 $this->assertTrue($indexer->deletePage('retdel'), 'deletePage should report work done');
213 …$this->assertFalse($indexer->deletePage('retdel'), 'deletePage should report nothing to do once re…
217 * renamePage returns true when it renamed the page and false for the no-op cases
224 …$this->assertFalse($indexer->renamePage('retrename', 'retrename'), 'renamePage should report nothi…
227 …$this->assertFalse($indexer->renamePage('retrename', 'retrenamed'), 'renamePage should report noth…
230 $indexer->addPage('retrename');
231 …$this->assertTrue($indexer->renamePage('retrename', 'retrenamed'), 'renamePage should report work …
240 $indexer = (new Indexer())->setLogger(function ($msg) use (&$messages) {
245 $indexer->addPage('logpage');
248 $indexer->addPage('logpage');
249 $this->assertNotEmpty($messages);
250 $this->assertStringContainsString('up to date', end($messages));