[ 'title' => 'TextContentTest_testGetParserOutput', 'model' => CONTENT_MODEL_TEXT, 'text' => "hello ''world'' & [[stuff]]\n", 'expectedHtml' => "
hello ''world'' & [[stuff]]\n
", 'expectedFields' => [ 'Links' => [] ] ]; yield 'Multi line render' => [ 'title' => 'TextContentTest_testGetParserOutput', 'model' => CONTENT_MODEL_TEXT, 'text' => "Test 1\nTest 2\n\nTest 3\n", 'expectedHtml' => "
Test 1\nTest 2\n\nTest 3\n
", 'expectedFields' => [ 'Links' => [] ] ]; } /** * @dataProvider provideGetParserOutput */ 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 $html = TestUtils::stripParsoidIds( $html ); if ( $expectedHtml !== null ) { $this->assertEquals( TestUtils::stripParsoidIds( $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 ); } } } } }