wiki.techinc.nl/tests/phpunit/integration/includes/parser/ParserObserverIntegrationTest.php
Cindy Cicalese eed48e402b Detect and monitor against multiple Parser invocation during edit requests
Bug: T288707
Change-Id: I0cca8f9bcf1d6e964b8b06c0c4490e83f4fb1de5
2021-09-23 16:12:40 -05:00

36 lines
924 B
PHP

<?php
use MediaWiki\Parser\ParserObserver;
/**
* @covers \MediaWiki\Parser\ParserObserver
* @group Database
*/
class ParserObserverIntegrationTest extends MediaWikiIntegrationTestCase {
/**
* @param bool $duplicate
* @param int $count
*
* @dataProvider provideDuplicateParse
*/
public function testDuplicateParse( bool $duplicate, int $count ) {
$logger = new TestLogger( true );
$observer = new ParserObserver( $logger );
$this->setService( '_ParserObserver', $observer );
// Create a test page. Parse it twice if a duplicate is desired, or once otherwise.
$page = $this->getExistingTestPage();
$page->getContent()->getParserOutput( $page->getTitle() );
if ( $duplicate ) {
$page->getContent()->getParserOutput( $page->getTitle() );
}
$this->assertCount( $count, $logger->getBuffer() );
}
public function provideDuplicateParse() {
yield [ true, 1 ];
yield [ false, 0 ];
}
}