wiki.techinc.nl/tests/phpunit/includes/search/ParserOutputSearchDataExtractorTest.php
Daimona Eaytoy 6b1a62e169 Fix more non-database tests accessing the database
Mock the needed services, or set fixed values to avoid DB lookups, when
possible. Add the test to the Database group otherwise, e.g. for things
like Skin and Parser that use global state all over the place.

Change-Id: I8d87013d89accaf04d0ac19cb4b7216290383eb5
2023-08-06 15:30:41 +00:00

72 lines
1.8 KiB
PHP

<?php
use MediaWiki\Search\ParserOutputSearchDataExtractor;
use MediaWiki\Title\Title;
/**
* @group Search
* @covers MediaWiki\Search\ParserOutputSearchDataExtractor
* @group Database
*/
class ParserOutputSearchDataExtractorTest extends MediaWikiLangTestCase {
public function testGetCategories() {
$categories = [
'Foo_bar' => 'Bar',
'New_page' => ''
];
$parserOutput = new ParserOutput( '', [], $categories );
$searchDataExtractor = new ParserOutputSearchDataExtractor();
$this->assertEquals(
[ 'Foo bar', 'New page' ],
$searchDataExtractor->getCategories( $parserOutput )
);
}
public function testGetExternalLinks() {
$parserOutput = new ParserOutput();
$parserOutput->addExternalLink( 'https://foo' );
$parserOutput->addExternalLink( 'https://bar' );
$searchDataExtractor = new ParserOutputSearchDataExtractor();
$this->assertEquals(
[ 'https://foo', 'https://bar' ],
$searchDataExtractor->getExternalLinks( $parserOutput )
);
}
public function testGetOutgoingLinks() {
$parserOutput = new ParserOutput();
$parserOutput->addLink( Title::makeTitle( NS_MAIN, 'Foo_bar' ), 1 );
$parserOutput->addLink( Title::makeTitle( NS_HELP, 'Contents' ), 2 );
$searchDataExtractor = new ParserOutputSearchDataExtractor();
// this indexes links with db key
$this->assertEquals(
[ 'Foo_bar', 'Help:Contents' ],
$searchDataExtractor->getOutgoingLinks( $parserOutput )
);
}
public function testGetTemplates() {
$title = Title::makeTitle( NS_TEMPLATE, 'Cite_news' );
$parserOutput = new ParserOutput();
$parserOutput->addTemplate( $title, 10, 100 );
$searchDataExtractor = new ParserOutputSearchDataExtractor();
$this->assertEquals(
[ 'Template:Cite news' ],
$searchDataExtractor->getTemplates( $parserOutput )
);
}
}