wiki.techinc.nl/tests/phpunit/includes/search/SearchResultTest.php
Erik Bernhardson c2a308075f Convert SearchResultSet to typical iteration
The funky iteration here was at best annoying. Switch
it over to an iterator based approach with appropriate
BC code to simulate the old iteration style.

Depends-On: I19a8d6621a130811871dec9335038797627d9448
Change-Id: I9fccda15dd58a0dc35771d3b5cd7a6e8b02514a0
2018-06-11 13:35:41 -07:00

38 lines
1.4 KiB
PHP

<?php
class SearchResultTest extends MediawikiTestCase {
/**
* @covers SearchResult::getExtensionData
* @covers SearchResult::setExtensionData
*/
public function testExtensionData() {
$result = SearchResult::newFromTitle( Title::newMainPage() );
$this->assertEquals( [], $result->getExtensionData(), 'starts empty' );
$data = [ 'hello' => 'world' ];
$result->setExtensionData( function () use ( &$data ) {
return $data;
} );
$this->assertEquals( $data, $result->getExtensionData(), 'can set extension data' );
$data['this'] = 'that';
$this->assertEquals( $data, $result->getExtensionData(), 'refetches from callback' );
}
/**
* @covers SearchResult::getExtensionData
* @covers SearchResult::setExtensionData
*/
public function testExtensionDataArrayBC() {
$result = SearchResult::newFromTitle( Title::newMainPage() );
$data = [ 'hello' => 'world' ];
$this->hideDeprecated( 'SearchResult::setExtensionData with array argument' );
$this->assertEquals( [], $result->getExtensionData(), 'starts empty' );
$result->setExtensionData( $data );
$this->assertEquals( $data, $result->getExtensionData(), 'can set extension data' );
$data['this'] = 'that';
$this->assertNotEquals( $data, $result->getExtensionData(), 'shouldnt hold any reference' );
$result->setExtensionData( $data );
$this->assertEquals( $data, $result->getExtensionData(), 'can replace extension data' );
}
}