%PDF- %PDF-
Direktori : /proc/985914/root/www/varak.net/wiki.varak.net/tests/phpunit/mocks/search/ |
Current File : //proc/985914/root/www/varak.net/wiki.varak.net/tests/phpunit/mocks/search/MockSearchEngine.php |
<?php use MediaWiki\MediaWikiServices; class MockSearchEngine extends SearchEngine { /** @var SearchResult[][] */ private static $results = []; /** @var SearchResultSet[][] */ private static $interwikiResults = []; public static function clearMockResults() { self::$results = []; self::$interwikiResults = []; } /** * @param string $query The query searched for *after* initial * transformations have been applied. * @param SearchResult[] $results The results to return for $query */ public static function addMockResults( $query, array $results ) { $lc = MediaWikiServices::getInstance()->getLinkCache(); foreach ( $results as &$result ) { // Resolve deferred results; needed to work around T203279 if ( is_callable( $result ) ) { $result = $result(); } // TODO: better page ids? Does it matter? $lc->addGoodLinkObj( mt_rand(), $result->getTitle() ); } self::$results[$query] = $results; } /** * @param SearchResultSet[][] $interwikiResults */ public static function setMockInterwikiResults( array $interwikiResults ) { self::$interwikiResults = $interwikiResults; } protected function doSearchText( $term ) { if ( isset( self::$results[ $term ] ) ) { $results = array_slice( self::$results[ $term ], $this->offset, $this->limit ); } else { $results = []; } return new MockSearchResultSet( $results, self::$interwikiResults ); } }