12 [
false,
'http://example.org',
'http://mediawiki.org' ],
14 [
true,
'http://example.org',
'http://example.org' ],
15 [
true,
'https://example.org',
'https://example.org' ],
16 [
true,
'//example.org',
'//example.org' ],
18 [
true,
'http://example.org',
'http://EXAMPLE.ORG' ],
20 [
true,
'http://example.org',
'http://example.org/wiki/Main_Page' ],
21 [
true,
'http://example.org',
'http://example.org?my=query' ],
22 [
true,
'http://example.org',
'http://example.org#its-a-fragment' ],
24 [
false,
'http://example.org',
'https://example.org' ],
25 [
false,
'https://example.org',
'http://example.org' ],
27 [
true,
'//example.org',
'http://example.org' ],
28 [
true,
'//example.org',
'https://example.org' ],
30 [
false,
'//example.org',
'irc://example.org' ],
40 $this->assertEquals( $shouldMatch, ParserOutput::isLinkInternal( $server, $url ) );
50 $po->setExtensionData(
"one",
"Foo" );
52 $this->assertEquals(
"Foo", $po->getExtensionData(
"one" ) );
53 $this->assertNull( $po->getExtensionData(
"spam" ) );
55 $po->setExtensionData(
"two",
"Bar" );
56 $this->assertEquals(
"Foo", $po->getExtensionData(
"one" ) );
57 $this->assertEquals(
"Bar", $po->getExtensionData(
"two" ) );
59 $po->setExtensionData(
"one",
null );
60 $this->assertNull( $po->getExtensionData(
"one" ) );
61 $this->assertEquals(
"Bar", $po->getExtensionData(
"two" ) );
73 $po->setProperty(
'foo',
'val' );
75 $properties = $po->getProperties();
76 $this->assertEquals( $po->getProperty(
'foo' ),
'val' );
77 $this->assertEquals( $properties[
'foo'],
'val' );
79 $po->setProperty(
'foo',
'second val' );
81 $properties = $po->getProperties();
82 $this->assertEquals( $po->getProperty(
'foo' ),
'second val' );
83 $this->assertEquals( $properties[
'foo'],
'second val' );
85 $po->unsetProperty(
'foo' );
87 $properties = $po->getProperties();
88 $this->assertEquals( $po->getProperty(
'foo' ),
false );
89 $this->assertArrayNotHasKey(
'foo', $properties );
101 'wgArticlePath' =>
'/wiki/$1',
102 'wgScriptPath' =>
'/w',
103 'wgScript' =>
'/w/index.php',
108 $this->assertSame( $expect, $actual );
116<mw:toc><
div id=
"toc" class=
"toc"><
div class=
"toctitle"><h2>Contents</h2></
div>
118<li
class=
"toclevel-1 tocsection-1"><a
href=
"#Section_1"><span
class=
"tocnumber">1</span> <span
class=
"toctext">Section 1</span></a></li>
119<li
class=
"toclevel-1 tocsection-2"><a
href=
"#Section_2"><span
class=
"tocnumber">2</span> <span
class=
"toctext">Section 2</span></a>
121<li
class=
"toclevel-2 tocsection-3"><a
href=
"#Section_2.1"><span
class=
"tocnumber">2.1</span> <span
class=
"toctext">Section 2.1</span></a></li>
124<li
class=
"toclevel-1 tocsection-4"><a
href=
"#Section_3"><span
class=
"tocnumber">3</span> <span
class=
"toctext">Section 3</span></a></li>
128<h2><span
class=
"mw-headline" id=
"Section_1">Section 1</span><mw:editsection page=
"Test Page" section=
"1">Section 1</mw:editsection></h2>
131<h2><span
class=
"mw-headline" id=
"Section_2">Section 2</span><mw:editsection page=
"Test Page" section=
"2">Section 2</mw:editsection></h2>
134<h3><span
class=
"mw-headline" id=
"Section_2.1">Section 2.1</span><mw:editsection page=
"Test Page" section=
"3">Section 2.1</mw:editsection></h3>
137<h2><span
class=
"mw-headline" id=
"Section_3">Section 3</span><mw:editsection page=
"Test Page" section=
"4">Section 3</mw:editsection></h2>
144<
style data-mw-deduplicate=
"duplicate1">.Duplicate1 {}</
style>
145<
style data-mw-deduplicate=
"duplicate1">.Duplicate1 {}</
style>
146<
style data-mw-deduplicate=
"duplicate2">.Duplicate2 {}</
style>
147<
style data-mw-deduplicate=
"duplicate1">.Duplicate1 {}</
style>
148<
style data-mw-deduplicate=
"duplicate2">.Duplicate2 {}</
style>
149<
style data-mw-not-deduplicate=
"duplicate1">.Duplicate1 {}</
style>
151<
style data-mw-deduplicate=
"duplicate3">.Duplicate1 {}</
style>
160<
div id=
"toc" class=
"toc"><
div class=
"toctitle"><h2>Contents</h2></
div>
162<li
class=
"toclevel-1 tocsection-1"><a
href=
"#Section_1"><span
class=
"tocnumber">1</span> <span
class=
"toctext">Section 1</span></a></li>
163<li
class=
"toclevel-1 tocsection-2"><a
href=
"#Section_2"><span
class=
"tocnumber">2</span> <span
class=
"toctext">Section 2</span></a>
165<li
class=
"toclevel-2 tocsection-3"><a
href=
"#Section_2.1"><span
class=
"tocnumber">2.1</span> <span
class=
"toctext">Section 2.1</span></a></li>
168<li
class=
"toclevel-1 tocsection-4"><a
href=
"#Section_3"><span
class=
"tocnumber">3</span> <span
class=
"toctext">Section 3</span></a></li>
172<h2><span
class=
"mw-headline" id=
"Section_1">Section 1</span><span
class=
"mw-editsection"><span
class=
"mw-editsection-bracket">[</span><a
href=
"/w/index.php?title=Test_Page&action=edit&section=1" title=
"Edit section: Section 1">edit</a><span
class=
"mw-editsection-bracket">]</span></span></h2>
175<h2><span
class=
"mw-headline" id=
"Section_2">Section 2</span><span
class=
"mw-editsection"><span
class=
"mw-editsection-bracket">[</span><a
href=
"/w/index.php?title=Test_Page&action=edit&section=2" title=
"Edit section: Section 2">edit</a><span
class=
"mw-editsection-bracket">]</span></span></h2>
178<h3><span
class=
"mw-headline" id=
"Section_2.1">Section 2.1</span><span
class=
"mw-editsection"><span
class=
"mw-editsection-bracket">[</span><a
href=
"/w/index.php?title=Test_Page&action=edit&section=3" title=
"Edit section: Section 2.1">edit</a><span
class=
"mw-editsection-bracket">]</span></span></h3>
181<h2><span
class=
"mw-headline" id=
"Section_3">Section 3</span><span
class=
"mw-editsection"><span
class=
"mw-editsection-bracket">[</span><a
href=
"/w/index.php?title=Test_Page&action=edit&section=4" title=
"Edit section: Section 3">edit</a><span
class=
"mw-editsection-bracket">]</span></span></h2>
186 'Disable section edit links' => [
187 [
'enableSectionEditLinks' =>
false ], $text, <<<EOF
190<
div id=
"toc" class=
"toc"><
div class=
"toctitle"><h2>Contents</h2></
div>
192<li
class=
"toclevel-1 tocsection-1"><a
href=
"#Section_1"><span
class=
"tocnumber">1</span> <span
class=
"toctext">Section 1</span></a></li>
193<li
class=
"toclevel-1 tocsection-2"><a
href=
"#Section_2"><span
class=
"tocnumber">2</span> <span
class=
"toctext">Section 2</span></a>
195<li
class=
"toclevel-2 tocsection-3"><a
href=
"#Section_2.1"><span
class=
"tocnumber">2.1</span> <span
class=
"toctext">Section 2.1</span></a></li>
198<li
class=
"toclevel-1 tocsection-4"><a
href=
"#Section_3"><span
class=
"tocnumber">3</span> <span
class=
"toctext">Section 3</span></a></li>
202<h2><span
class=
"mw-headline" id=
"Section_1">Section 1</span></h2>
205<h2><span
class=
"mw-headline" id=
"Section_2">Section 2</span></h2>
208<h3><span
class=
"mw-headline" id=
"Section_2.1">Section 2.1</span></h3>
211<h2><span
class=
"mw-headline" id=
"Section_3">Section 3</span></h2>
217 [
'allowTOC' =>
false ], $text, <<<EOF
221<h2><span
class=
"mw-headline" id=
"Section_1">Section 1</span><span
class=
"mw-editsection"><span
class=
"mw-editsection-bracket">[</span><a
href=
"/w/index.php?title=Test_Page&action=edit&section=1" title=
"Edit section: Section 1">edit</a><span
class=
"mw-editsection-bracket">]</span></span></h2>
224<h2><span
class=
"mw-headline" id=
"Section_2">Section 2</span><span
class=
"mw-editsection"><span
class=
"mw-editsection-bracket">[</span><a
href=
"/w/index.php?title=Test_Page&action=edit&section=2" title=
"Edit section: Section 2">edit</a><span
class=
"mw-editsection-bracket">]</span></span></h2>
227<h3><span
class=
"mw-headline" id=
"Section_2.1">Section 2.1</span><span
class=
"mw-editsection"><span
class=
"mw-editsection-bracket">[</span><a
href=
"/w/index.php?title=Test_Page&action=edit&section=3" title=
"Edit section: Section 2.1">edit</a><span
class=
"mw-editsection-bracket">]</span></span></h3>
230<h2><span
class=
"mw-headline" id=
"Section_3">Section 3</span><span
class=
"mw-editsection"><span
class=
"mw-editsection-bracket">[</span><a
href=
"/w/index.php?title=Test_Page&action=edit&section=4" title=
"Edit section: Section 3">edit</a><span
class=
"mw-editsection-bracket">]</span></span></h2>
236 [
'unwrap' =>
true ], $text, <<<EOF
239<
div id=
"toc" class=
"toc"><
div class=
"toctitle"><h2>Contents</h2></
div>
241<li
class=
"toclevel-1 tocsection-1"><a
href=
"#Section_1"><span
class=
"tocnumber">1</span> <span
class=
"toctext">Section 1</span></a></li>
242<li
class=
"toclevel-1 tocsection-2"><a
href=
"#Section_2"><span
class=
"tocnumber">2</span> <span
class=
"toctext">Section 2</span></a>
244<li
class=
"toclevel-2 tocsection-3"><a
href=
"#Section_2.1"><span
class=
"tocnumber">2.1</span> <span
class=
"toctext">Section 2.1</span></a></li>
247<li
class=
"toclevel-1 tocsection-4"><a
href=
"#Section_3"><span
class=
"tocnumber">3</span> <span
class=
"toctext">Section 3</span></a></li>
251<h2><span
class=
"mw-headline" id=
"Section_1">Section 1</span><span
class=
"mw-editsection"><span
class=
"mw-editsection-bracket">[</span><a
href=
"/w/index.php?title=Test_Page&action=edit&section=1" title=
"Edit section: Section 1">edit</a><span
class=
"mw-editsection-bracket">]</span></span></h2>
254<h2><span
class=
"mw-headline" id=
"Section_2">Section 2</span><span
class=
"mw-editsection"><span
class=
"mw-editsection-bracket">[</span><a
href=
"/w/index.php?title=Test_Page&action=edit&section=2" title=
"Edit section: Section 2">edit</a><span
class=
"mw-editsection-bracket">]</span></span></h2>
257<h3><span
class=
"mw-headline" id=
"Section_2.1">Section 2.1</span><span
class=
"mw-editsection"><span
class=
"mw-editsection-bracket">[</span><a
href=
"/w/index.php?title=Test_Page&action=edit&section=3" title=
"Edit section: Section 2.1">edit</a><span
class=
"mw-editsection-bracket">]</span></span></h3>
260<h2><span
class=
"mw-headline" id=
"Section_3">Section 3</span><span
class=
"mw-editsection"><span
class=
"mw-editsection-bracket">[</span><a
href=
"/w/index.php?title=Test_Page&action=edit&section=4" title=
"Edit section: Section 3">edit</a><span
class=
"mw-editsection-bracket">]</span></span></h2>
265 'Unwrap without a mw-parser-output wrapper' => [
266 [
'unwrap' =>
true ],
'<div class="foobar">Content</div>',
'<div class="foobar">Content</div>'
268 'Unwrap with extra comment at end' => [
269 [
'unwrap' =>
true ],
'<div class="mw-parser-output"><p>Test document.</p></div>
270<!-- Saved in parser cache... -->',
'<p>Test document.</p>
271<!-- Saved in parser cache... -->'
273 'Style deduplication' => [
274 [], $dedupText, <<<EOF
276<
style data-mw-deduplicate=
"duplicate1">.Duplicate1 {}</
style>
277<
link rel=
"mw-deduplicated-inline-style" href=
"mw-data:duplicate1"/>
278<
style data-mw-deduplicate=
"duplicate2">.Duplicate2 {}</
style>
279<
link rel=
"mw-deduplicated-inline-style" href=
"mw-data:duplicate1"/>
280<
link rel=
"mw-deduplicated-inline-style" href=
"mw-data:duplicate2"/>
281<
style data-mw-not-deduplicate=
"duplicate1">.Duplicate1 {}</
style>
282<
link rel=
"mw-deduplicated-inline-style" href=
"mw-data:duplicate1"/>
283<
style data-mw-deduplicate=
"duplicate3">.Duplicate1 {}</
style>
287 'Style deduplication disabled' => [
288 [
'deduplicateStyles' =>
false ], $dedupText, $dedupText
GNU GENERAL PUBLIC LICENSE June Free Software Franklin Fifth MA USA Everyone is permitted to copy and distribute verbatim copies of this license document
ID=zero for broken.
it is up to the author donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License If the distribution and or use of the Program is restricted in certain countries either by patents or by copyrighted the original copyright holder who places the Program under this License may add an geographical distribution limitation excluding those so that distribution is permitted only in or among countries not thus excluded In such this License incorporates the limitation as if written in the body of this License The Free Software Foundation may publish revised and or new versions of the General Public License from time to time Such new versions will be similar in spirit to the present but may differ in detail to address new problems or concerns Each version is given a distinguishing version number If the Program specifies a version number of this License which applies to it and any later you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation If the Program does not specify a version number of this you may choose any version ever published by the Free Software Foundation If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different
Database ^— trigger DB shadowing because we are using Title magic.
testGetText( $options, $text, $expect)
ParserOutput::getText provideGetText.
testProperties()
ParserOutput::setProperty ParserOutput::getProperty ParserOutput::unsetProperty ParserOutput::getProp...
static provideIsLinkInternal()
testExtensionData()
ParserOutput::setExtensionData ParserOutput::getExtensionData.
testIsLinkInternal( $shouldMatch, $server, $url)
Test to make sure ParserOutput::isLinkInternal behaves properly provideIsLinkInternal ParserOutput::i...
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 & $options
usually copyright or history_copyright This message must be in HTML not wikitext if the section is included from a template to be included in the link
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
processing should stop and the error should be shown to the user * false
</source > ! result< div id="foo" class="bar mw-highlight mw-content-rtl" dir="rtl" style="font-size: larger;">< pre >< span ></span >< span class="kd"> var</span >< span class="nx"> a</span >< span class="p"></span ></pre ></div > !end !test Inline attribute(inline code) !!input Text< source lang