mediawiki-extensions-Cite/tests/phpunit/CiteHooksTest.php
Thiemo Kreuz 7157c7f494 Add @license to all files
Note this codebase appears to be dual-licensed. Some files mention MIT,
but extension.json and some other files mention GPL.

Since WMDE typically uses GPL, I will continue to mark the files we
created as such.

Change-Id: I126da10f7fb13a6d4c99e96e72d024b2e5ecee06
2019-11-19 11:31:08 +01:00

82 lines
2 KiB
PHP

<?php
namespace Cite\Tests;
use ApiQuerySiteinfo;
use CiteHooks;
use HashBagOStuff;
use LinksUpdate;
use Title;
use WANObjectCache;
/**
* @coversDefaultClass \CiteHooks
*
* @license GPL-2.0-or-later
*/
class CiteHooksTest extends \MediaWikiIntegrationTestCase {
protected function setUp() : void {
parent::setUp();
$this->setMwGlobals( [
'wgCiteStoreReferencesData' => true,
] );
}
/**
* @covers ::onLinksUpdateComplete
*/
public function testOnLinksUpdateComplete() {
$cache = $this->getMockBuilder( WANObjectCache::class )
->setConstructorArgs( [ [ 'cache' => new HashBagOStuff() ] ] )
->setMethods( [ 'makeKey', 'relayPurge' ] )
->getMock();
$cache->method( 'makeKey' )
->willReturn( '<KEY>' );
// What we actually want to check here is if WANObjectCache::delete() is called, but it's
// final and can't be mocked.
$cache->expects( $this->once() )
->method( 'relayPurge' )
->with(
'WANCache:v:<KEY>',
WANObjectCache::MAX_COMMIT_DELAY,
WANObjectCache::HOLDOFF_TTL_NONE
);
$this->setService( 'MainWANObjectCache', $cache );
$linksUpdate = $this->createMock( LinksUpdate::class );
$linksUpdate->method( 'getAddedProperties' )
->willReturn( [ 'references-1' => true ] );
$linksUpdate->method( 'getTitle' )
->willReturn( $this->createMock( Title::class ) );
CiteHooks::onLinksUpdateComplete( $linksUpdate );
}
/**
* @covers ::onResourceLoaderGetConfigVars
*/
public function testOnResourceLoaderGetConfigVars() {
$vars = [];
CiteHooks::onResourceLoaderGetConfigVars( $vars );
$this->assertArrayHasKey( 'wgCiteVisualEditorOtherGroup', $vars );
$this->assertArrayHasKey( 'wgCiteResponsiveReferences', $vars );
}
/**
* @covers ::onAPIQuerySiteInfoGeneralInfo
*/
public function testOnAPIQuerySiteInfoGeneralInfo() {
$api = $this->createMock( ApiQuerySiteinfo::class );
$data = [];
CiteHooks::onAPIQuerySiteInfoGeneralInfo( $api, $data );
$this->assertArrayHasKey( 'citeresponsivereferences', $data );
}
}