4 * @group ContentHandler
6 * ^--- needed, because we do need the database to test link updates
8 * @FIXME this should not extend JavaScriptContentTest.
10 class CssContentTest
extends JavaScriptContentTest
{
12 protected function setUp() {
17 $user->setName( '127.0.0.1' );
19 $this->setMwGlobals( array(
21 'wgTextModelsToParse' => array(
27 public function newContent( $text ) {
28 return new CssContent( $text );
31 public static function dataGetParserOutput() {
37 "<pre class=\"mw-code mw-css\" dir=\"ltr\">\nhello <world>\n\n</pre>"
42 "/* hello [[world]] */\n",
43 "<pre class=\"mw-code mw-css\" dir=\"ltr\">\n/* hello [[world]] */\n\n</pre>",
56 * @covers CssContent::getModel
58 public function testGetModel() {
59 $content = $this->newContent( 'hello world.' );
61 $this->assertEquals( CONTENT_MODEL_CSS
, $content->getModel() );
65 * @covers CssContent::getContentHandler
67 public function testGetContentHandler() {
68 $content = $this->newContent( 'hello world.' );
70 $this->assertEquals( CONTENT_MODEL_CSS
, $content->getContentHandler()->getModelID() );
74 * Redirects aren't supported
76 public static function provideUpdateRedirect() {
79 '#REDIRECT [[Someplace]]',
80 '#REDIRECT [[Someplace]]',
86 * @dataProvider provideGetRedirectTarget
88 public function testGetRedirectTarget( $title, $text ) {
89 $this->setMwGlobals( array(
90 'wgServer' => '//example.org',
91 'wgScriptPath' => '/w',
92 'wgScript' => '/w/index.php',
94 $content = new CssContent( $text );
95 $target = $content->getRedirectTarget();
96 $this->assertEquals( $title, $target ?
$target->getPrefixedText() : null );
100 * Keep this in sync with CssContentHandlerTest::provideMakeRedirectContent()
102 public static function provideGetRedirectTarget() {
104 array( 'MediaWiki:MonoBook.css', "/* #REDIRECT */@import url(//example.org/w/index.php?title=MediaWiki:MonoBook.css&action=raw&ctype=text/css);" ),
105 array( 'User:FooBar/common.css', "/* #REDIRECT */@import url(//example.org/w/index.php?title=User:FooBar/common.css&action=raw&ctype=text/css);" ),
106 array( 'Gadget:FooBaz.css', "/* #REDIRECT */@import url(//example.org/w/index.php?title=Gadget:FooBaz.css&action=raw&ctype=text/css);" ),
107 # No #REDIRECT comment
108 array( null, "@import url(//example.org/w/index.php?title=Gadget:FooBaz.css&action=raw&ctype=text/css);" ),
110 array( null, "/* #REDIRECT */@import url(//example.com/w/index.php?title=Gadget:FooBaz.css&action=raw&ctype=text/css);" ),
114 public static function dataEquals() {
116 array( new CssContent( 'hallo' ), null, false ),
117 array( new CssContent( 'hallo' ), new CssContent( 'hallo' ), true ),
118 array( new CssContent( 'hallo' ), new WikitextContent( 'hallo' ), false ),
119 array( new CssContent( 'hallo' ), new CssContent( 'HALLO' ), false ),
124 * @dataProvider dataEquals
125 * @covers CssContent::equals
127 public function testEquals( Content
$a, Content
$b = null, $equal = false ) {
128 $this->assertEquals( $equal, $a->equals( $b ) );