wiki.techinc.nl/tests/phpunit/includes/content/CssContentTest.php
daniel 48d5e5b3c9 Introduce ContentGetParserOutput hook
This hooks allows extensions to override the normal model-specific
rendering of page content. A typical use would be to provide syntax
highlighting for pages that contain scripts. In that sense,
ContentGetParserOutput is a generalization of the old ShowRawCssJs
hook.

This, together with I76412f9d, is a (hopefully) fixed version of the
reverted Ibfb2cbefea44.

Change-Id: I979e2438689648ba4c959d8083197ef14ce524e8
2014-05-10 14:27:33 +02:00

87 lines
1.9 KiB
PHP

<?php
/**
* @group ContentHandler
* @group Database
* ^--- needed, because we do need the database to test link updates
*/
class CssContentTest extends JavaScriptContentTest {
protected function setUp() {
parent::setUp();
// Anon user
$user = new User();
$user->setName( '127.0.0.1' );
$this->setMwGlobals( array(
'wgUser' => $user,
'wgTextModelsToParse' => array(
CONTENT_MODEL_CSS,
)
) );
}
public function newContent( $text ) {
return new CssContent( $text );
}
public static function dataGetParserOutput() {
return array(
array(
'MediaWiki:Test.css',
null,
"hello <world>\n",
"<pre class=\"mw-code mw-css\" dir=\"ltr\">\nhello &lt;world&gt;\n\n</pre>"
),
array(
'MediaWiki:Test.css',
null,
"/* hello [[world]] */\n",
"<pre class=\"mw-code mw-css\" dir=\"ltr\">\n/* hello [[world]] */\n\n</pre>",
array(
'Links' => array(
array( 'World' => 0 )
)
)
),
// TODO: more...?
);
}
/**
* @covers CssContent::getModel
*/
public function testGetModel() {
$content = $this->newContent( 'hello world.' );
$this->assertEquals( CONTENT_MODEL_CSS, $content->getModel() );
}
/**
* @covers CssContent::getContentHandler
*/
public function testGetContentHandler() {
$content = $this->newContent( 'hello world.' );
$this->assertEquals( CONTENT_MODEL_CSS, $content->getContentHandler()->getModelID() );
}
public static function dataEquals() {
return array(
array( new CssContent( 'hallo' ), null, false ),
array( new CssContent( 'hallo' ), new CssContent( 'hallo' ), true ),
array( new CssContent( 'hallo' ), new WikitextContent( 'hallo' ), false ),
array( new CssContent( 'hallo' ), new CssContent( 'HALLO' ), false ),
);
}
/**
* @dataProvider dataEquals
* @covers CssContent::equals
*/
public function testEquals( Content $a, Content $b = null, $equal = false ) {
$this->assertEquals( $equal, $a->equals( $b ) );
}
}