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() {
103 // @codingStandardsIgnoreStart Generic.Files.LineLength
105 array( 'MediaWiki:MonoBook.css', "/* #REDIRECT */@import url(//example.org/w/index.php?title=MediaWiki:MonoBook.css&action=raw&ctype=text/css);" ),
106 array( 'User:FooBar/common.css', "/* #REDIRECT */@import url(//example.org/w/index.php?title=User:FooBar/common.css&action=raw&ctype=text/css);" ),
107 array( 'Gadget:FooBaz.css', "/* #REDIRECT */@import url(//example.org/w/index.php?title=Gadget:FooBaz.css&action=raw&ctype=text/css);" ),
108 # No #REDIRECT comment
109 array( null, "@import url(//example.org/w/index.php?title=Gadget:FooBaz.css&action=raw&ctype=text/css);" ),
111 array( null, "/* #REDIRECT */@import url(//example.com/w/index.php?title=Gadget:FooBaz.css&action=raw&ctype=text/css);" ),
113 // @codingStandardsIgnoreEnd
116 public static function dataEquals() {
118 array( new CssContent( 'hallo' ), null, false ),
119 array( new CssContent( 'hallo' ), new CssContent( 'hallo' ), true ),
120 array( new CssContent( 'hallo' ), new WikitextContent( 'hallo' ), false ),
121 array( new CssContent( 'hallo' ), new CssContent( 'HALLO' ), false ),
126 * @dataProvider dataEquals
127 * @covers CssContent::equals
129 public function testEquals( Content
$a, Content
$b = null, $equal = false ) {
130 $this->assertEquals( $equal, $a->equals( $b ) );