mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Cite
synced 2024-11-24 15:04:02 +00:00
7ce10d7539
To be honest I don't get why this lazy registration was done in the first place. None of the 4 other hooks should ever be called before the ParserFirstCallInit hook got called. Also, under which circumstances can the ParserFirstCallInit hook be called more than once? Both scenarios would be wrong, as far as I'm concerned. Either I'm missing something, or this code can indeed be simplified. Maybe it was something to make it more compatible with older MediaWiki versions? The only reason I can think of is: in all situations that do not involve a parser, having the 4 extra hooks registered is pointless. Does this waste space and/or runtime in the $wgHooks registry? Change-Id: I5ef1495f4ce7bce940fa5f8e700af3d2c4851a01
32 lines
637 B
PHP
32 lines
637 B
PHP
<?php
|
|
|
|
namespace Cite\Test\Unit;
|
|
|
|
use Cite;
|
|
use CiteParserHooks;
|
|
use Parser;
|
|
|
|
/**
|
|
* @coversDefaultClass \CiteParserHooks
|
|
*/
|
|
class CiteParserHooksTest extends \MediaWikiUnitTestCase {
|
|
|
|
/**
|
|
* @covers ::onParserFirstCallInit
|
|
*/
|
|
public function testOnParserFirstCallInit() {
|
|
$parser = $this->createMock( Parser::class );
|
|
$parser->expects( $this->exactly( 2 ) )
|
|
->method( 'setHook' )
|
|
->withConsecutive(
|
|
[ 'ref', $this->isType( 'callable' ) ],
|
|
[ 'references', $this->isType( 'callable' ) ]
|
|
);
|
|
|
|
CiteParserHooks::onParserFirstCallInit( $parser );
|
|
|
|
$this->assertInstanceOf( Cite::class, $parser->extCite );
|
|
}
|
|
|
|
}
|