MediaWiki REL1_33
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 [
110 'User:😂/unicode.css',
111 '/* #REDIRECT */@import url(//example.org/w/index.php?title=User:%F0%9F%98%82/unicode.css&action=raw&ctype=text/css);'
112 ],
113 # No #REDIRECT comment
114 [ null, "@import url(//example.org/w/index.php?title=Gadget:FooBaz.css&action=raw&ctype=text/css);" ],
115 # Wrong domain
116 [ null, "/* #REDIRECT */@import url(//example.com/w/index.php?title=Gadget:FooBaz.css&action=raw&ctype=text/css);" ],
117 ];
118 // phpcs:enable
119 }
120
121 public static function dataEquals() {
122 return [
123 [ new CssContent( 'hallo' ), null, false ],
124 [ new CssContent( 'hallo' ), new CssContent( 'hallo' ), true ],
125 [ new CssContent( 'hallo' ), new WikitextContent( 'hallo' ), false ],
126 [ new CssContent( 'hallo' ), new CssContent( 'HALLO' ), false ],
127 ];
128 }
129
134 public function testEquals( Content $a, Content $b = null, $equal = false ) {
135 $this->assertEquals( $equal, $a->equals( $b ) );
136 }
137}
and that you know you can do these things To protect your we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights These restrictions translate to certain responsibilities for you if you distribute copies of the or if you modify it For if you distribute copies of such a whether gratis or for a you must give the recipients all the rights that you have You must make sure that receive or can get the source code And you must show them these terms so they know their rights We protect your rights with two and(2) offer you this license which gives you legal permission to copy
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:48
Content object for wiki text pages.
this hook is for auditing only or null if authentication failed before getting that far or null if we can t even determine that When $user is not null
Definition hooks.txt:783
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:2004
processing should stop and the error should be shown to the user * false
Definition hooks.txt:187
const CONTENT_MODEL_CSS
Definition Defines.php:246
Base interface for content objects.
Definition Content.php:34
$content