wiki.techinc.nl/tests/phpunit/includes/parser/ParserPreloadTest.php
C. Scott Ananian 0eaaceea3e Hard-deprecate direct calls to Parser::__construct()
These were deprecated in 1.34, but let's put in some hard deprecation
warnings for 1.35 since this class is certainly going to be refactored
in the future to allow both the legacy parser and Parsoid to extend
Parser as a base class.  Access via the ParserFactory will be fine,
but cut down on the number of different ways Parsers can be constructed
and initialized.

Code search:
https://codesearch.wmflabs.org/deployed/?q=new%20Parser%5C%28&i=nope&files=&repos=
https://codesearch.wmflabs.org/deployed/?q=getMockBuilder%5C%28%20Parser%3A%3A&i=nope&files=&repos=
https://codesearch.wmflabs.org/deployed/?q=new%20Parser%3B&i=nope&files=&repos=

Bug: T236811
Depends-On: Ib3be450c55e1793b027d9b4dae692ba5891b0328
Depends-On: I9d16513f8bd449a43b0a0afbd73651a5c0afa588
Depends-On: I74efda708470efeb82f8f80346ec1ee7e9fd8f2b
Depends-On: I777475d0ab0144e53240173f501d6c8da35d33fb
Change-Id: If36283ec0b78b188b61f658639105d1ed7653e0a
2020-04-16 16:34:34 -04:00

90 lines
2 KiB
PHP

<?php
use MediaWiki\MediaWikiServices;
/**
* Basic tests for Parser::getPreloadText
* @author Antoine Musso
*
* @covers Parser
* @covers StripState
*
* @covers Preprocessor_Hash
* @covers PPDStack_Hash
* @covers PPDStackElement_Hash
* @covers PPDPart_Hash
* @covers PPFrame_Hash
* @covers PPTemplateFrame_Hash
* @covers PPCustomFrame_Hash
* @covers PPNode_Hash_Tree
* @covers PPNode_Hash_Text
* @covers PPNode_Hash_Array
* @covers PPNode_Hash_Attr
*/
class ParserPreloadTest extends MediaWikiTestCase {
/**
* @var Parser
*/
private $testParser;
/**
* @var ParserOptions
*/
private $testParserOptions;
/**
* @var Title
*/
private $title;
protected function setUp() : void {
parent::setUp();
$services = MediaWikiServices::getInstance();
$this->testParserOptions = ParserOptions::newFromUserAndLang( new User,
MediaWikiServices::getInstance()->getContentLanguage() );
$this->testParser = $services->getParserFactory()->create();
$this->testParser->Options( $this->testParserOptions );
$this->testParser->clearState();
$this->title = Title::newFromText( 'Preload Test' );
}
protected function tearDown() : void {
parent::tearDown();
unset( $this->testParser );
unset( $this->title );
}
public function testPreloadSimpleText() {
$this->assertPreloaded( 'simple', 'simple' );
}
public function testPreloadedPreIsUnstripped() {
$this->assertPreloaded(
'<pre>monospaced</pre>',
'<pre>monospaced</pre>',
'<pre> in preloaded text must be unstripped (T29467)'
);
}
public function testPreloadedNowikiIsUnstripped() {
$this->assertPreloaded(
'<nowiki>[[Dummy title]]</nowiki>',
'<nowiki>[[Dummy title]]</nowiki>',
'<nowiki> in preloaded text must be unstripped (T29467)'
);
}
protected function assertPreloaded( $expected, $text, $msg = '' ) {
$this->assertEquals(
$expected,
$this->testParser->getPreloadText(
$text,
$this->title,
$this->testParserOptions
),
$msg
);
}
}