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
90 lines
2 KiB
PHP
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
|
|
);
|
|
}
|
|
}
|