wiki.techinc.nl/tests/phpunit/includes/content/TextContentHandlerIntegrationTest.php
Isabelle Hurbain-Palatin 7f63d5250e Revert "Use Remex for DeduplicateStyles transform"
This reverts commit 82da9cf14b.

Passing through Remex seems to have unexpected consequences to be
investigated but, for the sake of unbreaking the UBN, let's revert this
first.

Bug: T353920
Change-Id: Iaac7942aa77aee5ab525852ac5b41dd516ff13c9
2023-12-22 11:26:09 +01:00

61 lines
1.8 KiB
PHP

<?php
use MediaWiki\Title\Title;
/**
* @group ContentHandler
* @group Database
* ^--- needed, because we do need the database to test link updates
*/
class TextContentHandlerIntegrationTest extends MediaWikiLangTestCase {
public static function provideGetParserOutput() {
yield 'Basic render' => [
'title' => 'TextContentTest_testGetParserOutput',
'model' => CONTENT_MODEL_TEXT,
'text' => "hello ''world'' & [[stuff]]\n",
'expectedHtml' => "<pre>hello ''world'' &amp; [[stuff]]\n</pre>",
'expectedFields' => [ 'Links' => [] ]
];
yield 'Multi line render' => [
'title' => 'TextContentTest_testGetParserOutput',
'model' => CONTENT_MODEL_TEXT,
'text' => "Test 1\nTest 2\n\nTest 3\n",
'expectedHtml' => "<pre>Test 1\nTest 2\n\nTest 3\n</pre>",
'expectedFields' => [ 'Links' => [] ]
];
}
/**
* @dataProvider provideGetParserOutput
* @covers TextContentHandler::fillParserOutput
*/
public function testGetParserOutput( $title, $model, $text, $expectedHtml,
$expectedFields = null, $parserOptions = null
) {
$title = Title::newFromText( $title );
$content = ContentHandler::makeContent( $text, $title, $model );
$contentRenderer = $this->getServiceContainer()->getContentRenderer();
$po = $contentRenderer->getParserOutput( $content, $title, null, $parserOptions );
$html = $po->getText();
$html = preg_replace( '#<!--.*?-->#sm', '', $html ); // strip comments
if ( $expectedHtml !== null ) {
$this->assertEquals( $expectedHtml, trim( $html ) );
}
if ( $expectedFields ) {
foreach ( $expectedFields as $field => $exp ) {
$getter = 'get' . ucfirst( $field );
$v = $po->$getter();
if ( is_array( $exp ) ) {
$this->assertArrayEquals( $exp, $v );
} else {
$this->assertEquals( $exp, $v );
}
}
}
}
}