Merge "MessageCache: Minor wgMsgCacheExpiry doc fix, and clear constant access"
[lhc/web/wiklou.git] / tests / phpunit / includes / search / SearchResultTraitTest.php
1 <?php
2
3 class SearchResultTraitTest extends MediawikiTestCase {
4 /**
5 * @covers SearchResultTrait::getExtensionData
6 * @covers SearchResultTrait::setExtensionData
7 */
8 public function testExtensionData() {
9 $result = new class() {
10 use SearchResultTrait;
11 };
12 $this->assertEquals( [], $result->getExtensionData(), 'starts empty' );
13
14 $data = [ 'hello' => 'world' ];
15 $result->setExtensionData( function () use ( &$data ) {
16 return $data;
17 } );
18 $this->assertEquals( $data, $result->getExtensionData(), 'can set extension data' );
19 $data['this'] = 'that';
20 $this->assertEquals( $data, $result->getExtensionData(), 'refetches from callback' );
21 }
22
23 /**
24 * @covers SearchResultTrait::getExtensionData
25 * @covers SearchResultTrait::setExtensionData
26 */
27 public function testExtensionDataArrayBC() {
28 $result = new class() {
29 use SearchResultTrait;
30 };
31 $data = [ 'hello' => 'world' ];
32 $this->hideDeprecated( 'SearchResultTrait::setExtensionData with array argument' );
33 $this->assertEquals( [], $result->getExtensionData(), 'starts empty' );
34 $result->setExtensionData( $data );
35 $this->assertEquals( $data, $result->getExtensionData(), 'can set extension data' );
36 $data['this'] = 'that';
37 $this->assertNotEquals( $data, $result->getExtensionData(), 'shouldnt hold any reference' );
38
39 $result->setExtensionData( $data );
40 $this->assertEquals( $data, $result->getExtensionData(), 'can replace extension data' );
41 }
42 }