MediaWiki REL1_31
CssContentTest.php
Go to the documentation of this file.
1<?php
2
11
12 protected function setUp() {
13 parent::setUp();
14
15 // Anon user
16 $user = new User();
17 $user->setName( '127.0.0.1' );
18
19 $this->setMwGlobals( [
20 'wgUser' => $user,
21 'wgTextModelsToParse' => [
23 ]
24 ] );
25 }
26
27 public function newContent( $text ) {
28 return new CssContent( $text );
29 }
30
31 public static function dataGetParserOutput() {
32 return [
33 [
34 'MediaWiki:Test.css',
35 null,
36 "hello <world>\n",
37 "<pre class=\"mw-code mw-css\" dir=\"ltr\">\nhello &lt;world&gt;\n\n</pre>"
38 ],
39 [
40 'MediaWiki:Test.css',
41 null,
42 "/* hello [[world]] */\n",
43 "<pre class=\"mw-code mw-css\" dir=\"ltr\">\n/* hello [[world]] */\n\n</pre>",
44 [
45 'Links' => [
46 [ 'World' => 0 ]
47 ]
48 ]
49 ],
50
51 // TODO: more...?
52 ];
53 }
54
58 public function testGetModel() {
59 $content = $this->newContent( 'hello world.' );
60
61 $this->assertEquals( CONTENT_MODEL_CSS, $content->getModel() );
62 }
63
67 public function testGetContentHandler() {
68 $content = $this->newContent( 'hello world.' );
69
70 $this->assertEquals( CONTENT_MODEL_CSS, $content->getContentHandler()->getModelID() );
71 }
72
76 public static function provideUpdateRedirect() {
77 return [
78 [
79 '#REDIRECT [[Someplace]]',
80 '#REDIRECT [[Someplace]]',
81 ],
82 ];
83 }
84
89 public function testGetRedirectTarget( $title, $text ) {
90 $this->setMwGlobals( [
91 'wgServer' => '//example.org',
92 'wgScriptPath' => '/w',
93 'wgScript' => '/w/index.php',
94 ] );
95 $content = new CssContent( $text );
96 $target = $content->getRedirectTarget();
97 $this->assertEquals( $title, $target ? $target->getPrefixedText() : null );
98 }
99
103 public static function provideGetRedirectTarget() {
104 // phpcs:disable Generic.Files.LineLength
105 return [
106 [ 'MediaWiki:MonoBook.css', "/* #REDIRECT */@import url(//example.org/w/index.php?title=MediaWiki:MonoBook.css&action=raw&ctype=text/css);" ],
107 [ 'User:FooBar/common.css', "/* #REDIRECT */@import url(//example.org/w/index.php?title=User:FooBar/common.css&action=raw&ctype=text/css);" ],
108 [ 'Gadget:FooBaz.css', "/* #REDIRECT */@import url(//example.org/w/index.php?title=Gadget:FooBaz.css&action=raw&ctype=text/css);" ],
109 # No #REDIRECT comment
110 [ null, "@import url(//example.org/w/index.php?title=Gadget:FooBaz.css&action=raw&ctype=text/css);" ],
111 # Wrong domain
112 [ null, "/* #REDIRECT */@import url(//example.com/w/index.php?title=Gadget:FooBaz.css&action=raw&ctype=text/css);" ],
113 ];
114 // phpcs:enable
115 }
116
117 public static function dataEquals() {
118 return [
119 [ new CssContent( 'hallo' ), null, false ],
120 [ new CssContent( 'hallo' ), new CssContent( 'hallo' ), true ],
121 [ new CssContent( 'hallo' ), new WikitextContent( 'hallo' ), false ],
122 [ new CssContent( 'hallo' ), new CssContent( 'HALLO' ), false ],
123 ];
124 }
125
130 public function testEquals( Content $a, Content $b = null, $equal = false ) {
131 $this->assertEquals( $equal, $a->equals( $b ) );
132 }
133}
ContentHandler Database ^— needed, because we do need the database to test link updates.
testGetContentHandler()
CssContent::getContentHandler.
testEquals(Content $a, Content $b=null, $equal=false)
dataEquals CssContent::equals
static provideGetRedirectTarget()
Keep this in sync with CssContentHandlerTest::provideMakeRedirectContent()
testGetRedirectTarget( $title, $text)
CssContent::getRedirectTarget provideGetRedirectTarget.
static provideUpdateRedirect()
Redirects aren't supported.
testGetModel()
CssContent::getModel.
static dataGetParserOutput()
Content object for CSS pages.
ContentHandler Database ^— needed, because we do need the database to test link updates.
setMwGlobals( $pairs, $value=null)
Sets a global, maintaining a stashed version of the previous global to be restored in tearDown.
The User object encapsulates all of the user-specific settings (user_id, name, rights,...
Definition User.php:53
Content object for wiki text pages.
null means default in associative array with keys and values unescaped Should be merged with default with a value of false meaning to suppress the attribute in associative array with keys and values unescaped noclasses just before the function returns a value If you return true
Definition hooks.txt:2006
processing should stop and the error should be shown to the user * false
Definition hooks.txt:187
const CONTENT_MODEL_CSS
Definition Defines.php:247
Base interface for content objects.
Definition Content.php:34