diff options
Diffstat (limited to 'tests/parser/parserTests.txt')
-rw-r--r-- | tests/parser/parserTests.txt | 10363 |
1 files changed, 0 insertions, 10363 deletions
diff --git a/tests/parser/parserTests.txt b/tests/parser/parserTests.txt deleted file mode 100644 index df057248..00000000 --- a/tests/parser/parserTests.txt +++ /dev/null @@ -1,10363 +0,0 @@ -# MediaWiki Parser test cases -# Some taken from http://meta.wikimedia.org/wiki/Parser_testing -# All (C) their respective authors and released under the GPL -# -# The syntax should be fairly self-explanatory. -# -# Currently supported test options: -# One of the following three: -# -# (default) generate HTML output -# pst apply pre-save transform -# msg apply message transform -# -# Plus any combination of these: -# -# cat add category links -# ill add inter-language links -# subpage enable subpages (disabled by default) -# noxml don't check for XML well formdness -# title=[[XXX]] run test using article title XXX -# language=XXX set content language to XXX for this test -# variant=XXX set the variant of language for this test (eg zh-tw) -# disabled do not run test -# showtitle make the first line the title -# comment run through Linker::formatComment() instead of main parser -# local format section links in edit comment text as local links -# -# For testing purposes, temporary articles can created: -# !!article / NAMESPACE:TITLE / !!text / ARTICLE TEXT / !!endarticle -# where '/' denotes a newline. - -# This is the standard article assumed to exist. -!! article -Main Page -!! text -blah blah -!! endarticle - -!!article -Template:Foo -!!text -FOO -!!endarticle - -!! article -Template:Blank -!! text -!! endarticle - -!! article -Template:! -!! text -| -!! endarticle - -!!article -MediaWiki:bad image list -!!text -* [[File:Bad.jpg]] except [[Nasty page]] -!!endarticle - -!! article -Template:inner list -!! text -* item 1 -!! endarticle - -### -### Basic tests -### -!! test -Blank input -!! input -!! result -!! end - - -!! test -Simple paragraph -!! input -This is a simple paragraph. -!! result -<p>This is a simple paragraph. -</p> -!! end - -!! test -Paragraphs with extra newline spacing -!! input -foo - -bar - - -baz - - - -booz -!! result -<p>foo -</p><p>bar -</p><p><br /> -baz -</p><p><br /> -</p><p>booz -</p> -!! end - -!! test -Simple list -!! input -* Item 1 -* Item 2 -!! result -<ul><li> Item 1 -</li><li> Item 2 -</li></ul> - -!! end - -!! test -Italics and bold -!! input -* plain -* plain''italic''plain -* plain''italic''plain''italic''plain -* plain'''bold'''plain -* plain'''bold'''plain'''bold'''plain -* plain''italic''plain'''bold'''plain -* plain'''bold'''plain''italic''plain -* plain''italic'''bold-italic'''italic''plain -* plain'''bold''bold-italic''bold'''plain -* plain'''''bold-italic'''italic''plain -* plain'''''bold-italic''bold'''plain -* plain''italic'''bold-italic'''''plain -* plain'''bold''bold-italic'''''plain -* plain l'''italic''plain -* plain l''''bold''' plain -!! result -<ul><li> plain -</li><li> plain<i>italic</i>plain -</li><li> plain<i>italic</i>plain<i>italic</i>plain -</li><li> plain<b>bold</b>plain -</li><li> plain<b>bold</b>plain<b>bold</b>plain -</li><li> plain<i>italic</i>plain<b>bold</b>plain -</li><li> plain<b>bold</b>plain<i>italic</i>plain -</li><li> plain<i>italic<b>bold-italic</b>italic</i>plain -</li><li> plain<b>bold<i>bold-italic</i>bold</b>plain -</li><li> plain<i><b>bold-italic</b>italic</i>plain -</li><li> plain<b><i>bold-italic</i>bold</b>plain -</li><li> plain<i>italic<b>bold-italic</b></i>plain -</li><li> plain<b>bold<i>bold-italic</i></b>plain -</li><li> plain l'<i>italic</i>plain -</li><li> plain l'<b>bold</b> plain -</li></ul> - -!! end - -### -### 2-quote opening sequence tests -### -!! test -Italics and bold: 2-quote opening sequence: (2,2) -!! input -''foo'' -!! result -<p><i>foo</i> -</p> -!!end - - -!! test -Italics and bold: 2-quote opening sequence: (2,3) -!! input -''foo''' -!! result -<p><i>foo'</i> -</p> -!!end - - -!! test -Italics and bold: 2-quote opening sequence: (2,4) -!! input -''foo'''' -!! result -<p><i>foo''</i> -</p> -!!end - - -!! test -Italics and bold: 2-quote opening sequence: (2,5) -!! input -''foo''''' -!! result -<p><i>foo</i> -</p> -!!end - - -### -### 3-quote opening sequence tests -### - -!! test -Italics and bold: 3-quote opening sequence: (3,2) -!! input -'''foo'' -!! result -<p>'<i>foo</i> -</p> -!!end - - -!! test -Italics and bold: 3-quote opening sequence: (3,3) -!! input -'''foo''' -!! result -<p><b>foo</b> -</p> -!!end - - -!! test -Italics and bold: 3-quote opening sequence: (3,4) -!! input -'''foo'''' -!! result -<p><b>foo'</b> -</p> -!!end - - -!! test -Italics and bold: 3-quote opening sequence: (3,5) -!! input -'''foo''''' -!! result -<p><b>foo</b> -</p> -!!end - - -### -### 4-quote opening sequence tests -### - -!! test -Italics and bold: 4-quote opening sequence: (4,2) -!! input -''''foo'' -!! result -<p>''<i>foo</i> -</p> -!!end - - -!! test -Italics and bold: 4-quote opening sequence: (4,3) -!! input -''''foo''' -!! result -<p>'<b>foo</b> -</p> -!!end - - -!! test -Italics and bold: 4-quote opening sequence: (4,4) -!! input -''''foo'''' -!! result -<p>'<b>foo'</b> -</p> -!!end - - -!! test -Italics and bold: 4-quote opening sequence: (4,5) -!! input -''''foo''''' -!! result -<p>'<b>foo</b> -</p> -!!end - - -### -### 5-quote opening sequence tests -### - -!! test -Italics and bold: 5-quote opening sequence: (5,2) -!! input -'''''foo'' -!! result -<p><b><i>foo</i></b> -</p> -!!end - - -!! test -Italics and bold: 5-quote opening sequence: (5,3) -!! input -'''''foo''' -!! result -<p><i><b>foo</b></i> -</p> -!!end - - -!! test -Italics and bold: 5-quote opening sequence: (5,4) -!! input -'''''foo'''' -!! result -<p><i><b>foo'</b></i> -</p> -!!end - - -!! test -Italics and bold: 5-quote opening sequence: (5,5) -!! input -'''''foo''''' -!! result -<p><i><b>foo</b></i> -</p> -!!end - -### -### multiple quote sequences in a line -### -!! test -Italics and bold: multiple quote sequences: (2,4,2) -!! input -''foo''''bar'' -!! result -<p><i>foo'<b>bar</b></i> -</p> -!!end - - -!! test -Italics and bold: multiple quote sequences: (2,4,3) -!! input -''foo''''bar''' -!! result -<p><i>foo'<b>bar</b></i> -</p> -!!end - - -!! test -Italics and bold: multiple quote sequences: (2,4,4) -!! input -''foo''''bar'''' -!! result -<p><i>foo'<b>bar'</b></i> -</p> -!!end - - -!! test -Italics and bold: multiple quote sequences: (3,4,2) -!! input -'''foo''''bar'' -!! result -<p><b>foo'</b>bar -</p> -!!end - - -!! test -Italics and bold: multiple quote sequences: (3,4,3) -!! input -'''foo''''bar''' -!! result -<p><b>foo'</b>bar -</p> -!!end - -### -### other quote tests -### -!! test -Italics and bold: other quote tests: (2,3,5) -!! input -''this is about '''foo's family''''' -!! result -<p><i>this is about <b>foo's family</b></i> -</p> -!!end - - -!! test -Italics and bold: other quote tests: (2,(3,3),2) -!! input -''this is about '''foo's''' family'' -!! result -<p><i>this is about <b>foo's</b> family</i> -</p> -!!end - - -!! test -Italics and bold: other quote tests: (3,2,3,2) -!! input -'''this is about ''foo'''s family'' -!! result -<p><b>this is about <i>foo</i></b><i>s family</i> -</p> -!!end - - -!! test -Italics and bold: other quote tests: (3,2,3,3) -!! input -'''this is about ''foo'''s family''' -!! result -<p>'<i>this is about </i>foo<b>s family</b> -</p> -!!end - - - -!! test -Italics and bold: other quote tests: (3,(2,2),3) -!! input -'''this is about ''foo's'' family''' -!! result -<p><b>this is about <i>foo's</i> family</b> -</p> -!!end - -### -### <nowiki> test cases -### - -!! test -<nowiki> unordered list -!! input -<nowiki>* This is not an unordered list item.</nowiki> -!! result -<p>* This is not an unordered list item. -</p> -!! end - -!! test -<nowiki> spacing -!! input -<nowiki>Lorem ipsum dolor - -sed abit. - sed nullum. - -:and a colon -</nowiki> -!! result -<p>Lorem ipsum dolor - -sed abit. - sed nullum. - -:and a colon - -</p> -!! end - -!! test -nowiki 3 -!! input -:There is not nowiki. -:There is <nowiki>nowiki</nowiki>. - -#There is not nowiki. -#There is <nowiki>nowiki</nowiki>. - -*There is not nowiki. -*There is <nowiki>nowiki</nowiki>. -!! result -<dl><dd>There is not nowiki. -</dd><dd>There is nowiki. -</dd></dl> -<ol><li>There is not nowiki. -</li><li>There is nowiki. -</li></ol> -<ul><li>There is not nowiki. -</li><li>There is nowiki. -</li></ul> - -!! end - - -### -### Comments -### -!! test -Comment test 1 -!! input -<!-- comment 1 --> asdf -<!-- comment 2 --> -!! result -<pre>asdf -</pre> - -!! end - -!! test -Comment test 2 -!! input -asdf -<!-- comment 1 --> -jkl -!! result -<p>asdf -jkl -</p> -!! end - -!! test -Comment test 3 -!! input -asdf -<!-- comment 1 --> -<!-- comment 2 --> -jkl -!! result -<p>asdf -jkl -</p> -!! end - -!! test -Comment test 4 -!! input -asdf<!-- comment 1 -->jkl -!! result -<p>asdfjkl -</p> -!! end - -!! test -Comment spacing -!! input -a - <!-- foo --> b <!-- bar --> -c -!! result -<p>a -</p> -<pre> b -</pre> -<p>c -</p> -!! end - -!! test -Comment whitespace -!! input -<!-- returns a single newline, not nothing, since the newline after > is not stripped --> -!! result - -!! end - -!! test -Comment semantics and delimiters -!! input -<!-- --><!----><!-----><!------> -!! result - -!! end - -!! test -Comment semantics and delimiters, redux -!! input -<!-- In SGML every "foo" here would actually show up in the text -- foo -- bar --- foo -- funky huh? ... --> -!! result - -!! end - -!! test -Comment semantics and delimiters: directors cut -!! input -<!-- ... However we like to keep things simple and somewhat XML-ish so we eat -everything starting with < followed by !-- until the first -- and > we see, -that wouldn't be valid XML however, since in XML -- has to terminate a comment --->--> -!! result -<p>--> -</p> -!! end - -!! test -Comment semantics: nesting -!! input -<!--<!-- no, we're not going to do anything fancy here -->--> -!! result -<p>--> -</p> -!! end - -!! test -Comment semantics: unclosed comment at end -!! input -<!--This comment will run out to the end of the document -!! result - -!! end - -!! test -Comment in template title -!! input -{{f<!---->oo}} -!! result -<p>FOO -</p> -!! end - -!! test -Comment on its own line post-expand -!! input -a -{{blank}}<!----> -b -!! result -<p>a -</p><p>b -</p> -!! end - -### -### Preformatted text -### -!! test -Preformatted text -!! input - This is some - Preformatted text - With ''italic'' - And '''bold''' - And a [[Main Page|link]] -!! result -<pre>This is some -Preformatted text -With <i>italic</i> -And <b>bold</b> -And a <a href="/wiki/Main_Page" title="Main Page">link</a> -</pre> -!! end - -!! test -<pre> with <nowiki> inside (compatibility with 1.6 and earlier) -!! input -<pre><nowiki> -<b> -<cite> -<em> -</nowiki></pre> -!! result -<pre> -<b> -<cite> -<em> -</pre> - -!! end - -!! test -Regression with preformatted in <center> -!! input -<center> - Blah -</center> -!! result -<center> -<pre>Blah -</pre> -</center> - -!! end - -# Expected output in the following test is not really expected (there should be -# <pre> in the output) -- it's only testing for well-formedness. -!! test -Bug 6200: Preformatted in <blockquote> -!! input -<blockquote> - Blah -</blockquote> -!! result -<blockquote> - Blah -</blockquote> - -!! end - -!! test -<pre> with attributes (bug 3202) -!! input -<pre style="background: blue; color:white">Bluescreen of WikiDeath</pre> -!! result -<pre style="background: blue; color:white">Bluescreen of WikiDeath</pre> - -!! end - -!! test -<pre> with width attribute (bug 3202) -!! input -<pre width="8">Narrow screen goodies</pre> -!! result -<pre width="8">Narrow screen goodies</pre> - -!! end - -!! test -<pre> with forbidden attribute (bug 3202) -!! input -<pre width="8" onmouseover="alert(document.cookie)">Narrow screen goodies</pre> -!! result -<pre width="8">Narrow screen goodies</pre> - -!! end - -!! test -<pre> with forbidden attribute values (bug 3202) -!! input -<pre width="8" style="border-width: expression(alert(document.cookie))">Narrow screen goodies</pre> -!! result -<pre width="8" style="/* insecure input */">Narrow screen goodies</pre> - -!! end - -!! test -<nowiki> inside <pre> (bug 13238) -!! input -<pre> -<nowiki> -</pre> -<pre> -<nowiki></nowiki> -</pre> -<pre><nowiki><nowiki></nowiki>Foo<nowiki></nowiki></nowiki></pre> -!! result -<pre> -<nowiki> -</pre> -<pre> - -</pre> -<pre><nowiki>Foo</nowiki></pre> - -!! end - -!! test -<nowiki> and <pre> preference (first one wins) -!! input -<pre> -<nowiki> -</pre> -</nowiki> -</pre> - -<nowiki> -<pre> -<nowiki> -</pre> -</nowiki> -</pre> - -!! result -<pre> -<nowiki> -</pre> -<p></nowiki> -</pre> -</p><p> -<pre> -<nowiki> -</pre> - -</pre> -</p> -!! end - - -### -### Definition lists -### -!! test -Simple definition -!! input -; name : Definition -!! result -<dl><dt> name </dt><dd> Definition -</dd></dl> - -!! end - -!! test -Definition list for indentation only -!! input -: Indented text -!! result -<dl><dd> Indented text -</dd></dl> - -!! end - -!! test -Definition list with no space -!! input -;name:Definition -!! result -<dl><dt>name</dt><dd>Definition -</dd></dl> - -!!end - -!! test -Definition list with URL link -!! input -; http://example.com/ : definition -!! result -<dl><dt> <a rel="nofollow" class="external free" href="http://example.com/">http://example.com/</a> </dt><dd> definition -</dd></dl> - -!! end - -!! test -Definition list with bracketed URL link -!! input -;[http://www.example.com/ Example]:Something about it -!! result -<dl><dt><a rel="nofollow" class="external text" href="http://www.example.com/">Example</a></dt><dd>Something about it -</dd></dl> - -!! end - -!! test -Definition list with wikilink containing colon -!! input -; [[Help:FAQ]]: The least-read page on Wikipedia -!! result -<dl><dt> <a href="/index.php?title=Help:FAQ&action=edit&redlink=1" class="new" title="Help:FAQ (page does not exist)">Help:FAQ</a></dt><dd> The least-read page on Wikipedia -</dd></dl> - -!! end - -# At Brion's and JeLuF's insistence... :) -!! test -Definition list with news link containing colon -!! input -; news:alt.wikipedia.rox: This isn't even a real newsgroup! -!! result -<dl><dt> <a rel="nofollow" class="external free" href="news:alt.wikipedia.rox">news:alt.wikipedia.rox</a></dt><dd> This isn't even a real newsgroup! -</dd></dl> - -!! end - -!! test -Malformed definition list with colon -!! input -; news:alt.wikipedia.rox -- don't crash or enter an infinite loop -!! result -<dl><dt> <a rel="nofollow" class="external free" href="news:alt.wikipedia.rox">news:alt.wikipedia.rox</a> -- don't crash or enter an infinite loop -</dt></dl> - -!! end - -!! test -Definition lists: colon in external link text -!! input -; [http://www.wikipedia2.org/ Wikipedia : The Next Generation]: OK, I made that up -!! result -<dl><dt> <a rel="nofollow" class="external text" href="http://www.wikipedia2.org/">Wikipedia : The Next Generation</a></dt><dd> OK, I made that up -</dd></dl> - -!! end - -!! test -Definition lists: colon in HTML attribute -!! input -;<b style="display: inline">bold</b> -!! result -<dl><dt><b style="display: inline">bold</b> -</dt></dl> - -!! end - - -!! test -Definition lists: self-closed tag -!! input -;one<br/>two : two-line fun -!! result -<dl><dt>one<br />two </dt><dd> two-line fun -</dd></dl> - -!! end - -!! test -Bug 11748: Literal closing tags -!! options -disabled -!! input -<dl> -<dt>test 1</dt> -<dd>test test test test test</dd> -<dt>test 2</dt> -<dd>test test test test test</dd> -</dl> -!! result -<dl> -<dt>test 1</dt> -<dd>test test test test test</dd> -<dt>test 2</dt> -<dd>test test test test test</dd> -</dl> -!! end - -!! test -Definition and unordered list using wiki syntax nested in unordered list using html tags. -!! input -<ul><li> -; term : description -* unordered -</li> -</ul> -!! result -<ul><li> -<dl><dt> term </dt><dd> description -</dd></dl> -<ul><li> unordered -</li></ul> -</li> -</ul> - -!! end - -!! test -Definition list with empty definition and following paragraph -!! input -; term: -Paragraph text -!! result -<dl><dt> term</dt><dd> -</dd></dl> -<p>Paragraph text -</p> -!! end - -!! test -Definition Lists: No nesting: Multiple dd's -!! input -;x -:a -:b -!! result -<dl><dt>x -</dt><dd>a -</dd><dd>b -</dd></dl> - -!! end - -!! test -Definition Lists: Indentation: Regular -!! input -:i1 -::i2 -:::i3 -!! result -<dl><dd>i1 -<dl><dd>i2 -<dl><dd>i3 -</dd></dl> -</dd></dl> -</dd></dl> - -!! end - -!! test -Definition Lists: Indentation: Missing 1st level -!! input -::i2 -:::i3 -!! result -<dl><dd><dl><dd>i2 -<dl><dd>i3 -</dd></dl> -</dd></dl> -</dd></dl> - -!! end - -!! test -Definition Lists: Indentation: Multi-level indent -!! input -:::i3 -!! result -<dl><dd><dl><dd><dl><dd>i3 -</dd></dl> -</dd></dl> -</dd></dl> - -!! end - -## The PHP parser treats : items (dd) without a corresponding ; item (dt) -## as an empty dt item. It also ignores all but the last ";" when followed -## by ":" later on. So, ";" are not ignored in ";;;t3" but are ignored in -## ";;;t3 :d1". So, PHP parser behavior is a little inconsistent wrt multiple -## ";"s. -## -## Ex: ";;t2 ::d2" is transformed into: -## -## <dl> -## <dt>t2 </dt> -## <dd> -## <dl> -## <dt></dt> -## <dd>d2</dd> -## </dl> -## </dd> -## </dl> -## -## But, Parsoid treats "; :" as a tight atomic unit and excess ":" as plain text -## So, the same wikitext above (;;t2 ::d2) is transformed into: -## -## <dl> -## <dt> -## <dl> -## <dt>t2 </dt> -## <dd>:d2</dd> -## </dl> -## </dt> -## </dl> -## -## All Parsoid only definition list tests have this difference. -## -## See also: https://bugzilla.wikimedia.org/show_bug.cgi?id=6569 -## and http://lists.wikimedia.org/pipermail/wikitext-l/2011-November/000483.html - -!! test -Definition Lists: Nesting: Multi-level (Parsoid only) -!! options -disabled -!! input -;t1 :d1 -;;t2 ::d2 -;;;t3 :::d3 -!! result -<dl> - <dt>t1 </dt> - <dd>d1</dd> - <dt> - <dl> - <dt>t2 </dt> - <dd>:d2</dd> - <dt> - <dl> - <dt>t3 </dt> - <dd>::d3</dd> - </dl> - </dt> - </dl> - </dt> -</dl> - - -!! end - - -!! test -Definition Lists: Nesting: Test 2 (Parsoid only) -!! options -disabled -!! input -;t1 -::d2 -!! result -<dl> - <dt>t1</dt> - <dd> - <dl> - <dd>d2</dd> - </dl> - </dd> -</dl> - -!! end - - -!! test -Definition Lists: Nesting: Test 3 (Parsoid only) -!! options -disabled -!! input -:;t1 -::::d2 -!! result -<dl> - <dd> - <dl> - <dt>t1</dt> - <dd> - <dl> - <dd> - <dl> - <dd>d2</dd> - </dl> - </dd> - </dl> - </dd> - </dl> - </dd> -</dl> - -!! end - - -!! test -Definition Lists: Nesting: Test 4 -!! input -::;t3 -:::d3 -!! result -<dl><dd><dl><dd><dl><dt>t3 -</dt><dd>d3 -</dd></dl> -</dd></dl> -</dd></dl> - -!! end - - -!! test -Definition Lists: Mixed Lists: Test 1 -!! input -:;* foo -::* bar -:; baz -!! result -<dl><dd><dl><dt><ul><li> foo -</li><li> bar -</li></ul> -</dt></dl> -<dl><dt> baz -</dt></dl> -</dd></dl> - -!! end - - -!! test -Definition Lists: Mixed Lists: Test 2 -!! input -*: d1 -*: d2 -!! result -<ul><li><dl><dd> d1 -</dd><dd> d2 -</dd></dl> -</li></ul> - -!! end - - -!! test -Definition Lists: Mixed Lists: Test 3 -!! input -*::: d1 -*::: d2 -!! result -<ul><li><dl><dd><dl><dd><dl><dd> d1 -</dd><dd> d2 -</dd></dl> -</dd></dl> -</dd></dl> -</li></ul> - -!! end - - -!! test -Definition Lists: Mixed Lists: Test 4 -!! input -*;d1 :d2 -*;d3 :d4 -!! result -<ul><li><dl><dt>d1 </dt><dd>d2 -</dd><dt>d3 </dt><dd>d4 -</dd></dl> -</li></ul> - -!! end - - -!! test -Definition Lists: Mixed Lists: Test 5 -!! input -*:d1 -*:: d2 -!! result -<ul><li><dl><dd>d1 -<dl><dd> d2 -</dd></dl> -</dd></dl> -</li></ul> - -!! end - - -!! test -Definition Lists: Mixed Lists: Test 6 -!! input -#*:d1 -#*::: d3 -!! result -<ol><li><ul><li><dl><dd>d1 -<dl><dd><dl><dd> d3 -</dd></dl> -</dd></dl> -</dd></dl> -</li></ul> -</li></ol> - -!! end - - -!! test -Definition Lists: Mixed Lists: Test 7 -!! input -:* d1 -:* d2 -!! result -<dl><dd><ul><li> d1 -</li><li> d2 -</li></ul> -</dd></dl> - -!! end - - -!! test -Definition Lists: Mixed Lists: Test 8 -!! input -:* d1 -::* d2 -!! result -<dl><dd><ul><li> d1 -</li></ul> -<dl><dd><ul><li> d2 -</li></ul> -</dd></dl> -</dd></dl> - -!! end - - -!! test -Definition Lists: Mixed Lists: Test 9 -!! input -*;foo :bar -!! result -<ul><li><dl><dt>foo </dt><dd>bar -</dd></dl> -</li></ul> - -!! end - - -!! test -Definition Lists: Mixed Lists: Test 10 -!! input -*#;foo :bar -!! result -<ul><li><ol><li><dl><dt>foo </dt><dd>bar -</dd></dl> -</li></ol> -</li></ul> - -!! end - - -!! test -Definition Lists: Mixed Lists: Test 11 -!! input -*#*#;*;;foo :bar -*#*#;boo :baz -!! result -<ul><li><ol><li><ul><li><ol><li><dl><dt>foo </dt><dd><ul><li><dl><dt><dl><dt>bar -</dt></dl> -</dd></dl> -</li></ul> -</dd></dl> -<dl><dt>boo </dt><dd>baz -</dd></dl> -</li></ol> -</li></ul> -</li></ol> -</li></ul> - -!! end - - -!! test -Definition Lists: Weird Ones: Test 1 -!! input -*#;*::;; foo : bar (who uses this?) -!! result -<ul><li><ol><li><dl><dt> foo </dt><dd><ul><li><dl><dd><dl><dd><dl><dt><dl><dt> bar (who uses this?) -</dt></dl> -</dd></dl> -</dd></dl> -</dd></dl> -</li></ul> -</dd></dl> -</li></ol> -</li></ul> - -!! end - -### -### External links -### -!! test -External links: non-bracketed -!! input -Non-bracketed: http://example.com -!! result -<p>Non-bracketed: <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a> -</p> -!! end - -!! test -External links: numbered -!! input -Numbered: [http://example.com] -Numbered: [http://example.net] -Numbered: [http://example.com] -!! result -<p>Numbered: <a rel="nofollow" class="external autonumber" href="http://example.com">[1]</a> -Numbered: <a rel="nofollow" class="external autonumber" href="http://example.net">[2]</a> -Numbered: <a rel="nofollow" class="external autonumber" href="http://example.com">[3]</a> -</p> -!!end - -!! test -External links: specified text -!! input -Specified text: [http://example.com link] -!! result -<p>Specified text: <a rel="nofollow" class="external text" href="http://example.com">link</a> -</p> -!!end - -!! test -External links: trail -!! input -Linktrails should not work for external links: [http://example.com link]s -!! result -<p>Linktrails should not work for external links: <a rel="nofollow" class="external text" href="http://example.com">link</a>s -</p> -!! end - -!! test -External links: dollar sign in URL -!! input -http://example.com/1$2345 -!! result -<p><a rel="nofollow" class="external free" href="http://example.com/1$2345">http://example.com/1$2345</a> -</p> -!! end - -!! test -External links: dollar sign in URL (named) -!! input -[http://example.com/1$2345] -!! result -<p><a rel="nofollow" class="external autonumber" href="http://example.com/1$2345">[1]</a> -</p> -!!end - -!! test -External links: open square bracket forbidden in URL (bug 4377) -!! input -http://example.com/1[2345 -!! result -<p><a rel="nofollow" class="external free" href="http://example.com/1">http://example.com/1</a>[2345 -</p> -!! end - -!! test -External links: open square bracket forbidden in URL (named) (bug 4377) -!! input -[http://example.com/1[2345] -!! result -<p><a rel="nofollow" class="external text" href="http://example.com/1">[2345</a> -</p> -!!end - -!! test -External links: nowiki in URL link text (bug 6230) -!!input -[http://example.com/ <nowiki>''example site''</nowiki>] -!! result -<p><a rel="nofollow" class="external text" href="http://example.com/">''example site''</a> -</p> -!! end - -!! test -External links: newline forbidden in text (bug 6230 regression check) -!! input -[http://example.com/ first -second] -!! result -<p>[<a rel="nofollow" class="external free" href="http://example.com/">http://example.com/</a> first -second] -</p> -!!end - -!! test -External links: protocol-relative URL in brackets -!! input -[//example.com/ Test] -!! result -<p><a rel="nofollow" class="external text" href="//example.com/">Test</a> -</p> -!! end - -!! test -External links: protocol-relative URL in brackets without text -!! input -[//example.com] -!! result -<p><a rel="nofollow" class="external autonumber" href="//example.com">[1]</a> -</p> -!! end - -!! test -External links: protocol-relative URL in free text is left alone -!! input -//example.com/Foo -!! result -<p>//example.com/Foo -</p> -!!end - -!! test -External links: protocol-relative URL in the middle of a word is left alone (bug 30269) -!! input -foo//example.com/Foo -!! result -<p>foo//example.com/Foo -</p> -!! end - -!! test -External image -!! input -External image: http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png -!! result -<p>External image: <img src="http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" /> -</p> -!! end - -!! test -External image from https -!! input -External image from https: https://meta.wikimedia.org/upload/f/f1/Ncwikicol.png -!! result -<p>External image from https: <img src="https://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" /> -</p> -!! end - -!! test -Link to non-http image, no img tag -!! input -Link to non-http image, no img tag: ftp://example.com/test.jpg -!! result -<p>Link to non-http image, no img tag: <a rel="nofollow" class="external free" href="ftp://example.com/test.jpg">ftp://example.com/test.jpg</a> -</p> -!! end - -!! test -External links: terminating separator -!! input -Terminating separator: http://example.com/thing, -!! result -<p>Terminating separator: <a rel="nofollow" class="external free" href="http://example.com/thing">http://example.com/thing</a>, -</p> -!! end - -!! test -External links: intervening separator -!! input -Intervening separator: http://example.com/1,2,3 -!! result -<p>Intervening separator: <a rel="nofollow" class="external free" href="http://example.com/1,2,3">http://example.com/1,2,3</a> -</p> -!! end - -!! test -External links: old bug with URL in query -!! input -Old bug with URL in query: [http://example.com/thing?url=http://example.com link] -!! result -<p>Old bug with URL in query: <a rel="nofollow" class="external text" href="http://example.com/thing?url=http://example.com">link</a> -</p> -!! end - -!! test -External links: old URL-in-URL bug, mixed protocols -!! input -And again with mixed protocols: [ftp://example.com?url=http://example.com link] -!! result -<p>And again with mixed protocols: <a rel="nofollow" class="external text" href="ftp://example.com?url=http://example.com">link</a> -</p> -!!end - -!! test -External links: URL in text -!! input -URL in text: [http://example.com http://example.com] -!! result -<p>URL in text: <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a> -</p> -!! end - -!! test -External links: Clickable images -!! input -ja-style clickable images: [http://example.com http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png] -!! result -<p>ja-style clickable images: <a rel="nofollow" class="external text" href="http://example.com"><img src="http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" /></a> -</p> -!!end - -!! test -External links: raw ampersand -!! input -Old & use: http://x&y -!! result -<p>Old & use: <a rel="nofollow" class="external free" href="http://x&y">http://x&y</a> -</p> -!! end - -!! test -External links: encoded ampersand -!! input -Old & use: http://x&y -!! result -<p>Old & use: <a rel="nofollow" class="external free" href="http://x&y">http://x&y</a> -</p> -!! end - -!! test -External links: encoded equals (bug 6102) -!! input -http://example.com/?foo=bar -!! result -<p><a rel="nofollow" class="external free" href="http://example.com/?foo=bar">http://example.com/?foo=bar</a> -</p> -!! end - -!! test -External links: [raw ampersand] -!! input -Old & use: [http://x&y] -!! result -<p>Old & use: <a rel="nofollow" class="external autonumber" href="http://x&y">[1]</a> -</p> -!! end - -!! test -External links: [encoded ampersand] -!! input -Old & use: [http://x&y] -!! result -<p>Old & use: <a rel="nofollow" class="external autonumber" href="http://x&y">[1]</a> -</p> -!! end - -!! test -External links: [encoded equals] (bug 6102) -!! input -[http://example.com/?foo=bar] -!! result -<p><a rel="nofollow" class="external autonumber" href="http://example.com/?foo=bar">[1]</a> -</p> -!! end - -!! test -External links: [IDN ignored character reference in hostname; strip it right off] -!! input -[http://e‌xample.com/] -!! result -<p><a rel="nofollow" class="external autonumber" href="http://example.com/">[1]</a> -</p> -!! end - -# FIXME: This test (the IDN characters in the text of a link) is an inconsistency. -# Where an external link could easily circumvent the sanitization of the text of -# a link like this (where an IDN-ignore character is in the URL somewhere), this -# test demands a higher standard. That's a bit strange. -# -# Example: -# -# http://example.com -> [http://example.com|http://example.com] -# [http://example.com|http://example.com] -> [http://example.com|http://example.com] -# -# The first example is sanitized, but the second is not. Any security benefits -# from this production are trivial to circumvent. Either remove this test and -# let the parser(s) do their thing unaccosted, or fix the inconsistency and change -# the test accordingly. -# -# All our love, -# The Parsoid team. -!! test -External links: IDN ignored character reference in hostname; strip it right off -!! input -http://e‌xample.com/ -!! result -<p><a rel="nofollow" class="external free" href="http://example.com/">http://example.com/</a> -</p> -!! end - -!! test -External links: www.jpeg.org (bug 554) -!! input -http://www.jpeg.org -!!result -<p><a rel="nofollow" class="external free" href="http://www.jpeg.org">http://www.jpeg.org</a> -</p> -!! end - -!! test -External links: URL within URL (original bug 2) -!! input -[http://www.unausa.org/newindex.asp?place=http://www.unausa.org/programs/mun.asp] -!! result -<p><a rel="nofollow" class="external autonumber" href="http://www.unausa.org/newindex.asp?place=http://www.unausa.org/programs/mun.asp">[1]</a> -</p> -!! end - -!! test -BUG 361: URL inside bracketed URL -!! input -[http://www.example.com/foo http://www.example.com/bar] -!! result -<p><a rel="nofollow" class="external text" href="http://www.example.com/foo">http://www.example.com/bar</a> -</p> -!! end - -!! test -BUG 361: URL within URL, not bracketed -!! input -http://www.example.com/foo?=http://www.example.com/bar -!! result -<p><a rel="nofollow" class="external free" href="http://www.example.com/foo?=http://www.example.com/bar">http://www.example.com/foo?=http://www.example.com/bar</a> -</p> -!! end - -!! test -BUG 289: ">"-token in URL-tail -!! input -http://www.example.com/<hello> -!! result -<p><a rel="nofollow" class="external free" href="http://www.example.com/">http://www.example.com/</a><hello> -</p> -!!end - -!! test -BUG 289: literal ">"-token in URL-tail -!! input -http://www.example.com/<b>html</b> -!! result -<p><a rel="nofollow" class="external free" href="http://www.example.com/">http://www.example.com/</a><b>html</b> -</p> -!!end - -!! test -BUG 289: ">"-token in bracketed URL -!! input -[http://www.example.com/<hello> stuff] -!! result -<p><a rel="nofollow" class="external text" href="http://www.example.com/"><hello> stuff</a> -</p> -!!end - -!! test -BUG 289: literal ">"-token in bracketed URL -!! input -[http://www.example.com/<b>html</b> stuff] -!! result -<p><a rel="nofollow" class="external text" href="http://www.example.com/"><b>html</b> stuff</a> -</p> -!!end - -!! test -BUG 289: literal double quote at end of URL -!! input -http://www.example.com/"hello" -!! result -<p><a rel="nofollow" class="external free" href="http://www.example.com/">http://www.example.com/</a>"hello" -</p> -!!end - -!! test -BUG 289: literal double quote in bracketed URL -!! input -[http://www.example.com/"hello" stuff] -!! result -<p><a rel="nofollow" class="external text" href="http://www.example.com/">"hello" stuff</a> -</p> -!!end - -!! test -External links: multiple legal whitespace is fine, Magnus. Don't break it please. (bug 5081) -!! input -[http://www.example.com test] -!! result -<p><a rel="nofollow" class="external text" href="http://www.example.com">test</a> -</p> -!! end - -!! test -External links: wiki links within external link (Bug 3695) -!! input -[http://example.com [[wikilink]] embedded in ext link] -!! result -<p><a rel="nofollow" class="external text" href="http://example.com"></a><a href="/index.php?title=Wikilink&action=edit&redlink=1" class="new" title="Wikilink (page does not exist)">wikilink</a><a rel="nofollow" class="external text" href="http://example.com"> embedded in ext link</a> -</p> -!! end - -!! test -BUG 787: Links with one slash after the url protocol are invalid -!! input -http:/example.com - -[http:/example.com title] -!! result -<p>http:/example.com -</p><p>[http:/example.com title] -</p> -!! end - -!! test -Bug 2702: Mismatched <i>, <b> and <a> tags are invalid -!! input -''[http://example.com text''] -[http://example.com '''text]''' -''Something [http://example.com in italic''] -''Something [http://example.com mixed''''', even bold]''' -'''''Now [http://example.com both'''''] -!! result -<p><a rel="nofollow" class="external text" href="http://example.com"><i>text</i></a> -<a rel="nofollow" class="external text" href="http://example.com"><b>text</b></a> -<i>Something </i><a rel="nofollow" class="external text" href="http://example.com"><i>in italic</i></a> -<i>Something </i><a rel="nofollow" class="external text" href="http://example.com"><i>mixed</i><b>, even bold</b></a> -<i><b>Now </b></i><a rel="nofollow" class="external text" href="http://example.com"><i><b>both</b></i></a> -</p> -!! end - - -!! test -Bug 4781: %26 in URL -!! input -http://www.example.com/?title=AT%26T -!! result -<p><a rel="nofollow" class="external free" href="http://www.example.com/?title=AT%26T">http://www.example.com/?title=AT%26T</a> -</p> -!! end - -# According to http://dev.w3.org/html5/spec/Overview.html#parsing-urls a plain -# % is actually legal in HTML5. Any change in output would need testing though. -!! test -Bug 4781, 5267: %25 in URL -!! input -http://www.example.com/?title=100%25_Bran -!! result -<p><a rel="nofollow" class="external free" href="http://www.example.com/?title=100%25_Bran">http://www.example.com/?title=100%25_Bran</a> -</p> -!! end - -!! test -Bug 4781, 5267: %28, %29 in URL -!! input -http://www.example.com/?title=Ben-Hur_%281959_film%29 -!! result -<p><a rel="nofollow" class="external free" href="http://www.example.com/?title=Ben-Hur_%281959_film%29">http://www.example.com/?title=Ben-Hur_%281959_film%29</a> -</p> -!! end - - -!! test -Bug 4781: %26 in autonumber URL -!! input -[http://www.example.com/?title=AT%26T] -!! result -<p><a rel="nofollow" class="external autonumber" href="http://www.example.com/?title=AT%26T">[1]</a> -</p> -!! end - -!! test -Bug 4781, 5267: %26 in autonumber URL -!! input -[http://www.example.com/?title=100%25_Bran] -!! result -<p><a rel="nofollow" class="external autonumber" href="http://www.example.com/?title=100%25_Bran">[1]</a> -</p> -!! end - -!! test -Bug 4781, 5267: %28, %29 in autonumber URL -!! input -[http://www.example.com/?title=Ben-Hur_%281959_film%29] -!! result -<p><a rel="nofollow" class="external autonumber" href="http://www.example.com/?title=Ben-Hur_%281959_film%29">[1]</a> -</p> -!! end - - -!! test -Bug 4781: %26 in bracketed URL -!! input -[http://www.example.com/?title=AT%26T link] -!! result -<p><a rel="nofollow" class="external text" href="http://www.example.com/?title=AT%26T">link</a> -</p> -!! end - -!! test -Bug 4781, 5267: %26 in bracketed URL -!! input -[http://www.example.com/?title=100%25_Bran link] -!! result -<p><a rel="nofollow" class="external text" href="http://www.example.com/?title=100%25_Bran">link</a> -</p> -!! end - -!! test -Bug 4781, 5267: %28, %29 in bracketed URL -!! input -[http://www.example.com/?title=Ben-Hur_%281959_film%29 link] -!! result -<p><a rel="nofollow" class="external text" href="http://www.example.com/?title=Ben-Hur_%281959_film%29">link</a> -</p> -!! end - -!! test -External link containing double-single-quotes in text '' (bug 4598 sanity check) -!! input -Some [http://example.com/ pretty ''italics'' and stuff]! -!! result -<p>Some <a rel="nofollow" class="external text" href="http://example.com/">pretty <i>italics</i> and stuff</a>! -</p> -!! end - -!! test -External link containing double-single-quotes in text embedded in italics (bug 4598 sanity check) -!! input -''Some [http://example.com/ pretty ''italics'' and stuff]!'' -!! result -<p><i>Some </i><a rel="nofollow" class="external text" href="http://example.com/"><i>pretty </i>italics<i> and stuff</i></a><i>!</i> -</p> -!! end - -!! test -External link containing double-single-quotes with no space separating the url from text in italics -!! input -[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm''La muerte de Casagemas'' (1901) en el sitio de [[Museo Picasso (París)|Museo Picasso]].] -!! result -<p><a rel="nofollow" class="external text" href="http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm"><i>La muerte de Casagemas</i> (1901) en el sitio de <a href="/index.php?title=Museo_Picasso_(Par%C3%ADs)&action=edit&redlink=1" class="new" title="Museo Picasso (París) (page does not exist)">Museo Picasso</a>.</a> -</p> -!! end - -!! test -URL-encoding in URL functions (single parameter) -!! input -{{localurl:Some page|amp=&}} -!! result -<p>/index.php?title=Some_page&amp=& -</p> -!! end - -!! test -URL-encoding in URL functions (multiple parameters) -!! input -{{localurl:Some page|q=?&=&}} -!! result -<p>/index.php?title=Some_page&q=?&amp=& -</p> -!! end - -!! test -Brackets in urls -!! input -http://example.com/index.php?foozoid%5B%5D=bar - -http://example.com/index.php?foozoid[]=bar -!! result -<p><a rel="nofollow" class="external free" href="http://example.com/index.php?foozoid%5B%5D=bar">http://example.com/index.php?foozoid%5B%5D=bar</a> -</p><p><a rel="nofollow" class="external free" href="http://example.com/index.php?foozoid%5B%5D=bar">http://example.com/index.php?foozoid%5B%5D=bar</a> -</p> -!! end - -!! test -IPv6 urls (bug 21261) -!! options -disabled -!! input -http://[2404:130:0:1000::187:2]/index.php -!! result -<p><a rel="nofollow" class="external free" href="http://[2404:130:0:1000::187:2]/index.php">http://[2404:130:0:1000::187:2]/index.php</a> -</p> -!! end - -### -### Quotes -### - -!! test -Quotes -!! input -Normal text. '''Bold text.''' Normal text. ''Italic text.'' - -Normal text. '''''Bold italic text.''''' Normal text. -!!result -<p>Normal text. <b>Bold text.</b> Normal text. <i>Italic text.</i> -</p><p>Normal text. <i><b>Bold italic text.</b></i> Normal text. -</p> -!! end - - -!! test -Unclosed and unmatched quotes -!! input -'''''Bold italic text '''with bold deactivated''' in between.''''' - -'''''Bold italic text ''with italic deactivated'' in between.''''' - -'''Bold text.. - -..spanning two paragraphs (should not work).''' - -'''Bold tag left open - -''Italic tag left open - -Normal text. - -<!-- Unmatching number of opening, closing tags: --> -'''This year''''s election ''should'' beat '''last year''''s. - -''Tom'''s car is bigger than ''Susan'''s. - -Plain ''italic'''s plain -!! result -<p><i><b>Bold italic text </b>with bold deactivated<b> in between.</b></i> -</p><p><b><i>Bold italic text </i>with italic deactivated<i> in between.</i></b> -</p><p><b>Bold text..</b> -</p><p>..spanning two paragraphs (should not work). -</p><p><b>Bold tag left open</b> -</p><p><i>Italic tag left open</i> -</p><p>Normal text. -</p><p><b>This year'</b>s election <i>should</i> beat <b>last year'</b>s. -</p><p><i>Tom<b>s car is bigger than </b></i><b>Susan</b>s. -</p><p>Plain <i>italic'</i>s plain -</p> -!! end - -### -### Tables -### -### some content taken from http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide:_Using_tables -### - -# This should not produce <table></table> as <table><tr><td></td></tr></table> -# is the bare minimun required by the spec, see: -# http://www.w3.org/TR/xhtml-modularization/dtd_module_defs.html#a_module_Basic_Tables -!! test -A table with no data. -!! input -{||} -!! result -!! end - -# A table with nothing but a caption is invalid XHTML, we might want to render -# this as <p>caption</p> -!! test -A table with nothing but a caption -!! input -{| -|+ caption -|} -!! result -<table> -<caption> caption -</caption><tr><td></td></tr></table> - -!! end - -!! test -Simple table -!! input -{| -| 1 || 2 -|- -| 3 || 4 -|} -!! result -<table> -<tr> -<td> 1 </td> -<td> 2 -</td></tr> -<tr> -<td> 3 </td> -<td> 4 -</td></tr></table> - -!! end - -!! test -Multiplication table -!! input -{| border="1" cellpadding="2" -|+Multiplication table -|- -! × !! 1 !! 2 !! 3 -|- -! 1 -| 1 || 2 || 3 -|- -! 2 -| 2 || 4 || 6 -|- -! 3 -| 3 || 6 || 9 -|- -! 4 -| 4 || 8 || 12 -|- -! 5 -| 5 || 10 || 15 -|} -!! result -<table border="1" cellpadding="2"> -<caption>Multiplication table -</caption> -<tr> -<th> × </th> -<th> 1 </th> -<th> 2 </th> -<th> 3 -</th></tr> -<tr> -<th> 1 -</th> -<td> 1 </td> -<td> 2 </td> -<td> 3 -</td></tr> -<tr> -<th> 2 -</th> -<td> 2 </td> -<td> 4 </td> -<td> 6 -</td></tr> -<tr> -<th> 3 -</th> -<td> 3 </td> -<td> 6 </td> -<td> 9 -</td></tr> -<tr> -<th> 4 -</th> -<td> 4 </td> -<td> 8 </td> -<td> 12 -</td></tr> -<tr> -<th> 5 -</th> -<td> 5 </td> -<td> 10 </td> -<td> 15 -</td></tr></table> - -!! end - -!! test -Table rowspan -!! input -{| border=1 -| Cell 1, row 1 -|rowspan=2| Cell 2, row 1 (and 2) -| Cell 3, row 1 -|- -| Cell 1, row 2 -| Cell 3, row 2 -|} -!! result -<table border="1"> -<tr> -<td> Cell 1, row 1 -</td> -<td rowspan="2"> Cell 2, row 1 (and 2) -</td> -<td> Cell 3, row 1 -</td></tr> -<tr> -<td> Cell 1, row 2 -</td> -<td> Cell 3, row 2 -</td></tr></table> - -!! end - -!! test -Nested table -!! input -{| border=1 -| α -| -{| bgcolor=#ABCDEF border=2 -|nested -|- -|table -|} -|the original table again -|} -!! result -<table border="1"> -<tr> -<td> α -</td> -<td> -<table bgcolor="#ABCDEF" border="2"> -<tr> -<td>nested -</td></tr> -<tr> -<td>table -</td></tr></table> -</td> -<td>the original table again -</td></tr></table> - -!! end - -!! test -Invalid attributes in table cell (bug 1830) -!! input -{| -|Cell:|broken -|} -!! result -<table> -<tr> -<td>broken -</td></tr></table> - -!! end - - -!! test -Table security: embedded pipes (http://lists.wikimedia.org/mailman/htdig/wikitech-l/2006-April/022293.html) -!! input -{| -| |[ftp://|x||]" onmouseover="alert(document.cookie)">test -!! result -<table> -<tr> -<td>[<a rel="nofollow" class="external free" href="ftp://%7Cx">ftp://%7Cx</a></td> -<td>]" onmouseover="alert(document.cookie)">test -</td> -</tr> -</table> - -!! end - - -!! test -Indented table markup mixed with indented pre content (proposed in bug 6200) -!! input - <table> - <tr> - <td> - Text that should be rendered preformatted - </td> - </tr> - </table> -!! result - <table> - <tr> - <td> -<pre>Text that should be rendered preformatted -</pre> - </td> - </tr> - </table> - -!! end - - -### -### Internal links -### -!! test -Plain link, capitalized -!! input -[[Main Page]] -!! result -<p><a href="/wiki/Main_Page" title="Main Page">Main Page</a> -</p> -!! end - -!! test -Plain link, uncapitalized -!! input -[[main Page]] -!! result -<p><a href="/wiki/Main_Page" title="Main Page">main Page</a> -</p> -!! end - -!! test -Piped link -!! input -[[Main Page|The Main Page]] -!! result -<p><a href="/wiki/Main_Page" title="Main Page">The Main Page</a> -</p> -!! end - -!! test -Broken link -!! input -[[Zigzagzogzagzig]] -!! result -<p><a href="/index.php?title=Zigzagzogzagzig&action=edit&redlink=1" class="new" title="Zigzagzogzagzig (page does not exist)">Zigzagzogzagzig</a> -</p> -!! end - -!! test -Broken link with fragment -!! input -[[Zigzagzogzagzig#zug]] -!! result -<p><a href="/index.php?title=Zigzagzogzagzig&action=edit&redlink=1" class="new" title="Zigzagzogzagzig (page does not exist)">Zigzagzogzagzig#zug</a> -</p> -!! end - -!! test -Special page link with fragment -!! input -[[Special:Version#anchor]] -!! result -<p><a href="/wiki/Special:Version#anchor" title="Special:Version">Special:Version#anchor</a> -</p> -!! end - -!! test -Nonexistent special page link with fragment -!! input -[[Special:ThisNameWillHopefullyNeverBeUsed#anchor]] -!! result -<p><a href="/wiki/Special:ThisNameWillHopefullyNeverBeUsed" class="new" title="Special:ThisNameWillHopefullyNeverBeUsed (page does not exist)">Special:ThisNameWillHopefullyNeverBeUsed#anchor</a> -</p> -!! end - -!! test -Link with prefix -!! input -xxx[[main Page]], xxx[[Main Page]], Xxx[[main Page]] XXX[[main Page]], XXX[[Main Page]] -!! result -<p>xxx<a href="/wiki/Main_Page" title="Main Page">main Page</a>, xxx<a href="/wiki/Main_Page" title="Main Page">Main Page</a>, Xxx<a href="/wiki/Main_Page" title="Main Page">main Page</a> XXX<a href="/wiki/Main_Page" title="Main Page">main Page</a>, XXX<a href="/wiki/Main_Page" title="Main Page">Main Page</a> -</p> -!! end - -!! test -Link with suffix -!! input -[[Main Page]]xxx, [[Main Page]]XXX, [[Main Page]]!!! -!! result -<p><a href="/wiki/Main_Page" title="Main Page">Main Pagexxx</a>, <a href="/wiki/Main_Page" title="Main Page">Main Page</a>XXX, <a href="/wiki/Main_Page" title="Main Page">Main Page</a>!!! -</p> -!! end - -!! test -Link with 3 brackets -!! input -[[[main page]]] -!! result -<p>[[[main page]]] -</p> -!! end - -!! test -Piped link with 3 brackets -!! input -[[[main page|the main page]]] -!! result -<p>[[[main page|the main page]]] -</p> -!! end - -!! test -Link with multiple pipes -!! input -[[Main Page|The|Main|Page]] -!! result -<p><a href="/wiki/Main_Page" title="Main Page">The|Main|Page</a> -</p> -!! end - -!! test -Link to namespaces -!! input -[[Talk:Parser testing]], [[Meta:Disclaimers]] -!! result -<p><a href="/index.php?title=Talk:Parser_testing&action=edit&redlink=1" class="new" title="Talk:Parser testing (page does not exist)">Talk:Parser testing</a>, <a href="/index.php?title=Meta:Disclaimers&action=edit&redlink=1" class="new" title="Meta:Disclaimers (page does not exist)">Meta:Disclaimers</a> -</p> -!! end - -!! test -Piped link to namespace -!! input -[[Meta:Disclaimers|The disclaimers]] -!! result -<p><a href="/index.php?title=Meta:Disclaimers&action=edit&redlink=1" class="new" title="Meta:Disclaimers (page does not exist)">The disclaimers</a> -</p> -!! end - -!! test -Link containing } -!! input -[[Usually caused by a typo (oops}]] -!! result -<p>[[Usually caused by a typo (oops}]] -</p> -!! end - -!! test -Link containing % (not as a hex sequence) -!! input -[[7% Solution]] -!! result -<p><a href="/index.php?title=7%25_Solution&action=edit&redlink=1" class="new" title="7% Solution (page does not exist)">7% Solution</a> -</p> -!! end - -!! test -Link containing % as a single hex sequence interpreted to char -!! input -[[7%25 Solution]] -!! result -<p><a href="/index.php?title=7%25_Solution&action=edit&redlink=1" class="new" title="7% Solution (page does not exist)">7% Solution</a> -</p> -!!end - -!! test -Link containing % as a double hex sequence interpreted to hex sequence -!! input -[[7%2525 Solution]] -!! result -<p>[[7%2525 Solution]] -</p> -!!end - -!! test -Link containing "#<" and "#>" % as a hex sequences- these are valid section anchors -Example for such a section: == < == -!! input -[[%23%3c]][[%23%3e]] -!! result -<p><a href="#.3C">#<</a><a href="#.3E">#></a> -</p> -!! end - -!! test -Link containing "<#" and ">#" as a hex sequences -!! input -[[%3c%23]][[%3e%23]] -!! result -<p>[[%3c%23]][[%3e%23]] -</p> -!! end - -!! test -Link containing double-single-quotes '' (bug 4598) -!! input -[[Lista d''e paise d''o munno]] -!! result -<p><a href="/index.php?title=Lista_d%27%27e_paise_d%27%27o_munno&action=edit&redlink=1" class="new" title="Lista d''e paise d''o munno (page does not exist)">Lista d''e paise d''o munno</a> -</p> -!! end - -!! test -Link containing double-single-quotes '' in text (bug 4598 sanity check) -!! input -Some [[Link|pretty ''italics'' and stuff]]! -!! result -<p>Some <a href="/index.php?title=Link&action=edit&redlink=1" class="new" title="Link (page does not exist)">pretty <i>italics</i> and stuff</a>! -</p> -!! end - -!! test -Link containing double-single-quotes '' in text embedded in italics (bug 4598 sanity check) -!! input -''Some [[Link|pretty ''italics'' and stuff]]! -!! result -<p><i>Some <a href="/index.php?title=Link&action=edit&redlink=1" class="new" title="Link (page does not exist)">pretty <i>italics</i> and stuff</a>!</i> -</p> -!! end - -!! test -Link with double quotes in title part (literal) and alternate part (interpreted) -!! input -[[File:Denys Savchenko ''Pentecoste''.jpg]] - -[[''Pentecoste'']] - -[[''Pentecoste''|Pentecoste]] - -[[''Pentecoste''|''Pentecoste'']] -!! result -<p><a href="/index.php?title=Special:Upload&wpDestFile=Denys_Savchenko_%27%27Pentecoste%27%27.jpg" class="new" title="File:Denys Savchenko ''Pentecoste''.jpg">File:Denys Savchenko <i>Pentecoste</i>.jpg</a> -</p><p><a href="/index.php?title=%27%27Pentecoste%27%27&action=edit&redlink=1" class="new" title="''Pentecoste'' (page does not exist)">''Pentecoste''</a> -</p><p><a href="/index.php?title=%27%27Pentecoste%27%27&action=edit&redlink=1" class="new" title="''Pentecoste'' (page does not exist)">Pentecoste</a> -</p><p><a href="/index.php?title=%27%27Pentecoste%27%27&action=edit&redlink=1" class="new" title="''Pentecoste'' (page does not exist)"><i>Pentecoste</i></a> -</p> -!! end - -!! test -Broken image links with HTML captions (bug 39700) -!! input -[[File:Nonexistent|<script></script>]] -[[File:Nonexistent|100px|<script></script>]] -[[File:Nonexistent|<]] -[[File:Nonexistent|a<i>b</i>c]] -!! result -<p><a href="/index.php?title=Special:Upload&wpDestFile=Nonexistent" class="new" title="File:Nonexistent"><script></script></a> -<a href="/index.php?title=Special:Upload&wpDestFile=Nonexistent" class="new" title="File:Nonexistent"><script></script></a> -<a href="/index.php?title=Special:Upload&wpDestFile=Nonexistent" class="new" title="File:Nonexistent"><</a> -<a href="/index.php?title=Special:Upload&wpDestFile=Nonexistent" class="new" title="File:Nonexistent">abc</a> -</p> -!! end - -!! test -Plain link to URL -!! input -[[http://www.example.com]] -!! result -<p>[<a rel="nofollow" class="external autonumber" href="http://www.example.com">[1]</a>] -</p> -!! end - -!! test -Plain link to URL with link text -!! input -[[http://www.example.com Link text]] -!! result -<p>[<a rel="nofollow" class="external text" href="http://www.example.com">Link text</a>] -</p> -!! end - -!! test -Plain link to protocol-relative URL -!! input -[[//www.example.com]] -!! result -<p>[<a rel="nofollow" class="external autonumber" href="//www.example.com">[1]</a>] -</p> -!! end - -!! test -Plain link to protocol-relative URL with link text -!! input -[[//www.example.com Link text]] -!! result -<p>[<a rel="nofollow" class="external text" href="//www.example.com">Link text</a>] -</p> -!! end - - -# I'm fairly sure the expected result here is wrong. -# We want these to be URL links, not pseudo-pages with URLs for titles.... -# However the current output is also pretty screwy. -# -# ---- -# I'm changing it to match the current output--it arguably makes more -# sense in the light of the test above. Old expected result was: -#<p>Piped link to URL: <a href="/index.php?title=Http://www.example.com&action=edit" class="new">an example URL</a> -#</p> -# But I think this test is bordering on "garbage in, garbage out" anyway. -# -- wtm -!! test -Piped link to URL -!! input -Piped link to URL: [[http://www.example.com|an example URL]] -!! result -<p>Piped link to URL: [<a rel="nofollow" class="external text" href="http://www.example.com%7Can">example URL</a>] -</p> -!! end - -!! test -BUG 2: [[page|http://url/]] should link to page, not http://url/ -!! input -[[Main Page|http://url/]] -!! result -<p><a href="/wiki/Main_Page" title="Main Page">http://url/</a> -</p> -!! end - -!! test -BUG 337: Escaped self-links should be bold -!! options -title=[[Bug462]] -!! input -[[Bug462]] [[Bug462]] -!! result -<p><strong class="selflink">Bug462</strong> <strong class="selflink">Bug462</strong> -</p> -!! end - -!! test -Self-link to section should not be bold -!! options -title=[[Main Page]] -!! input -[[Main Page#section]] -!! result -<p><a href="/wiki/Main_Page#section" title="Main Page">Main Page#section</a> -</p> -!! end - -!! article -00 -!! text -This is 00. -!! endarticle - -!!test -Self-link to numeric title -!!options -title=[[0]] -!!input -[[0]] -!!result -<p><strong class="selflink">0</strong> -</p> -!!end - -!!test -Link to numeric-equivalent title -!!options -title=[[0]] -!!input -[[00]] -!!result -<p><a href="/wiki/00" title="00">00</a> -</p> -!!end - -!! test -<nowiki> inside a link -!! input -[[Main<nowiki> Page</nowiki>]] [[Main Page|the main page <nowiki>[it's not very good]</nowiki>]] -!! result -<p>[[Main Page]] <a href="/wiki/Main_Page" title="Main Page">the main page [it's not very good]</a> -</p> -!! end - -!! test -Non-breaking spaces in title -!! input -[[ Main Page ]] -!! result -<p><a href="/wiki/Main_Page" title="Main Page">  Main   Page  </a> -</p> -!!end - -!! test -Internal link with ca linktrail, surrounded by bold apostrophes (bug 27473 primary issue) -!! options -language=ca -!! input -'''[[Main Page]]''' -!! result -<p><b><a href="/wiki/Main_Page" title="Main Page">Main Page</a></b> -</p> -!! end - -!! test -Internal link with ca linktrail, surrounded by italic apostrophes (bug 27473 primary issue) -!! options -language=ca -!! input -''[[Main Page]]'' -!! result -<p><i><a href="/wiki/Main_Page" title="Main Page">Main Page</a></i> -</p> -!! end - -!! test -Internal link with en linktrail: no apostrophes (bug 27473) -!! options -language=en -!! input -[[Something]]'nice -!! result -<p><a href="/index.php?title=Something&action=edit&redlink=1" class="new" title="Something (page does not exist)">Something</a>'nice -</p> -!! end - -!! test -Internal link with ca linktrail with apostrophes (bug 27473) -!! options -language=ca -!! input -[[Something]]'nice -!! result -<p><a href="/index.php?title=Something&action=edit&redlink=1" class="new" title="Something (encara no existeix)">Something'nice</a> -</p> -!! end - -!! test -Internal link with kaa linktrail with apostrophes (bug 27473) -!! options -language=kaa -!! input -[[Something]]'nice -!! result -<p><a href="/index.php?title=Something&action=edit&redlink=1" class="new" title="Something (bet ele jaratılmag'an)">Something'nice</a> -</p> -!! end - -### -### Interwiki links (see maintenance/interwiki.sql) -### - -!! test -Inline interwiki link -!! input -[[MeatBall:SoftSecurity]] -!! result -<p><a href="http://www.usemod.com/cgi-bin/mb.pl?SoftSecurity" class="extiw" title="meatball:SoftSecurity">MeatBall:SoftSecurity</a> -</p> -!! end - -!! test -Inline interwiki link with empty title (bug 2372) -!! input -[[MeatBall:]] -!! result -<p><a href="http://www.usemod.com/cgi-bin/mb.pl" class="extiw" title="meatball:">MeatBall:</a> -</p> -!! end - -!! test -Interwiki link encoding conversion (bug 1636) -!! input -*[[Wikipedia:ro:Olteniţa]] -*[[Wikipedia:ro:Olteniţa]] -!! result -<ul><li><a href="http://en.wikipedia.org/wiki/ro:Olteni%C5%A3a" class="extiw" title="wikipedia:ro:Olteniţa">Wikipedia:ro:Olteniţa</a> -</li><li><a href="http://en.wikipedia.org/wiki/ro:Olteni%C5%A3a" class="extiw" title="wikipedia:ro:Olteniţa">Wikipedia:ro:Olteniţa</a> -</li></ul> - -!! end - -!! test -Interwiki link with fragment (bug 2130) -!! input -[[MeatBall:SoftSecurity#foo]] -!! result -<p><a href="http://www.usemod.com/cgi-bin/mb.pl?SoftSecurity#foo" class="extiw" title="meatball:SoftSecurity">MeatBall:SoftSecurity#foo</a> -</p> -!! end - -!! test -Interlanguage link -!! input -Blah blah blah -[[zh:Chinese]] -!!result -<p>Blah blah blah -</p> -!! end - -!! test -Double interlanguage link -!! input -Blah blah blah -[[es:Spanish]] -[[zh:Chinese]] -!!result -<p>Blah blah blah -</p> -!! end - -!! test -Interlanguage link, with prefix links -!! options -language=ln -!! input -Blah blah blah -[[zh:Chinese]] -!!result -<p>Blah blah blah -</p> -!! end - -!! test -Double interlanguage link, with prefix links (bug 8897) -!! options -language=ln -!! input -Blah blah blah -[[es:Spanish]] -[[zh:Chinese]] -!!result -<p>Blah blah blah -</p> -!! end - - -## -## XHTML tidiness -### - -!! test -<br> to <br /> -!! input -1<br>2<br />3 -!! result -<p>1<br />2<br />3 -</p> -!! end - -!! test -Incorrecly removing closing slashes from correctly formed XHTML -!! input -<br style="clear:both;" /> -!! result -<p><br style="clear:both;" /> -</p> -!! end - -!! test -Failing to transform badly formed HTML into correct XHTML -!! input -<br style="clear: left;"> -<br style="clear: right;"> -<br style="clear: both;"> -!! result -<p><br style="clear: left;" /> -<br style="clear: right;" /> -<br style="clear: both;" /> -</p> -!!end - -!! test -Horizontal ruler (should it add that extra space?) -!! input -<hr> -<hr > -foo <hr -> bar -!! result -<hr /> -<hr /> -foo <hr /> bar - -!! end - -!! test -Horizontal ruler -- 4+ dashes render hr -!! input ----- -!! result -<hr /> - -!! end - -!! test -Horizontal ruler -- eats additional dashes on the same line -!! input ---------- -!! result -<hr /> - -!! end - -!! test -Horizontal ruler -- does not collaps dashes on consecutive lines -!! input ----- ----- -!! result -<hr /> -<hr /> - -!! end - -!! test -Horizontal ruler -- <4 dashes render as plain text -!! input ---- -!! result -<p>--- -</p> -!! end - -### -### Block-level elements -### -!! test -Common list -!! input -*Common list -* item 2 -*item 3 -!! result -<ul><li>Common list -</li><li> item 2 -</li><li>item 3 -</li></ul> - -!! end - -!! test -Numbered list -!! input -#Numbered list -#item 2 -# item 3 -!! result -<ol><li>Numbered list -</li><li>item 2 -</li><li> item 3 -</li></ol> - -!! end - -!! test -Mixed list -!! input -*Mixed list -*# with numbers -** and bullets -*# and numbers -*bullets again -**bullet level 2 -***bullet level 3 -***#Number on level 4 -**bullet level 2 -**#Number on level 3 -**#Number on level 3 -*#number level 2 -*Level 1 -*** Level 3 -#** Level 3, but ordered -!! result -<ul><li>Mixed list -<ol><li> with numbers -</li></ol> -<ul><li> and bullets -</li></ul> -<ol><li> and numbers -</li></ol> -</li><li>bullets again -<ul><li>bullet level 2 -<ul><li>bullet level 3 -<ol><li>Number on level 4 -</li></ol> -</li></ul> -</li><li>bullet level 2 -<ol><li>Number on level 3 -</li><li>Number on level 3 -</li></ol> -</li></ul> -<ol><li>number level 2 -</li></ol> -</li><li>Level 1 -<ul><li><ul><li> Level 3 -</li></ul> -</li></ul> -</li></ul> -<ol><li><ul><li><ul><li> Level 3, but ordered -</li></ul> -</li></ul> -</li></ol> - -!! end - -!! test -Nested lists 1 -!! input -*foo -**bar -!! result -<ul><li>foo -<ul><li>bar -</li></ul> -</li></ul> - -!! end - -!! test -Nested lists 2 -!! input -**foo -*bar -!! result -<ul><li><ul><li>foo -</li></ul> -</li><li>bar -</li></ul> - -!! end - -!! test -Nested lists 3 (first element empty) -!! input -* -**bar -!! result -<ul><li> -<ul><li>bar -</li></ul> -</li></ul> - -!! end - -!! test -Nested lists 4 (first element empty) -!! input -** -*bar -!! result -<ul><li><ul><li> -</li></ul> -</li><li>bar -</li></ul> - -!! end - -!! test -Nested lists 5 (both elements empty) -!! input -** -* -!! result -<ul><li><ul><li> -</li></ul> -</li><li> -</li></ul> - -!! end - -!! test -Nested lists 6 (both elements empty) -!! input -* -** -!! result -<ul><li> -<ul><li> -</li></ul> -</li></ul> - -!! end - -!! test -Nested lists 7 (skip initial nesting levels) -!! input -*** foo -!! result -<ul><li><ul><li><ul><li> foo -</li></ul> -</li></ul> -</li></ul> - -!! end - -!! test -Nested lists 8 (multiple nesting transitions) -!! input -* foo -*** bar -** baz -* boo -!! result -<ul><li> foo -<ul><li><ul><li> bar -</li></ul> -</li><li> baz -</li></ul> -</li><li> boo -</li></ul> - -!! end - - -!! test -List items are not parsed correctly following a <pre> block (bug 785) -!! input -* <pre>foo</pre> -* <pre>bar</pre> -* zar -!! result -<ul><li> <pre>foo</pre> -</li><li> <pre>bar</pre> -</li><li> zar -</li></ul> - -!! end - -!! test -List items from template -!! input - -{{inner list}} -* item 2 - -* item 0 -{{inner list}} -* item 2 - -* item 0 -* notSOL{{inner list}} -* item 2 -!! result -<ul><li> item 1 -</li><li> item 2 -</li></ul> -<ul><li> item 0 -</li><li> item 1 -</li><li> item 2 -</li></ul> -<ul><li> item 0 -</li><li> notSOL -</li><li> item 1 -</li><li> item 2 -</li></ul> - -!! end - -!! test -List interrupted by empty line or heading -!! input -* foo - -** bar -== A heading == -* Another list item -!! result -<ul><li> foo -</li></ul> -<ul><li><ul><li> bar -</li></ul> -</li></ul> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: A heading">edit</a>]</span> <span class="mw-headline" id="A_heading"> A heading </span></h2> -<ul><li> Another list item -</li></ul> - -!!end - - -### -### Magic Words -### - -!! test -Magic Word: {{CURRENTDAY}} -!! input -{{CURRENTDAY}} -!! result -<p>1 -</p> -!! end - -!! test -Magic Word: {{CURRENTDAY2}} -!! input -{{CURRENTDAY2}} -!! result -<p>01 -</p> -!! end - -!! test -Magic Word: {{CURRENTDAYNAME}} -!! input -{{CURRENTDAYNAME}} -!! result -<p>Thursday -</p> -!! end - -!! test -Magic Word: {{CURRENTDOW}} -!! input -{{CURRENTDOW}} -!! result -<p>4 -</p> -!! end - -!! test -Magic Word: {{CURRENTMONTH}} -!! input -{{CURRENTMONTH}} -!! result -<p>01 -</p> -!! end - -!! test -Magic Word: {{CURRENTMONTHABBREV}} -!! input -{{CURRENTMONTHABBREV}} -!! result -<p>Jan -</p> -!! end - -!! test -Magic Word: {{CURRENTMONTHNAME}} -!! input -{{CURRENTMONTHNAME}} -!! result -<p>January -</p> -!! end - -!! test -Magic Word: {{CURRENTMONTHNAMEGEN}} -!! input -{{CURRENTMONTHNAMEGEN}} -!! result -<p>January -</p> -!! end - -!! test -Magic Word: {{CURRENTTIME}} -!! input -{{CURRENTTIME}} -!! result -<p>00:02 -</p> -!! end - -!! test -Magic Word: {{CURRENTWEEK}} (@bug 4594) -!! input -{{CURRENTWEEK}} -!! result -<p>1 -</p> -!! end - -!! test -Magic Word: {{CURRENTYEAR}} -!! input -{{CURRENTYEAR}} -!! result -<p>1970 -</p> -!! end - -!! test -Magic Word: {{FULLPAGENAME}} -!! options -title=[[User:Ævar Arnfjörð Bjarmason]] -!! input -{{FULLPAGENAME}} -!! result -<p>User:Ævar Arnfjörð Bjarmason -</p> -!! end - -!! test -Magic Word: {{FULLPAGENAMEE}} -!! options -title=[[User:Ævar Arnfjörð Bjarmason]] -!! input -{{FULLPAGENAMEE}} -!! result -<p>User:%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason -</p> -!! end - -!! test -Magic Word: {{NAMESPACE}} -!! options -title=[[User:Ævar Arnfjörð Bjarmason]] -!! input -{{NAMESPACE}} -!! result -<p>User -</p> -!! end - -!! test -Magic Word: {{NAMESPACEE}} -!! options -title=[[User:Ævar Arnfjörð Bjarmason]] -!! input -{{NAMESPACEE}} -!! result -<p>User -</p> -!! end - -!! test -Magic Word: {{NAMESPACENUMBER}} -!! options -title=[[User:Ævar Arnfjörð Bjarmason]] -!! input -{{NAMESPACENUMBER}} -!! result -<p>2 -</p> -!! end - -!! test -Magic Word: {{NUMBEROFFILES}} -!! input -{{NUMBEROFFILES}} -!! result -<p>2 -</p> -!! end - -!! test -Magic Word: {{PAGENAME}} -!! options -title=[[User:Ævar Arnfjörð Bjarmason]] -!! input -{{PAGENAME}} -!! result -<p>Ævar Arnfjörð Bjarmason -</p> -!! end - -!! test -Magic Word: {{PAGENAME}} with metacharacters -!! options -title=[['foo & bar = baz']] -!! input -''{{PAGENAME}}'' -!! result -<p><i>'foo & bar = baz'</i> -</p> -!! end - -!! test -Magic Word: {{PAGENAME}} with metacharacters (bug 26781) -!! options -title=[[*RFC 1234 http://example.com/]] -!! input -{{PAGENAME}} -!! result -<p>*RFC 1234 http://example.com/ -</p> -!! end - -!! test -Magic Word: {{PAGENAMEE}} -!! options -title=[[User:Ævar Arnfjörð Bjarmason]] -!! input -{{PAGENAMEE}} -!! result -<p>%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason -</p> -!! end - -!! test -Magic Word: {{PAGENAMEE}} with metacharacters (bug 26781) -!! options -title=[[*RFC 1234 http://example.com/]] -!! input -{{PAGENAMEE}} -!! result -<p>*RFC_1234_http://example.com/ -</p> -!! end - -!! test -Magic Word: {{REVISIONID}} -!! input -{{REVISIONID}} -!! result -<p>1337 -</p> -!! end - -!! test -Magic Word: {{SCRIPTPATH}} -!! input -{{SCRIPTPATH}} -!! result -<p>/ -</p> -!! end - -!! test -Magic Word: {{SERVER}} -!! input -{{SERVER}} -!! result -<p><a rel="nofollow" class="external free" href="http://Britney-Spears">http://Britney-Spears</a> -</p> -!! end - -!! test -Magic Word: {{SERVERNAME}} -!! input -{{SERVERNAME}} -!! result -<p>Britney-Spears -</p> -!! end - -!! test -Magic Word: {{SITENAME}} -!! input -{{SITENAME}} -!! result -<p>MediaWiki -</p> -!! end - -!! test -Namespace 1 {{ns:1}} -!! input -{{ns:1}} -!! result -<p>Talk -</p> -!! end - -!! test -Namespace 1 {{ns:01}} -!! input -{{ns:01}} -!! result -<p>Talk -</p> -!! end - -!! test -Namespace 0 {{ns:0}} (bug 4783) -!! input -{{ns:0}} -!! result - -!! end - -!! test -Namespace 0 {{ns:00}} (bug 4783) -!! input -{{ns:00}} -!! result - -!! end - -!! test -Namespace -1 {{ns:-1}} -!! input -{{ns:-1}} -!! result -<p>Special -</p> -!! end - -!! test -Namespace User {{ns:User}} -!! input -{{ns:User}} -!! result -<p>User -</p> -!! end - -!! test -Namespace User talk {{ns:User_talk}} -!! input -{{ns:User_talk}} -!! result -<p>User talk -</p> -!! end - -!! test -Namespace User talk {{ns:uSeR tAlK}} -!! input -{{ns:uSeR tAlK}} -!! result -<p>User talk -</p> -!! end - -!! test -Namespace File {{ns:File}} -!! input -{{ns:File}} -!! result -<p>File -</p> -!! end - -!! test -Namespace File {{ns:Image}} -!! input -{{ns:Image}} -!! result -<p>File -</p> -!! end - -!! test -Namespace (lang=de) Benutzer {{ns:User}} -!! options -language=de -!! input -{{ns:User}} -!! result -<p>Benutzer -</p> -!! end - -!! test -Namespace (lang=de) Benutzer Diskussion {{ns:3}} -!! options -language=de -!! input -{{ns:3}} -!! result -<p>Benutzer Diskussion -</p> -!! end - - -!! test -Urlencode -!! input -{{urlencode:hi world?!}} -{{urlencode:hi world?!|WIKI}} -{{urlencode:hi world?!|PATH}} -{{urlencode:hi world?!|QUERY}} -!! result -<p>hi+world%3F%21 -hi_world%3F! -hi%20world%3F%21 -hi+world%3F%21 -</p> -!! end - -### -### Magic links -### -!! test -Magic links: internal link to RFC (bug 479) -!! input -[[RFC 123]] -!! result -<p><a href="/index.php?title=RFC_123&action=edit&redlink=1" class="new" title="RFC 123 (page does not exist)">RFC 123</a> -</p> -!! end - -!! test -Magic links: RFC (bug 479) -!! input -RFC 822 -!! result -<p><a class="external mw-magiclink-rfc" href="//tools.ietf.org/html/rfc822">RFC 822</a> -</p> -!! end - -!! test -Magic links: ISBN (bug 1937) -!! input -ISBN 0-306-40615-2 -!! result -<p><a href="/wiki/Special:BookSources/0306406152" class="internal mw-magiclink-isbn">ISBN 0-306-40615-2</a> -</p> -!! end - -!! test -Magic links: PMID incorrectly converts space to underscore -!! input -PMID 1234 -!! result -<p><a class="external mw-magiclink-pmid" href="//www.ncbi.nlm.nih.gov/pubmed/1234?dopt=Abstract">PMID 1234</a> -</p> -!! end - -### -### Templates -#### - -!! test -Nonexistent template -!! input -{{thistemplatedoesnotexist}} -!! result -<p><a href="/index.php?title=Template:Thistemplatedoesnotexist&action=edit&redlink=1" class="new" title="Template:Thistemplatedoesnotexist (page does not exist)">Template:Thistemplatedoesnotexist</a> -</p> -!! end - -!! article -Template:test -!! text -This is a test template -!! endarticle - -!! test -Simple template -!! input -{{test}} -!! result -<p>This is a test template -</p> -!! end - -!! test -Template with explicit namespace -!! input -{{Template:test}} -!! result -<p>This is a test template -</p> -!! end - - -!! article -Template:paramtest -!! text -This is a test template with parameter {{{param}}} -!! endarticle - -!! test -Template parameter -!! input -{{paramtest|param=foo}} -!! result -<p>This is a test template with parameter foo -</p> -!! end - -!! article -Template:paramtestnum -!! text -[[{{{1}}}|{{{2}}}]] -!! endarticle - -!! test -Template unnamed parameter -!! input -{{paramtestnum|Main Page|the main page}} -!! result -<p><a href="/wiki/Main_Page" title="Main Page">the main page</a> -</p> -!! end - -!! article -Template:templatesimple -!! text -(test) -!! endarticle - -!! article -Template:templateredirect -!! text -#redirect [[Template:templatesimple]] -!! endarticle - -!! article -Template:templateasargtestnum -!! text -{{{{{1}}}}} -!! endarticle - -!! article -Template:templateasargtest -!! text -{{template{{{templ}}}}} -!! endarticle - -!! article -Template:templateasargtest2 -!! text -{{{{{templ}}}}} -!! endarticle - -!! test -Template with template name as unnamed argument -!! input -{{templateasargtestnum|templatesimple}} -!! result -<p>(test) -</p> -!! end - -!! test -Template with template name as argument -!! input -{{templateasargtest|templ=simple}} -!! result -<p>(test) -</p> -!! end - -!! test -Template with template name as argument (2) -!! input -{{templateasargtest2|templ=templatesimple}} -!! result -<p>(test) -</p> -!! end - -!! article -Template:templateasargtestdefault -!! text -{{{{{templ|templatesimple}}}}} -!! endarticle - -!! article -Template:templa -!! text -'''templ''' -!! endarticle - -!! test -Template with default value -!! input -{{templateasargtestdefault}} -!! result -<p>(test) -</p> -!! end - -!! test -Template with default value (value set) -!! input -{{templateasargtestdefault|templ=templa}} -!! result -<p><b>templ</b> -</p> -!! end - -!! test -Template redirect -!! input -{{templateredirect}} -!! result -<p>(test) -</p> -!! end - -!! test -Template with argument in separate line -!! input -{{ templateasargtest | - templ = simple }} -!! result -<p>(test) -</p> -!! end - -!! test -Template with complex template as argument -!! input -{{paramtest| - param ={{ templateasargtest | - templ = simple }}}} -!! result -<p>This is a test template with parameter (test) -</p> -!! end - -!! test -Template with thumb image (with link in description) -!! input -{{paramtest| - param =[[Image:noimage.png|thumb|[[no link|link]] [[no link|caption]]]]}} -!! result -This is a test template with parameter <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/index.php?title=Special:Upload&wpDestFile=Noimage.png" class="new" title="File:Noimage.png">File:Noimage.png</a> <div class="thumbcaption"><a href="/index.php?title=No_link&action=edit&redlink=1" class="new" title="No link (page does not exist)">link</a> <a href="/index.php?title=No_link&action=edit&redlink=1" class="new" title="No link (page does not exist)">caption</a></div></div></div> - -!! end - -!! article -Template:complextemplate -!! text -{{{1}}} {{paramtest| - param ={{{param}}}}} -!! endarticle - -!! test -Template with complex arguments -!! input -{{complextemplate| - param ={{ templateasargtest | - templ = simple }}|[[Template:complextemplate|link]]}} -!! result -<p><a href="/wiki/Template:Complextemplate" title="Template:Complextemplate">link</a> This is a test template with parameter (test) -</p> -!! end - -!! test -BUG 553: link with two variables in a piped link -!! input -{| -|[[{{{1}}}|{{{2}}}]] -|} -!! result -<table> -<tr> -<td>[[{{{1}}}|{{{2}}}]] -</td></tr></table> - -!! end - -!! test -Magic variable as template parameter -!! input -{{paramtest|param={{SITENAME}}}} -!! result -<p>This is a test template with parameter MediaWiki -</p> -!! end - -!! article -Template:linktest -!! text -[[{{{param}}}|link]] -!! endarticle - -!! test -Template parameter as link source -!! input -{{linktest|param=Main Page}} -!! result -<p><a href="/wiki/Main_Page" title="Main Page">link</a> -</p> -!! end - - -!!article -Template:paramtest2 -!! text -including another template, {{paramtest|param={{{arg}}}}} -!! endarticle - -!! test -Template passing argument to another template -!! input -{{paramtest2|arg='hmm'}} -!! result -<p>including another template, This is a test template with parameter 'hmm' -</p> -!! end - -!! article -Template:Linktest2 -!! text -Main Page -!! endarticle - -!! test -Template as link source -!! input -[[{{linktest2}}]] -!! result -<p><a href="/wiki/Main_Page" title="Main Page">Main Page</a> -</p> -!! end - - -!! article -Template:loop1 -!! text -{{loop2}} -!! endarticle - -!! article -Template:loop2 -!! text -{{loop1}} -!! endarticle - -!! test -Template infinite loop -!! input -{{loop1}} -!! result -<p><span class="error">Template loop detected: <a href="/wiki/Template:Loop1" title="Template:Loop1">Template:Loop1</a></span> -</p> -!! end - -!! test -Template from main namespace -!! input -{{:Main Page}} -!! result -<p>blah blah -</p> -!! end - -!! article -Template:table -!! text -{| -| 1 || 2 -|- -| 3 || 4 -|} -!! endarticle - -!! test -BUG 529: Template with table, not included at beginning of line -!! input -foo {{table}} -!! result -<p>foo -</p> -<table> -<tr> -<td> 1 </td> -<td> 2 -</td></tr> -<tr> -<td> 3 </td> -<td> 4 -</td></tr></table> - -!! end - -!! test -BUG 523: Template shouldn't eat newline (or add an extra one before table) -!! input -foo -{{table}} -!! result -<p>foo -</p> -<table> -<tr> -<td> 1 </td> -<td> 2 -</td></tr> -<tr> -<td> 3 </td> -<td> 4 -</td></tr></table> - -!! end - -!! test -BUG 41: Template parameters shown as broken links -!! input -{{{parameter}}} -!! result -<p>{{{parameter}}} -</p> -!! end - - -!! article -Template:MSGNW test -!! text -''None'' of '''this''' should be -* interpreted - but rather passed unmodified -{{test}} -!! endarticle - -# hmm, fix this or just deprecate msgnw and document its behavior? -!! test -msgnw keyword -!! options -disabled -!! input -{{msgnw:MSGNW test}} -!! result -<p>''None'' of '''this''' should be -* interpreted - but rather passed unmodified -{{test}} -</p> -!! end - -!! test -int keyword -!! input -{{int:youhavenewmessages|lots of money|not!}} -!! result -<p>You have lots of money (not!). -</p> -!! end - -!! article -Template:Includes -!! text -Foo<noinclude>zar</noinclude><includeonly>bar</includeonly> -!! endarticle - -!! test -<includeonly> and <noinclude> being included -!! input -{{Includes}} -!! result -<p>Foobar -</p> -!! end - -!! article -Template:Includes2 -!! text -<onlyinclude>Foo</onlyinclude>bar -!! endarticle - -!! test -<onlyinclude> being included -!! input -{{Includes2}} -!! result -<p>Foo -</p> -!! end - - -!! article -Template:Includes3 -!! text -<onlyinclude>Foo</onlyinclude>bar<includeonly>zar</includeonly> -!! endarticle - -!! test -<onlyinclude> and <includeonly> being included -!! input -{{Includes3}} -!! result -<p>Foo -</p> -!! end - -!! test -<includeonly> and <noinclude> on a page -!! input -Foo<noinclude>zar</noinclude><includeonly>bar</includeonly> -!! result -<p>Foozar -</p> -!! end - -!! test -<onlyinclude> on a page -!! input -<onlyinclude>Foo</onlyinclude>bar -!! result -<p>Foobar -</p> -!! end - -!! article -Template:Includeonly section -!! text -<includeonly> -==Includeonly section== -</includeonly> -==Section T-1== -!!endarticle - -!! test -Bug 6563: Edit link generation for section shown by <includeonly> -!! input -{{includeonly section}} -!! result -<h2><span class="editsection">[<a href="/index.php?title=Template:Includeonly_section&action=edit&section=T-1" title="Template:Includeonly section">edit</a>]</span> <span class="mw-headline" id="Includeonly_section">Includeonly section</span></h2> -<h2><span class="editsection">[<a href="/index.php?title=Template:Includeonly_section&action=edit&section=T-2" title="Template:Includeonly section">edit</a>]</span> <span class="mw-headline" id="Section_T-1">Section T-1</span></h2> - -!! end - -# Uses same input as the contents of [[Template:Includeonly section]] -!! test -Bug 6563: Section extraction for section shown by <includeonly> -!! options -section=T-2 -!! input -<includeonly> -==Includeonly section== -</includeonly> -==Section T-2== -!! result -==Section T-2== -!! end - -!! test -Bug 6563: Edit link generation for section suppressed by <includeonly> -!! input -<includeonly> -==Includeonly section== -</includeonly> -==Section 1== -!! result -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Section 1">edit</a>]</span> <span class="mw-headline" id="Section_1">Section 1</span></h2> - -!! end - -!! test -Bug 6563: Section extraction for section suppressed by <includeonly> -!! options -section=1 -!! input -<includeonly> -==Includeonly section== -</includeonly> -==Section 1== -!! result -==Section 1== -!! end - -### -### Pre-save transform tests -### -!! test -pre-save transform: subst: -!! options -PST -!! input -{{subst:test}} -!! result -This is a test template -!! end - -!! test -pre-save transform: normal template -!! options -PST -!! input -{{test}} -!! result -{{test}} -!! end - -!! test -pre-save transform: nonexistent template -!! options -PST -!! input -{{thistemplatedoesnotexist}} -!! result -{{thistemplatedoesnotexist}} -!! end - - -!! test -pre-save transform: subst magic variables -!! options -PST -!! input -{{subst:SITENAME}} -!! result -MediaWiki -!! end - -# This is bug 89, which I fixed. -- wtm -!! test -pre-save transform: subst: templates with parameters -!! options -pst -!! input -{{subst:paramtest|param="something else"}} -!! result -This is a test template with parameter "something else" -!! end - -!! article -Template:nowikitest -!! text -<nowiki>'''not wiki'''</nowiki> -!! endarticle - -!! test -pre-save transform: nowiki in subst (bug 1188) -!! options -pst -!! input -{{subst:nowikitest}} -!! result -<nowiki>'''not wiki'''</nowiki> -!! end - - -!! article -Template:commenttest -!! text -This template has <!-- a comment --> in it. -!! endarticle - -!! test -pre-save transform: comment in subst (bug 1936) -!! options -pst -!! input -{{subst:commenttest}} -!! result -This template has <!-- a comment --> in it. -!! end - -!! test -pre-save transform: unclosed tag -!! options -pst noxml -!! input -<nowiki>'''not wiki''' -!! result -<nowiki>'''not wiki''' -!! end - -!! test -pre-save transform: mixed tag case -!! options -pst noxml -!! input -<NOwiki>'''not wiki'''</noWIKI> -!! result -<NOwiki>'''not wiki'''</noWIKI> -!! end - -!! test -pre-save transform: unclosed comment in <nowiki> -!! options -pst noxml -!! input -wiki<nowiki>nowiki<!--nowiki</nowiki>wiki -!! result -wiki<nowiki>nowiki<!--nowiki</nowiki>wiki -!!end - -!! article -Template:dangerous -!!text -<span onmouseover="alert('crap')">Oh no</span> -!!endarticle - -!!test -(confirming safety of fix for subst bug 1936) -!! input -{{Template:dangerous}} -!! result -<p><span>Oh no</span> -</p> -!! end - -!! test -pre-save transform: comment containing gallery (bug 5024) -!! options -pst -!! input -<!-- <gallery>data</gallery> --> -!!result -<!-- <gallery>data</gallery> --> -!!end - -!! test -pre-save transform: comment containing extension -!! options -pst -!! input -<!-- <tag>data</tag> --> -!!result -<!-- <tag>data</tag> --> -!!end - -!! test -pre-save transform: comment containing nowiki -!! options -pst -!! input -<!-- <nowiki>data</nowiki> --> -!!result -<!-- <nowiki>data</nowiki> --> -!!end - -!! test -pre-save transform: <noinclude> in subst (bug 3298) -!! options -pst -!! input -{{subst:Includes}} -!! result -Foobar -!! end - -!! test -pre-save transform: <onlyinclude> in subst (bug 3298) -!! options -pst -!! input -{{subst:Includes2}} -!! result -Foo -!! end - -!! article -Template:SubstTest -!!text -{{<includeonly>subst:</includeonly>Includes}} -!! endarticle - -!! article -Template:SafeSubstTest -!! text -{{<includeonly>safesubst:</includeonly>Includes}} -!! endarticle - -!! test -bug 22297: safesubst: works during PST -!! options -pst -!! input -{{subst:SafeSubstTest}}{{safesubst:SubstTest}} -!! result -FoobarFoobar -!! end - -!! test -bug 22297: safesubst: works during normal parse -!! input -{{SafeSubstTest}} -!! result -<p>Foobar -</p> -!! end - -!! test: -subst: does not work during normal parse -!! input -{{SubstTest}} -!! result -<p>{{subst:Includes}} -</p> -!! end - -!! test -pre-save transform: context links ("pipe trick") -!! options -pst -!! input -[[Article (context)|]] -[[Bar:Article|]] -[[:Bar:Article|]] -[[Bar:Article (context)|]] -[[:Bar:Article (context)|]] -[[|Article]] -[[|Article (context)]] -[[Bar:X (Y) Z|]] -[[:Bar:X (Y) Z|]] -!! result -[[Article (context)|Article]] -[[Bar:Article|Article]] -[[:Bar:Article|Article]] -[[Bar:Article (context)|Article]] -[[:Bar:Article (context)|Article]] -[[Article]] -[[Article (context)]] -[[Bar:X (Y) Z|X (Y) Z]] -[[:Bar:X (Y) Z|X (Y) Z]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with interwiki prefix -!! options -pst -!! input -[[interwiki:Article|]] -[[:interwiki:Article|]] -[[interwiki:Bar:Article|]] -[[:interwiki:Bar:Article|]] -!! result -[[interwiki:Article|Article]] -[[:interwiki:Article|Article]] -[[interwiki:Bar:Article|Bar:Article]] -[[:interwiki:Bar:Article|Bar:Article]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with parens in title -!! options -pst title=[[Somearticle (context)]] -!! input -[[|Article]] -!! result -[[Article (context)|Article]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with comma in title -!! options -pst title=[[Someplace, Somewhere]] -!! input -[[|Otherplace]] -[[Otherplace, Elsewhere|]] -[[Otherplace, Elsewhere, Anywhere|]] -!! result -[[Otherplace, Somewhere|Otherplace]] -[[Otherplace, Elsewhere|Otherplace]] -[[Otherplace, Elsewhere, Anywhere|Otherplace]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with parens and comma -!! options -pst title=[[Someplace (IGNORED), Somewhere]] -!! input -[[|Otherplace]] -[[Otherplace (place), Elsewhere|]] -!! result -[[Otherplace, Somewhere|Otherplace]] -[[Otherplace (place), Elsewhere|Otherplace]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with comma and parens -!! options -pst title=[[Who, me? (context)]] -!! input -[[|Yes, you.]] -[[Me, Myself, and I (1937 song)|]] -!! result -[[Yes, you. (context)|Yes, you.]] -[[Me, Myself, and I (1937 song)|Me, Myself, and I]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with namespace -!! options -pst title=[[Ns:Somearticle]] -!! input -[[|Article]] -!! result -[[Ns:Article|Article]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with namespace and parens -!! options -pst title=[[Ns:Somearticle (context)]] -!! input -[[|Article]] -!! result -[[Ns:Article (context)|Article]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with namespace and comma -!! options -pst title=[[Ns:Somearticle, Context, Whatever]] -!! input -[[|Article]] -!! result -[[Ns:Article, Context, Whatever|Article]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with namespace, comma and parens -!! options -pst title=[[Ns:Somearticle, Context (context)]] -!! input -[[|Article]] -!! result -[[Ns:Article (context)|Article]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with namespace, parens and comma -!! options -pst title=[[Ns:Somearticle (IGNORED), Context]] -!! input -[[|Article]] -!! result -[[Ns:Article, Context|Article]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with full-width parens and no space (Japanese and Chinese style, bug 30149) -!! options -pst -!! input -[[Article(context)|]] -[[Bar:Article(context)|]] -[[:Bar:Article(context)|]] -[[|Article(context)]] -[[Bar:X(Y)Z|]] -[[:Bar:X(Y)Z|]] -!! result -[[Article(context)|Article]] -[[Bar:Article(context)|Article]] -[[:Bar:Article(context)|Article]] -[[Article(context)]] -[[Bar:X(Y)Z|X(Y)Z]] -[[:Bar:X(Y)Z|X(Y)Z]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with full-width parens and space (Japanese and Chinese style, bug 30149) -!! options -pst -!! input -[[Article (context)|]] -[[Bar:Article (context)|]] -[[:Bar:Article (context)|]] -[[|Article (context)]] -[[Bar:X (Y) Z|]] -[[:Bar:X (Y) Z|]] -!! result -[[Article (context)|Article]] -[[Bar:Article (context)|Article]] -[[:Bar:Article (context)|Article]] -[[Article (context)]] -[[Bar:X (Y) Z|X (Y) Z]] -[[:Bar:X (Y) Z|X (Y) Z]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with parens and no space (Korean style, bug 30149) -!! options -pst -!! input -[[Article(context)|]] -[[Bar:Article(context)|]] -[[:Bar:Article(context)|]] -[[|Article(context)]] -[[Bar:X(Y)Z|]] -[[:Bar:X(Y)Z|]] -!! result -[[Article(context)|Article]] -[[Bar:Article(context)|Article]] -[[:Bar:Article(context)|Article]] -[[Article(context)]] -[[Bar:X(Y)Z|X(Y)Z]] -[[:Bar:X(Y)Z|X(Y)Z]] -!! end - -!! test -pre-save transform: context links ("pipe trick") with commas (bug 21660) -!! options -pst -!! input -[[Article (context), context|]] -[[Article (context),context|]] -[[Bar:Article (context), context|]] -[[Bar:Article (context),context|]] -[[:Bar:Article (context), context|]] -[[:Bar:Article (context),context|]] -!! result -[[Article (context), context|Article]] -[[Article (context),context|Article]] -[[Bar:Article (context), context|Article]] -[[Bar:Article (context),context|Article]] -[[:Bar:Article (context), context|Article]] -[[:Bar:Article (context),context|Article]] -!! end - -!! test -pre-save transform: trim trailing empty lines -!! options -pst -!! input -Empty lines are trimmed - - - - -!! result -Empty lines are trimmed -!! end - -!! test -pre-save transform: Signature expansion -!! options -pst -!! input -* ~~~ -* <noinclude>~~~</noinclude> -* <includeonly>~~~</includeonly> -* <onlyinclude>~~~</onlyinclude> -!! result -* [[Special:Contributions/127.0.0.1|127.0.0.1]] -* <noinclude>[[Special:Contributions/127.0.0.1|127.0.0.1]]</noinclude> -* <includeonly>[[Special:Contributions/127.0.0.1|127.0.0.1]]</includeonly> -* <onlyinclude>[[Special:Contributions/127.0.0.1|127.0.0.1]]</onlyinclude> -!! end - - -!! test -pre-save transform: Signature expansion in nowiki tags (bug 93) -!! options -pst disabled -!! input -Shall not expand: - -<nowiki>~~~~</nowiki> - -<includeonly><nowiki>~~~~</nowiki></includeonly> - -<noinclude><nowiki>~~~~</nowiki></noinclude> - -<onlyinclude><nowiki>~~~~</nowiki></onlyinclude> - -{{subst:Foo}} shall be converted to FOO - -As well as inside noinclude/onlyinclude -<noinclude>{{subst:Foo}}</noinclude> -<onlyinclude>{{subst:Foo}}</onlyinclude> - -But not inside includeonly -<includeonly>{{subst:Foo}}</includeonly> -!! result -Shall not expand: - -<nowiki>~~~~</nowiki> - -<includeonly><nowiki>~~~~</nowiki></includeonly> - -<noinclude><nowiki>~~~~</nowiki></noinclude> - -<onlyinclude><nowiki>~~~~</nowiki></onlyinclude> - -FOO shall be converted to FOO - -As well as inside noinclude/onlyinclude -<noinclude>FOO</noinclude> -<onlyinclude>FOO</onlyinclude> - -But not inside includeonly -<includeonly>{{subst:Foo}}</includeonly> -!! end - -### -### Message transform tests -### -!! test -message transform: magic variables -!! options -msg -!! input -{{SITENAME}} -!! result -MediaWiki -!! end - -!! test -message transform: should not transform wiki markup -!! options -msg -!! input -''test'' -!! result -''test'' -!! end - -!! test -message transform: <noinclude> in transcluded template (bug 4926) -!! options -msg -!! input -{{Includes}} -!! result -Foobar -!! end - -!! test -message transform: <onlyinclude> in transcluded template (bug 4926) -!! options -msg -!! input -{{Includes2}} -!! result -Foo -!! end - -!! test -{{#special:}} page name, known -!! options -msg -!! input -{{#special:Recentchanges}} -!! result -Special:RecentChanges -!! end - -!! test -{{#special:}} page name with subpage, known -!! options -msg -!! input -{{#special:Recentchanges/param}} -!! result -Special:RecentChanges/param -!! end - -!! test -{{#special:}} page name, unknown -!! options -msg -!! input -{{#special:foobarnonexistent}} -!! result -No such special page -!! end - -!! test -{{#speciale:}} page name, known -!! options -msg -!! input -{{#speciale:Recentchanges}} -!! result -Special:RecentChanges -!! end - -!! test -{{#speciale:}} page name with subpage, known -!! options -msg -!! input -{{#speciale:Recentchanges/param}} -!! result -Special:RecentChanges/param -!! end - -!! test -{{#speciale:}} page name, unknown -!! options -msg -!! input -{{#speciale:foobarnonexistent}} -!! result -No_such_special_page -!! end - -### -### Images -### -!! test -Simple image -!! input -[[Image:foobar.jpg]] -!! result -<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!! end - -!! test -Right-aligned image -!! input -[[Image:foobar.jpg|right]] -!! result -<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div> - -!! end - -!! test -Simple image (using File: namespace, now canonical) -!! input -[[File:foobar.jpg]] -!! result -<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!! end - -!! test -Image with caption -!! input -[[Image:foobar.jpg|right|Caption text]] -!! result -<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption text"><img alt="Caption text" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div> - -!! end - -!! test -Image with link parameter, wiki target -!! input -[[Image:foobar.jpg|link=Target page]] -!! result -<p><a href="/wiki/Target_page" title="Target page"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!! end - -!! test -Image with link parameter, URL target -!! input -[[Image:foobar.jpg|link=http://example.com/]] -!! result -<p><a href="http://example.com/" rel="nofollow"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!! end - -!! test -Image with link parameter, wgExternalLinkTarget -!! input -[[Image:foobar.jpg|link=http://example.com/]] -!! config -wgExternalLinkTarget='foobar' -!! result -<p><a href="http://example.com/" target="foobar" rel="nofollow"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!! end - -!! test -Image with link parameter, wgNoFollowLinks set to false -!! input -[[Image:foobar.jpg|link=http://example.com/]] -!! config -wgNoFollowLinks=false -!! result -<p><a href="http://example.com/"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!! end - -!! test -Image with link parameter, wgNoFollowDomainExceptions -!! input -[[Image:foobar.jpg|link=http://example.com/]] -!! config -wgNoFollowDomainExceptions='example.com' -!! result -<p><a href="http://example.com/"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!! end - -!! test -Image with link parameter, wgExternalLinkTarget, unnamed parameter -!! input -[[Image:foobar.jpg|link=http://example.com/|Title]] -!! config -wgExternalLinkTarget='foobar' -!! result -<p><a href="http://example.com/" title="Title" target="foobar" rel="nofollow"><img alt="Title" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!! end - -!! test -Image with empty link parameter -!! input -[[Image:foobar.jpg|link=]] -!! result -<p><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /> -</p> -!! end - -!! test -Image with link parameter (wiki target) and unnamed parameter -!! input -[[Image:foobar.jpg|link=Target page|Title]] -!! result -<p><a href="/wiki/Target_page" title="Title"><img alt="Title" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!! end - -!! test -Image with link parameter (URL target) and unnamed parameter -!! input -[[Image:foobar.jpg|link=http://example.com/|Title]] -!! result -<p><a href="http://example.com/" title="Title" rel="nofollow"><img alt="Title" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!! end - -!! test -Thumbnail image with link parameter -!! input -[[Image:foobar.jpg|thumb|link=http://example.com/|Title]] -!! result -<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="http://example.com/"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="180" height="20" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Title</div></div></div> - -!! end - -!! test -Image with frame and link -!! input -[[Image:Foobar.jpg|frame|left|This is a test image [[Main Page]]]] -!! result -<div class="thumb tleft"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption">This is a test image <a href="/wiki/Main_Page" title="Main Page">Main Page</a></div></div></div> - -!! end - -!! test -Image with frame and link and explicit alt -!! input -[[Image:Foobar.jpg|frame|left|This is a test image [[Main Page]]|alt=Altitude]] -!! result -<div class="thumb tleft"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Altitude" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption">This is a test image <a href="/wiki/Main_Page" title="Main Page">Main Page</a></div></div></div> - -!! end - -!! test -Image with wiki markup in implicit alt -!! input -[[Image:Foobar.jpg|testing '''bold''' in alt]] -!! result -<p><a href="/wiki/File:Foobar.jpg" class="image" title="testing bold in alt"><img alt="testing bold in alt" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!! end - -!! test -Image with wiki markup in explicit alt -!! input -[[Image:Foobar.jpg|alt=testing '''bold''' in alt]] -!! result -<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="testing bold in alt" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!! end - -!! test -Link to image page- image page normally doesn't exists, hence edit link -Add test with existing image page -#<p><a href="/wiki/File:Test" title="Image:Test">Image:test</a> -!! input -[[:Image:test]] -!! result -<p><a href="/index.php?title=File:Test&action=edit&redlink=1" class="new" title="File:Test (page does not exist)">Image:test</a> -</p> -!! end - -!! test -bug 18784 Link to non-existent image page with caption should use caption as link text -!! input -[[:Image:test|caption]] -!! result -<p><a href="/index.php?title=File:Test&action=edit&redlink=1" class="new" title="File:Test (page does not exist)">caption</a> -</p> -!! end - -!! test -Frameless image caption with a free URL -!! input -[[Image:foobar.jpg|http://example.com]] -!! result -<p><a href="/wiki/File:Foobar.jpg" class="image" title="http://example.com"><img alt="http://example.com" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!! end - -!! test -Thumbnail image caption with a free URL -!! input -[[Image:foobar.jpg|thumb|http://example.com]] -!! result -<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="180" height="20" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></div></div></div> - -!! end - -!! test -Thumbnail image caption with a free URL and explicit alt -!! input -[[Image:foobar.jpg|thumb|http://example.com|alt=Alteration]] -!! result -<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Alteration" src="http://example.com/images/3/3a/Foobar.jpg" width="180" height="20" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></div></div></div> - -!! end - -!! test -BUG 1887: A ISBN with a thumbnail -!! input -[[Image:foobar.jpg|thumb|ISBN 1235467890]] -!! result -<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="180" height="20" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div><a href="/wiki/Special:BookSources/1235467890" class="internal mw-magiclink-isbn">ISBN 1235467890</a></div></div></div> - -!! end - -!! test -BUG 1887: A RFC with a thumbnail -!! input -[[Image:foobar.jpg|thumb|This is RFC 12354]] -!! result -<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="180" height="20" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>This is <a class="external mw-magiclink-rfc" href="//tools.ietf.org/html/rfc12354">RFC 12354</a></div></div></div> - -!! end - -!! test -BUG 1887: A mailto link with a thumbnail -!! input -[[Image:foobar.jpg|thumb|Please mailto:nobody@example.com]] -!! result -<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="180" height="20" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Please <a rel="nofollow" class="external free" href="mailto:nobody@example.com">mailto:nobody@example.com</a></div></div></div> - -!! end - -# Pending resolution to bug 368 -!! test -BUG 648: Frameless image caption with a link -!! input -[[Image:foobar.jpg|text with a [[link]] in it]] -!! result -<p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a link in it"><img alt="text with a link in it" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!! end - -!! test -BUG 648: Frameless image caption with a link (suffix) -!! input -[[Image:foobar.jpg|text with a [[link]]foo in it]] -!! result -<p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a linkfoo in it"><img alt="text with a linkfoo in it" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!! end - -!! test -BUG 648: Frameless image caption with an interwiki link -!! input -[[Image:foobar.jpg|text with a [[MeatBall:Link]] in it]] -!! result -<p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a MeatBall:Link in it"><img alt="text with a MeatBall:Link in it" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!! end - -!! test -BUG 648: Frameless image caption with a piped interwiki link -!! input -[[Image:foobar.jpg|text with a [[MeatBall:Link|link]] in it]] -!! result -<p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a link in it"><img alt="text with a link in it" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!! end - -!! test -Escape HTML special chars in image alt text -!! input -[[Image:foobar.jpg|& < > "]] -!! result -<p><a href="/wiki/File:Foobar.jpg" class="image" title="& < > ""><img alt="& < > "" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!! end - -!! test -BUG 499: Alt text should have Ӓ, not &1234; -!! input -[[Image:foobar.jpg|♀]] -!! result -<p><a href="/wiki/File:Foobar.jpg" class="image" title="♀"><img alt="♀" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!! end - -!! test -Broken image caption with link -!! input -[[Image:Foobar.jpg|thumb|This is a broken caption. But [[Main Page|this]] is just an ordinary link. -!! result -<p>[[Image:Foobar.jpg|thumb|This is a broken caption. But <a href="/wiki/Main_Page" title="Main Page">this</a> is just an ordinary link. -</p> -!! end - -!! test -Image caption containing another image -!! input -[[Image:Foobar.jpg|thumb|This is a caption with another [[Image:icon.png|image]] inside it!]] -!! result -<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="180" height="20" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>This is a caption with another <a href="/index.php?title=Special:Upload&wpDestFile=Icon.png" class="new" title="File:Icon.png">image</a> inside it!</div></div></div> - -!! end - -!! test -Image caption containing a newline -!! input -[[Image:Foobar.jpg|This -*is some text]] -!! result -<p><a href="/wiki/File:Foobar.jpg" class="image" title="This *is some text"><img alt="This *is some text" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!!end - - -!! test -Bug 3090: External links other than http: in image captions -!! input -[[Image:Foobar.jpg|thumb|200px|This caption has [irc://example.net irc] and [https://example.com Secure] ext links in it.]] -!! result -<div class="thumb tright"><div class="thumbinner" style="width:202px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="200" height="23" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>This caption has <a rel="nofollow" class="external text" href="irc://example.net">irc</a> and <a rel="nofollow" class="external text" href="https://example.com">Secure</a> ext links in it.</div></div></div> - -!! end - -!! test -Custom class -!! input -[[Image:foobar.jpg|a|class=b]] -!! result -<p><a href="/wiki/File:Foobar.jpg" class="image" title="a"><img alt="a" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="b" /></a> -</p> -!! end - -!! article -File:Barfoo.jpg -!! text -#REDIRECT [[File:Barfoo.jpg]] -!! endarticle - -!! test -Redirected image -!! input -[[Image:Barfoo.jpg]] -!! result -<p><a href="/wiki/File:Barfoo.jpg" title="File:Barfoo.jpg">File:Barfoo.jpg</a> -</p> -!! end - -!! test -Missing image with uploads disabled -!! options -wgEnableUploads=0 -!! input -[[Image:Foobaz.jpg]] -!! result -<p><a href="/wiki/File:Foobaz.jpg" title="File:Foobaz.jpg">File:Foobaz.jpg</a> -</p> -!! end - - -### -### Subpages -### -!! article -Subpage test/subpage -!! text -foo -!! endarticle - -!! test -Subpage link -!! options -subpage title=[[Subpage test]] -!! input -[[/subpage]] -!! result -<p><a href="/wiki/Subpage_test/subpage" title="Subpage test/subpage">/subpage</a> -</p> -!! end - -!! test -Subpage noslash link -!! options -subpage title=[[Subpage test]] -!!input -[[/subpage/]] -!! result -<p><a href="/wiki/Subpage_test/subpage" title="Subpage test/subpage">subpage</a> -</p> -!! end - -!! test -Disabled subpages -!! input -[[/subpage]] -!! result -<p><a href="/index.php?title=/subpage&action=edit&redlink=1" class="new" title="/subpage (page does not exist)">/subpage</a> -</p> -!! end - -!! test -BUG 561: {{/Subpage}} -!! options -subpage title=[[Page]] -!! input -{{/Subpage}} -!! result -<p><a href="/index.php?title=Page/Subpage&action=edit&redlink=1" class="new" title="Page/Subpage (page does not exist)">Page/Subpage</a> -</p> -!! end - -### -### Categories -### -!! article -Category:MediaWiki User's Guide -!! text -blah -!! endarticle - -!! test -Link to category -!! input -[[:Category:MediaWiki User's Guide]] -!! result -<p><a href="/wiki/Category:MediaWiki_User%27s_Guide" title="Category:MediaWiki User's Guide">Category:MediaWiki User's Guide</a> -</p> -!! end - -!! test -Simple category -!! options -cat -!! input -[[Category:MediaWiki User's Guide]] -!! result -<a href="/wiki/Category:MediaWiki_User%27s_Guide" title="Category:MediaWiki User's Guide">MediaWiki User's Guide</a> -!! end - -!! test -PAGESINCATEGORY invalid title fatal (r33546 fix) -!! input -{{PAGESINCATEGORY:<bogus>}} -!! result -<p>0 -</p> -!! end - -### -### Inter-language links -### -!! test -Inter-language links -!! options -ill -!! input -[[es:Alimento]] -[[fr:Nourriture]] -[[zh:食品]] -!! result -es:Alimento fr:Nourriture zh:食品 -!! end - -### -### Sections -### -!! test -Basic section headings -!! input -== Headline 1 == -Some text - -==Headline 2== -More -===Smaller headline=== -Blah blah -!! result -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Headline 1">edit</a>]</span> <span class="mw-headline" id="Headline_1"> Headline 1 </span></h2> -<p>Some text -</p> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Headline 2">edit</a>]</span> <span class="mw-headline" id="Headline_2">Headline 2</span></h2> -<p>More -</p> -<h3><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: Smaller headline">edit</a>]</span> <span class="mw-headline" id="Smaller_headline">Smaller headline</span></h3> -<p>Blah blah -</p> -!! end - -!! test -Section headings with TOC -!! input -== Headline 1 == -=== Subheadline 1 === -===== Skipping a level ===== -====== Skipping a level ====== - -== Headline 2 == -Some text -===Another headline=== -!! result -<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div> -<ul> -<li class="toclevel-1 tocsection-1"><a href="#Headline_1"><span class="tocnumber">1</span> <span class="toctext">Headline 1</span></a> -<ul> -<li class="toclevel-2 tocsection-2"><a href="#Subheadline_1"><span class="tocnumber">1.1</span> <span class="toctext">Subheadline 1</span></a> -<ul> -<li class="toclevel-3 tocsection-3"><a href="#Skipping_a_level"><span class="tocnumber">1.1.1</span> <span class="toctext">Skipping a level</span></a> -<ul> -<li class="toclevel-4 tocsection-4"><a href="#Skipping_a_level_2"><span class="tocnumber">1.1.1.1</span> <span class="toctext">Skipping a level</span></a></li> -</ul> -</li> -</ul> -</li> -</ul> -</li> -<li class="toclevel-1 tocsection-5"><a href="#Headline_2"><span class="tocnumber">2</span> <span class="toctext">Headline 2</span></a> -<ul> -<li class="toclevel-2 tocsection-6"><a href="#Another_headline"><span class="tocnumber">2.1</span> <span class="toctext">Another headline</span></a></li> -</ul> -</li> -</ul> -</td></tr></table> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Headline 1">edit</a>]</span> <span class="mw-headline" id="Headline_1"> Headline 1 </span></h2> -<h3><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Subheadline 1">edit</a>]</span> <span class="mw-headline" id="Subheadline_1"> Subheadline 1 </span></h3> -<h5><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: Skipping a level">edit</a>]</span> <span class="mw-headline" id="Skipping_a_level"> Skipping a level </span></h5> -<h6><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: Skipping a level">edit</a>]</span> <span class="mw-headline" id="Skipping_a_level_2"> Skipping a level </span></h6> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: Headline 2">edit</a>]</span> <span class="mw-headline" id="Headline_2"> Headline 2 </span></h2> -<p>Some text -</p> -<h3><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: Another headline">edit</a>]</span> <span class="mw-headline" id="Another_headline">Another headline</span></h3> - -!! end - -# perl -e 'print "="x$_," Level $_ heading","="x$_,"\n" for 1..10' -!! test -Handling of sections up to level 6 and beyond -!! input -= Level 1 Heading= -== Level 2 Heading== -=== Level 3 Heading=== -==== Level 4 Heading==== -===== Level 5 Heading===== -====== Level 6 Heading====== -======= Level 7 Heading======= -======== Level 8 Heading======== -========= Level 9 Heading========= -========== Level 10 Heading========== -!! result -<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div> -<ul> -<li class="toclevel-1 tocsection-1"><a href="#Level_1_Heading"><span class="tocnumber">1</span> <span class="toctext">Level 1 Heading</span></a> -<ul> -<li class="toclevel-2 tocsection-2"><a href="#Level_2_Heading"><span class="tocnumber">1.1</span> <span class="toctext">Level 2 Heading</span></a> -<ul> -<li class="toclevel-3 tocsection-3"><a href="#Level_3_Heading"><span class="tocnumber">1.1.1</span> <span class="toctext">Level 3 Heading</span></a> -<ul> -<li class="toclevel-4 tocsection-4"><a href="#Level_4_Heading"><span class="tocnumber">1.1.1.1</span> <span class="toctext">Level 4 Heading</span></a> -<ul> -<li class="toclevel-5 tocsection-5"><a href="#Level_5_Heading"><span class="tocnumber">1.1.1.1.1</span> <span class="toctext">Level 5 Heading</span></a> -<ul> -<li class="toclevel-6 tocsection-6"><a href="#Level_6_Heading"><span class="tocnumber">1.1.1.1.1.1</span> <span class="toctext">Level 6 Heading</span></a></li> -<li class="toclevel-6 tocsection-7"><a href="#.3D_Level_7_Heading.3D"><span class="tocnumber">1.1.1.1.1.2</span> <span class="toctext">= Level 7 Heading=</span></a></li> -<li class="toclevel-6 tocsection-8"><a href="#.3D.3D_Level_8_Heading.3D.3D"><span class="tocnumber">1.1.1.1.1.3</span> <span class="toctext">== Level 8 Heading==</span></a></li> -<li class="toclevel-6 tocsection-9"><a href="#.3D.3D.3D_Level_9_Heading.3D.3D.3D"><span class="tocnumber">1.1.1.1.1.4</span> <span class="toctext">=== Level 9 Heading===</span></a></li> -<li class="toclevel-6 tocsection-10"><a href="#.3D.3D.3D.3D_Level_10_Heading.3D.3D.3D.3D"><span class="tocnumber">1.1.1.1.1.5</span> <span class="toctext">==== Level 10 Heading====</span></a></li> -</ul> -</li> -</ul> -</li> -</ul> -</li> -</ul> -</li> -</ul> -</li> -</ul> -</td></tr></table> -<h1><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Level 1 Heading">edit</a>]</span> <span class="mw-headline" id="Level_1_Heading"> Level 1 Heading</span></h1> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Level 2 Heading">edit</a>]</span> <span class="mw-headline" id="Level_2_Heading"> Level 2 Heading</span></h2> -<h3><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: Level 3 Heading">edit</a>]</span> <span class="mw-headline" id="Level_3_Heading"> Level 3 Heading</span></h3> -<h4><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: Level 4 Heading">edit</a>]</span> <span class="mw-headline" id="Level_4_Heading"> Level 4 Heading</span></h4> -<h5><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: Level 5 Heading">edit</a>]</span> <span class="mw-headline" id="Level_5_Heading"> Level 5 Heading</span></h5> -<h6><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: Level 6 Heading">edit</a>]</span> <span class="mw-headline" id="Level_6_Heading"> Level 6 Heading</span></h6> -<h6><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=7" title="Edit section: = Level 7 Heading=">edit</a>]</span> <span class="mw-headline" id=".3D_Level_7_Heading.3D">= Level 7 Heading=</span></h6> -<h6><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=8" title="Edit section: == Level 8 Heading==">edit</a>]</span> <span class="mw-headline" id=".3D.3D_Level_8_Heading.3D.3D">== Level 8 Heading==</span></h6> -<h6><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=9" title="Edit section: === Level 9 Heading===">edit</a>]</span> <span class="mw-headline" id=".3D.3D.3D_Level_9_Heading.3D.3D.3D">=== Level 9 Heading===</span></h6> -<h6><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=10" title="Edit section: ==== Level 10 Heading====">edit</a>]</span> <span class="mw-headline" id=".3D.3D.3D.3D_Level_10_Heading.3D.3D.3D.3D">==== Level 10 Heading====</span></h6> - -!! end - -!! test -TOC regression (bug 9764) -!! input -== title 1 == -=== title 1.1 === -==== title 1.1.1 ==== -=== title 1.2 === -== title 2 == -=== title 2.1 === -!! result -<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div> -<ul> -<li class="toclevel-1 tocsection-1"><a href="#title_1"><span class="tocnumber">1</span> <span class="toctext">title 1</span></a> -<ul> -<li class="toclevel-2 tocsection-2"><a href="#title_1.1"><span class="tocnumber">1.1</span> <span class="toctext">title 1.1</span></a> -<ul> -<li class="toclevel-3 tocsection-3"><a href="#title_1.1.1"><span class="tocnumber">1.1.1</span> <span class="toctext">title 1.1.1</span></a></li> -</ul> -</li> -<li class="toclevel-2 tocsection-4"><a href="#title_1.2"><span class="tocnumber">1.2</span> <span class="toctext">title 1.2</span></a></li> -</ul> -</li> -<li class="toclevel-1 tocsection-5"><a href="#title_2"><span class="tocnumber">2</span> <span class="toctext">title 2</span></a> -<ul> -<li class="toclevel-2 tocsection-6"><a href="#title_2.1"><span class="tocnumber">2.1</span> <span class="toctext">title 2.1</span></a></li> -</ul> -</li> -</ul> -</td></tr></table> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: title 1">edit</a>]</span> <span class="mw-headline" id="title_1"> title 1 </span></h2> -<h3><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: title 1.1">edit</a>]</span> <span class="mw-headline" id="title_1.1"> title 1.1 </span></h3> -<h4><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: title 1.1.1">edit</a>]</span> <span class="mw-headline" id="title_1.1.1"> title 1.1.1 </span></h4> -<h3><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: title 1.2">edit</a>]</span> <span class="mw-headline" id="title_1.2"> title 1.2 </span></h3> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: title 2">edit</a>]</span> <span class="mw-headline" id="title_2"> title 2 </span></h2> -<h3><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: title 2.1">edit</a>]</span> <span class="mw-headline" id="title_2.1"> title 2.1 </span></h3> - -!! end - -!! test -TOC with wgMaxTocLevel=3 (bug 6204) -!! options -wgMaxTocLevel=3 -!! input -== title 1 == -=== title 1.1 === -==== title 1.1.1 ==== -=== title 1.2 === -== title 2 == -=== title 2.1 === -!! result -<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div> -<ul> -<li class="toclevel-1 tocsection-1"><a href="#title_1"><span class="tocnumber">1</span> <span class="toctext">title 1</span></a> -<ul> -<li class="toclevel-2 tocsection-2"><a href="#title_1.1"><span class="tocnumber">1.1</span> <span class="toctext">title 1.1</span></a></li> -<li class="toclevel-2 tocsection-4"><a href="#title_1.2"><span class="tocnumber">1.2</span> <span class="toctext">title 1.2</span></a></li> -</ul> -</li> -<li class="toclevel-1 tocsection-5"><a href="#title_2"><span class="tocnumber">2</span> <span class="toctext">title 2</span></a> -<ul> -<li class="toclevel-2 tocsection-6"><a href="#title_2.1"><span class="tocnumber">2.1</span> <span class="toctext">title 2.1</span></a></li> -</ul> -</li> -</ul> -</td></tr></table> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: title 1">edit</a>]</span> <span class="mw-headline" id="title_1"> title 1 </span></h2> -<h3><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: title 1.1">edit</a>]</span> <span class="mw-headline" id="title_1.1"> title 1.1 </span></h3> -<h4><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: title 1.1.1">edit</a>]</span> <span class="mw-headline" id="title_1.1.1"> title 1.1.1 </span></h4> -<h3><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: title 1.2">edit</a>]</span> <span class="mw-headline" id="title_1.2"> title 1.2 </span></h3> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: title 2">edit</a>]</span> <span class="mw-headline" id="title_2"> title 2 </span></h2> -<h3><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: title 2.1">edit</a>]</span> <span class="mw-headline" id="title_2.1"> title 2.1 </span></h3> - -!! end - -!! test -TOC with wgMaxTocLevel=3 and two level four headings (bug 6204) -!! options -wgMaxTocLevel=3 -!! input -==Section 1== -===Section 1.1=== -====Section 1.1.1==== -====Section 1.1.1.1==== -==Section 2== -!! result -<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div> -<ul> -<li class="toclevel-1 tocsection-1"><a href="#Section_1"><span class="tocnumber">1</span> <span class="toctext">Section 1</span></a> -<ul> -<li class="toclevel-2 tocsection-2"><a href="#Section_1.1"><span class="tocnumber">1.1</span> <span class="toctext">Section 1.1</span></a></li> -</ul> -</li> -<li class="toclevel-1 tocsection-5"><a href="#Section_2"><span class="tocnumber">2</span> <span class="toctext">Section 2</span></a></li> -</ul> -</td></tr></table> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Section 1">edit</a>]</span> <span class="mw-headline" id="Section_1">Section 1</span></h2> -<h3><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Section 1.1">edit</a>]</span> <span class="mw-headline" id="Section_1.1">Section 1.1</span></h3> -<h4><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: Section 1.1.1">edit</a>]</span> <span class="mw-headline" id="Section_1.1.1">Section 1.1.1</span></h4> -<h4><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: Section 1.1.1.1">edit</a>]</span> <span class="mw-headline" id="Section_1.1.1.1">Section 1.1.1.1</span></h4> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: Section 2">edit</a>]</span> <span class="mw-headline" id="Section_2">Section 2</span></h2> - -!! end - - -!! test -Resolving duplicate section names -!! input -== Foo bar == -== Foo bar == -!! result -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Foo bar">edit</a>]</span> <span class="mw-headline" id="Foo_bar"> Foo bar </span></h2> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Foo bar">edit</a>]</span> <span class="mw-headline" id="Foo_bar_2"> Foo bar </span></h2> - -!! end - -!! test -Resolving duplicate section names with differing case (bug 10721) -!! input -== Foo bar == -== Foo Bar == -!! result -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Foo bar">edit</a>]</span> <span class="mw-headline" id="Foo_bar"> Foo bar </span></h2> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Foo Bar">edit</a>]</span> <span class="mw-headline" id="Foo_Bar_2"> Foo Bar </span></h2> - -!! end - -!! article -Template:sections -!! text -===Section 1=== -==Section 2== -!! endarticle - -!! test -Template with sections, __NOTOC__ -!! input -__NOTOC__ -==Section 0== -{{sections}} -==Section 4== -!! result -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Section 0">edit</a>]</span> <span class="mw-headline" id="Section_0">Section 0</span></h2> -<h3><span class="editsection">[<a href="/index.php?title=Template:Sections&action=edit&section=T-1" title="Template:Sections">edit</a>]</span> <span class="mw-headline" id="Section_1">Section 1</span></h3> -<h2><span class="editsection">[<a href="/index.php?title=Template:Sections&action=edit&section=T-2" title="Template:Sections">edit</a>]</span> <span class="mw-headline" id="Section_2">Section 2</span></h2> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Section 4">edit</a>]</span> <span class="mw-headline" id="Section_4">Section 4</span></h2> - -!! end - -!! test -__NOEDITSECTION__ keyword -!! input -__NOEDITSECTION__ -==Section 1== -==Section 2== -!! result -<h2> <span class="mw-headline" id="Section_1">Section 1</span></h2> -<h2> <span class="mw-headline" id="Section_2">Section 2</span></h2> - -!! end - -!! test -Link inside a section heading -!! input -==Section with a [[Main Page|link]] in it== -!! result -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Section with a link in it">edit</a>]</span> <span class="mw-headline" id="Section_with_a_link_in_it">Section with a <a href="/wiki/Main_Page" title="Main Page">link</a> in it</span></h2> - -!! end - -!! test -TOC regression (bug 12077) -!! input -__TOC__ -== title 1 == -=== title 1.1 === -== title 2 == -!! result -<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div> -<ul> -<li class="toclevel-1 tocsection-1"><a href="#title_1"><span class="tocnumber">1</span> <span class="toctext">title 1</span></a> -<ul> -<li class="toclevel-2 tocsection-2"><a href="#title_1.1"><span class="tocnumber">1.1</span> <span class="toctext">title 1.1</span></a></li> -</ul> -</li> -<li class="toclevel-1 tocsection-3"><a href="#title_2"><span class="tocnumber">2</span> <span class="toctext">title 2</span></a></li> -</ul> -</td></tr></table> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: title 1">edit</a>]</span> <span class="mw-headline" id="title_1"> title 1 </span></h2> -<h3><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: title 1.1">edit</a>]</span> <span class="mw-headline" id="title_1.1"> title 1.1 </span></h3> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: title 2">edit</a>]</span> <span class="mw-headline" id="title_2"> title 2 </span></h2> - -!! end - -!! test -BUG 1219 URL next to image (good) -!! input -http://example.com [[Image:foobar.jpg]] -!! result -<p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a> <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!!end - -!! test -Short headings with trailing space should match behaviour of Parser::doHeadings (bug 19910) -!! input -=== -The line above must have a trailing space! -=== <!-- ---> <!-- --> -But just in case it doesn't... -!! result -<h1><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: =">edit</a>]</span> <span class="mw-headline" id=".3D">=</span></h1> -<p>The line above must have a trailing space! -</p> -<h1><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: =">edit</a>]</span> <span class="mw-headline" id=".3D_2">=</span></h1> -<p>But just in case it doesn't... -</p> -!! end - -!! test -Header with special characters (bug 25462) -!! input -The tooltips shall not show entities to the user (ie. be double escaped) - -== text > text == -section 1 - -== text < text == -section 2 - -== text & text == -section 3 - -== text ' text == -section 4 - -== text " text == -section 5 -!! result -<p>The tooltips shall not show entities to the user (ie. be double escaped) -</p> -<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div> -<ul> -<li class="toclevel-1 tocsection-1"><a href="#text_.3E_text"><span class="tocnumber">1</span> <span class="toctext">text > text</span></a></li> -<li class="toclevel-1 tocsection-2"><a href="#text_.3C_text"><span class="tocnumber">2</span> <span class="toctext">text < text</span></a></li> -<li class="toclevel-1 tocsection-3"><a href="#text_.26_text"><span class="tocnumber">3</span> <span class="toctext">text & text</span></a></li> -<li class="toclevel-1 tocsection-4"><a href="#text_.27_text"><span class="tocnumber">4</span> <span class="toctext">text ' text</span></a></li> -<li class="toclevel-1 tocsection-5"><a href="#text_.22_text"><span class="tocnumber">5</span> <span class="toctext">text " text</span></a></li> -</ul> -</td></tr></table> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: text > text">edit</a>]</span> <span class="mw-headline" id="text_.3E_text"> text > text </span></h2> -<p>section 1 -</p> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: text < text">edit</a>]</span> <span class="mw-headline" id="text_.3C_text"> text < text </span></h2> -<p>section 2 -</p> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: text & text">edit</a>]</span> <span class="mw-headline" id="text_.26_text"> text & text </span></h2> -<p>section 3 -</p> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: text ' text">edit</a>]</span> <span class="mw-headline" id="text_.27_text"> text ' text </span></h2> -<p>section 4 -</p> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: text " text">edit</a>]</span> <span class="mw-headline" id="text_.22_text"> text " text </span></h2> -<p>section 5 -</p> -!! end - -!! test -Headers with excess '=' characters -(Are similar tests necessary beyond the 1st level?) -!! input -=foo== -==foo= -=''italic'' heading== -==''italic'' heading= -!! result -<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div> -<ul> -<li class="toclevel-1 tocsection-1"><a href="#foo.3D"><span class="tocnumber">1</span> <span class="toctext">foo=</span></a></li> -<li class="toclevel-1 tocsection-2"><a href="#.3Dfoo"><span class="tocnumber">2</span> <span class="toctext">=foo</span></a></li> -<li class="toclevel-1 tocsection-3"><a href="#italic_heading.3D"><span class="tocnumber">3</span> <span class="toctext"><i>italic</i> heading=</span></a></li> -<li class="toclevel-1 tocsection-4"><a href="#.3Ditalic_heading"><span class="tocnumber">4</span> <span class="toctext">=<i>italic</i> heading</span></a></li> -</ul> -</td></tr></table> -<h1><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: foo=">edit</a>]</span> <span class="mw-headline" id="foo.3D">foo=</span></h1> -<h1><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: =foo">edit</a>]</span> <span class="mw-headline" id=".3Dfoo">=foo</span></h1> -<h1><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: italic heading=">edit</a>]</span> <span class="mw-headline" id="italic_heading.3D"><i>italic</i> heading=</span></h1> -<h1><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: =italic heading">edit</a>]</span> <span class="mw-headline" id=".3Ditalic_heading">=<i>italic</i> heading</span></h1> - -!! end - -!! test -BUG 1219 URL next to image (broken) -!! input -http://example.com[[Image:foobar.jpg]] -!! result -<p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> -</p> -!!end - -!! test -Bug 1186 news: in the middle of text -!! input -http://en.wikinews.org/wiki/Wikinews:Workplace -!! result -<p><a rel="nofollow" class="external free" href="http://en.wikinews.org/wiki/Wikinews:Workplace">http://en.wikinews.org/wiki/Wikinews:Workplace</a> -</p> -!!end - - -!! test -Namespaced link must have a title -!! input -[[Project:]] -!! result -<p>[[Project:]] -</p> -!!end - -!! test -Namespaced link must have a title (bad fragment version) -!! input -[[Project:#fragment]] -!! result -<p>[[Project:#fragment]] -</p> -!!end - - -!! test -div with no attributes -!! input -<div>HTML rocks</div> -!! result -<div>HTML rocks</div> - -!! end - -!! test -div with double-quoted attribute -!! input -<div id="rock">HTML rocks</div> -!! result -<div id="rock">HTML rocks</div> - -!! end - -!! test -div with single-quoted attribute -!! input -<div id='rock'>HTML rocks</div> -!! result -<div id="rock">HTML rocks</div> - -!! end - -!! test -div with unquoted attribute -!! input -<div id=rock>HTML rocks</div> -!! result -<div id="rock">HTML rocks</div> - -!! end - -!! test -div with illegal double attributes -!! input -<div id="a" id="b">HTML rocks</div> -!! result -<div id="b">HTML rocks</div> - -!!end - -!! test -HTML multiple attributes correction -!! input -<p class="error" class="awesome">Awesome!</p> -!! result -<p class="awesome">Awesome!</p> - -!!end - -!! test -Table multiple attributes correction -!! input -{| -!+ class="error" class="awesome"| status -|} -!! result -<table> -<tr> -<th class="awesome"> status -</th></tr></table> - -!!end - -!! test -DIV IN UPPERCASE -!! input -<DIV ID="x">HTML ROCKS</DIV> -!! result -<div id="x">HTML ROCKS</div> - -!!end - - -!! test -text with amp in the middle of nowhere -!! input -Remember AT&T? -!!result -<p>Remember AT&T? -</p> -!! end - -!! test -text with character entity: eacute -!! input -I always thought é was a cute letter. -!! result -<p>I always thought é was a cute letter. -</p> -!! end - -!! test -text with undefined character entity: xacute -!! input -I always thought &xacute; was a cute letter. -!! result -<p>I always thought &xacute; was a cute letter. -</p> -!! end - - -### -### Media links -### - -!! test -Media link -!! input -[[Media:Foobar.jpg]] -!! result -<p><a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">Media:Foobar.jpg</a> -</p> -!! end - -!! test -Media link with text -!! input -[[Media:Foobar.jpg|A neat file to look at]] -!! result -<p><a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">A neat file to look at</a> -</p> -!! end - -# FIXME: this is still bad HTML tag nesting -!! test -Media link with nasty text -fixme: doBlockLevels won't wrap this in a paragraph because it contains a div -!! input -[[Media:Foobar.jpg|Safe Link<div style=display:none>" onmouseover="alert(document.cookie)" onfoo="</div>]] -!! result -<a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">Safe Link<div style="display:none">" onmouseover="alert(document.cookie)" onfoo="</div></a> - -!! end - -!! test -Media link to nonexistent file (bug 1702) -!! input -[[Media:No such.jpg]] -!! result -<p><a href="/index.php?title=Special:Upload&wpDestFile=No_such.jpg" class="new" title="No such.jpg">Media:No such.jpg</a> -</p> -!! end - -!! test -Image link to nonexistent file (bug 1850 - good) -!! input -[[Image:No such.jpg]] -!! result -<p><a href="/index.php?title=Special:Upload&wpDestFile=No_such.jpg" class="new" title="File:No such.jpg">File:No such.jpg</a> -</p> -!! end - -!! test -:Image link to nonexistent file (bug 1850 - bad) -!! input -[[:Image:No such.jpg]] -!! result -<p><a href="/index.php?title=File:No_such.jpg&action=edit&redlink=1" class="new" title="File:No such.jpg (page does not exist)">Image:No such.jpg</a> -</p> -!! end - - - -!! test -Character reference normalization in link text (bug 1938) -!! input -[[Main Page|this&that]] -!! result -<p><a href="/wiki/Main_Page" title="Main Page">this&that</a> -</p> -!!end - -!! article -אַ -!! text -Test for unicode normalization - -The page's name is U+05d0 U+05b7, with non-canonical form U+FB2E -!! endarticle - -!! test -(bug 19451) Links should refer to the normalized form. -!! input -[[אַ]] -[[אַ]] -[[אַ]] -[[אַ]] -[[אַ]] -!! result -<p><a href="/wiki/%D7%90%D6%B7" title="אַ">אַ</a> -<a href="/wiki/%D7%90%D6%B7" title="אַ">אַ</a> -<a href="/wiki/%D7%90%D6%B7" title="אַ">אַ</a> -<a href="/wiki/%D7%90%D6%B7" title="אַ">אַ</a> -<a href="/wiki/%D7%90%D6%B7" title="אַ">אַ</a> -</p> -!! end - -!! test -Empty attribute crash test (bug 2067) -!! input -<font color="">foo</font> -!! result -<p><font color="">foo</font> -</p> -!! end - -!! test -Empty attribute crash test single-quotes (bug 2067) -!! input -<font color=''>foo</font> -!! result -<p><font color="">foo</font> -</p> -!! end - -!! test -Attribute test: equals, then nothing -!! input -<font color=>foo</font> -!! result -<p><font>foo</font> -</p> -!! end - -!! test -Attribute test: unquoted value -!! input -<font color=x>foo</font> -!! result -<p><font color="x">foo</font> -</p> -!! end - -!! test -Attribute test: unquoted but illegal value (hash) -!! input -<font color=#x>foo</font> -!! result -<p><font color="#x">foo</font> -</p> -!! end - -!! test -Attribute test: no value -!! input -<font color>foo</font> -!! result -<p><font color="color">foo</font> -</p> -!! end - -!! test -Bug 2095: link with three closing brackets -!! input -[[Main Page]]] -!! result -<p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>] -</p> -!! end - -!! test -Bug 2095: link with pipe and three closing brackets -!! input -[[Main Page|link]]] -!! result -<p><a href="/wiki/Main_Page" title="Main Page">link</a>] -</p> -!! end - -!! test -Bug 2095: link with pipe and three closing brackets, version 2 -!! input -[[Main Page|[http://example.com/]]] -!! result -<p><a href="/wiki/Main_Page" title="Main Page">[http://example.com/]</a> -</p> -!! end - - -### -### Safety -### - -!! article -Template:Dangerous attribute -!! text -" onmouseover="alert(document.cookie) -!! endarticle - -!! article -Template:Dangerous style attribute -!! text -border-size: expression(alert(document.cookie)) -!! endarticle - -!! article -Template:Div style -!! text -<div style="float: right; {{{1}}}">Magic div</div> -!! endarticle - -!! test -Bug 2304: HTML attribute safety (safe template; regression bug 2309) -!! input -<div title="{{test}}"></div> -!! result -<div title="This is a test template"></div> - -!! end - -!! test -Bug 2304: HTML attribute safety (dangerous template; 2309) -!! input -<div title="{{dangerous attribute}}"></div> -!! result -<div title=""></div> - -!! end - -!! test -Bug 2304: HTML attribute safety (dangerous style template; 2309) -!! input -<div style="{{dangerous style attribute}}"></div> -!! result -<div style="/* insecure input */"></div> - -!! end - -!! test -Bug 2304: HTML attribute safety (safe parameter; 2309) -!! input -{{div style|width: 200px}} -!! result -<div style="float: right; width: 200px">Magic div</div> - -!! end - -!! test -Bug 2304: HTML attribute safety (unsafe parameter; 2309) -!! input -{{div style|width: expression(alert(document.cookie))}} -!! result -<div style="/* insecure input */">Magic div</div> - -!! end - -!! test -Bug 2304: HTML attribute safety (unsafe breakout parameter; 2309) -!! input -{{div style|"><script>alert(document.cookie)</script>}} -!! result -<div style="float: right;"><script>alert(document.cookie)</script>">Magic div</div> - -!! end - -!! test -Bug 2304: HTML attribute safety (unsafe breakout parameter 2; 2309) -!! input -{{div style|" ><script>alert(document.cookie)</script>}} -!! result -<div style="float: right;"><script>alert(document.cookie)</script>">Magic div</div> - -!! end - -!! test -Bug 2304: HTML attribute safety (link) -!! input -<div title="[[Main Page]]"></div> -!! result -<div title="[[Main Page]]"></div> - -!! end - -!! test -Bug 2304: HTML attribute safety (italics) -!! input -<div title="''foobar''"></div> -!! result -<div title="''foobar''"></div> - -!! end - -!! test -Bug 2304: HTML attribute safety (bold) -!! input -<div title="'''foobar'''"></div> -!! result -<div title="'''foobar'''"></div> - -!! end - - -!! test -Bug 2304: HTML attribute safety (ISBN) -!! input -<div title="ISBN 1234567890"></div> -!! result -<div title="ISBN 1234567890"></div> - -!! end - -!! test -Bug 2304: HTML attribute safety (RFC) -!! input -<div title="RFC 1234"></div> -!! result -<div title="RFC 1234"></div> - -!! end - -!! test -Bug 2304: HTML attribute safety (PMID) -!! input -<div title="PMID 1234567890"></div> -!! result -<div title="PMID 1234567890"></div> - -!! end - -!! test -Bug 2304: HTML attribute safety (web link) -!! input -<div title="http://example.com/"></div> -!! result -<div title="http://example.com/"></div> - -!! end - -!! test -Bug 2304: HTML attribute safety (named web link) -!! input -<div title="[http://example.com/ link]"></div> -!! result -<div title="[http://example.com/ link]"></div> - -!! end - -!! test -Bug 3244: HTML attribute safety (extension; safe) -!! input -<div style="<nowiki>background:blue</nowiki>"></div> -!! result -<div style="background:blue"></div> - -!! end - -!! test -Bug 3244: HTML attribute safety (extension; unsafe) -!! input -<div style="<nowiki>border-left:expression(alert(document.cookie))</nowiki>"></div> -!! result -<div style="/* insecure input */"></div> - -!! end - -# More MSIE fun discovered by Tom Gilder - -!! test -MSIE CSS safety test: spurious slash -!! input -<div style="background-image:u\rl(javascript:alert('boo'))">evil</div> -!! result -<div style="/* insecure input */">evil</div> - -!! end - -!! test -MSIE CSS safety test: hex code -!! input -<div style="background-image:u\72l(javascript:alert('boo'))">evil</div> -!! result -<div style="/* insecure input */">evil</div> - -!! end - -!! test -MSIE CSS safety test: comment in url -!! input -<div style="background-image:u/**/rl(javascript:alert('boo'))">evil</div> -!! result -<div style="background-image:u rl(javascript:alert('boo'))">evil</div> - -!! end - -!! test -MSIE CSS safety test: comment in expression -!! input -<div style="background-image:expres/**/sion(alert('boo4'))">evil4</div> -!! result -<div style="background-image:expres sion(alert('boo4'))">evil4</div> - -!! end - - -!! test -Table attribute legitimate extension -!! input -{| -!+ style="<nowiki>color:blue</nowiki>"| status -|} -!! result -<table> -<tr> -<th style="color:blue"> status -</th></tr></table> - -!!end - -!! test -Table attribute safety -!! input -{| -!+ style="<nowiki>border-width:expression(0+alert(document.cookie))</nowiki>"| status -|} -!! result -<table> -<tr> -<th style="/* insecure input */"> status -</th></tr></table> - -!! end - -!! test -CSS line continuation 1 -!! input -<div style="background-image: u\ rl(test.jpg);"></div> -!! result -<div style="/* insecure input */"></div> - -!! end - -!! test -CSS line continuation 2 -!! input -<div style="background-image: u\ rl(test.jpg); "></div> -!! result -<div style="/* insecure input */"></div> - -!! end - -!! article -Template:Identity -!! text -{{{1}}} -!! endarticle - -!! test -Expansion of multi-line templates in attribute values (bug 6255) -!! input -<div style="background: {{identity|#00FF00}}">-</div> -!! result -<div style="background: #00FF00">-</div> - -!! end - - -!! test -Expansion of multi-line templates in attribute values (bug 6255 sanity check) -!! input -<div style="background: -#00FF00">-</div> -!! result -<div style="background: #00FF00">-</div> - -!! end - -!! test -Expansion of multi-line templates in attribute values (bug 6255 sanity check 2) -!! input -<div style="background: #00FF00">-</div> -!! result -<div style="background: #00FF00">-</div> - -!! end - -### -### Parser hooks (see maintenance/parserTestsParserHook.php for the <tag> extension) -### -!! test -Parser hook: empty input -!! input -<tag></tag> -!! result -<pre> -string(0) "" -array(0) { -} -</pre> - -!! end - -!! test -Parser hook: empty input using terminated empty elements -!! input -<tag/> -!! result -<pre> -NULL -array(0) { -} -</pre> - -!! end - -!! test -Parser hook: empty input using terminated empty elements (space before) -!! input -<tag /> -!! result -<pre> -NULL -array(0) { -} -</pre> - -!! end - -!! test -Parser hook: basic input -!! input -<tag>input</tag> -!! result -<pre> -string(5) "input" -array(0) { -} -</pre> - -!! end - - -!! test -Parser hook: case insensitive -!! input -<TAG>input</TAG> -!! result -<pre> -string(5) "input" -array(0) { -} -</pre> - -!! end - - -!! test -Parser hook: case insensitive, redux -!! input -<TaG>input</TAg> -!! result -<pre> -string(5) "input" -array(0) { -} -</pre> - -!! end - -!! test -Parser hook: nested tags -!! options -noxml -!! input -<tag><tag></tag></tag> -!! result -<pre> -string(5) "<tag>" -array(0) { -} -</pre></tag> - -!! end - -!! test -Parser hook: basic arguments -!! input -<tag width=200 height = "100" depth = '50' square></tag> -!! result -<pre> -string(0) "" -array(4) { - ["width"]=> - string(3) "200" - ["height"]=> - string(3) "100" - ["depth"]=> - string(2) "50" - ["square"]=> - string(6) "square" -} -</pre> - -!! end - -!! test -Parser hook: argument containing a forward slash (bug 5344) -!! input -<tag filename='/tmp/bla'></tag> -!! result -<pre> -string(0) "" -array(1) { - ["filename"]=> - string(8) "/tmp/bla" -} -</pre> - -!! end - -!! test -Parser hook: empty input using terminated empty elements (bug 2374) -!! input -<tag foo=bar/>text -!! result -<pre> -NULL -array(1) { - ["foo"]=> - string(3) "bar" -} -</pre>text - -!! end - -# </tag> should be output literally since there is no matching tag that begins it -!! test -Parser hook: basic arguments using terminated empty elements (bug 2374) -!! input -<tag width=200 height = "100" depth = '50' square/> -other stuff -</tag> -!! result -<pre> -NULL -array(4) { - ["width"]=> - string(3) "200" - ["height"]=> - string(3) "100" - ["depth"]=> - string(2) "50" - ["square"]=> - string(6) "square" -} -</pre> -<p>other stuff -</tag> -</p> -!! end - -### -### (see maintenance/parserTestsStaticParserHook.php for the <statictag> extension) -### - -!! test -Parser hook: static parser hook not inside a comment -!! input -<statictag>hello, world</statictag> -<statictag action=flush/> -!! result -<p>hello, world -</p> -!! end - - -!! test -Parser hook: static parser hook inside a comment -!! input -<!-- <statictag>hello, world</statictag> --> -<statictag action=flush/> -!! result -<p><br /> -</p> -!! end - -# Nested template calls; this case was broken by Parser.php rev 1.506, -# since reverted. - -!! article -Template:One-parameter -!! text -(My parameter is: {{{1}}}) -!! endarticle - -!! article -Template:Map-one-parameter -!! text -{{{{{1}}}|{{{2}}}}} -!! endarticle - -!! test -Nested template calls -!! input -{{Map-one-parameter|One-parameter|param}} -!! result -<p>(My parameter is: param) -</p> -!! end - - -### -### Sanitizer -### -!! test -Sanitizer: Closing of open tags -!! input -<s></s><table></table> -!! result -<s></s><table></table> - -!! end - -!! test -Sanitizer: Closing of open but not closed tags -!! input -<s>foo -!! result -<p><s>foo</s> -</p> -!! end - -!! test -Sanitizer: Closing of closed but not open tags -!! input -</s> -!! result -<p></s> -</p> -!! end - -!! test -Sanitizer: Closing of closed but not open table tags -!! input -Table not started</td></tr></table> -!! result -<p>Table not started</td></tr></table> -</p> -!! end - -!! test -Sanitizer: Escaping of spaces, multibyte characters, colons & other stuff in id="" -!! input -<span id="æ: v">byte</span>[[#æ: v|backlink]] -!! result -<p><span id=".C3.A6:_v">byte</span><a href="#.C3.A6:_v">backlink</a> -</p> -!! end - -!! test -Sanitizer: Validating the contents of the id attribute (bug 4515) -!! options -disabled -!! input -<br id=9 /> -!! result -Something, but definitely not <br id="9" />... -!! end - -!! test -Sanitizer: Validating id attribute uniqueness (bug 4515, bug 6301) -!! options -disabled -!! input -<br id="foo" /><br id="foo" /> -!! result -Something need to be done. foo-2 ? -!! end - -!! test -Language converter: output gets cut off unexpectedly (bug 5757) -!! options -language=zh -!! input -this bit is safe: }- - -but if we add a conversion instance: -{zh-cn:xxx;zh-tw:yyy}- - -then we get cut off here: }- - -all additional text is vanished -!! result -<p>this bit is safe: }- -</p><p>but if we add a conversion instance: xxx -</p><p>then we get cut off here: }- -</p><p>all additional text is vanished -</p> -!! end - -!! test -Self closed html pairs (bug 5487) -!! options -!! input -<center><font id="bug" />Centered text</center> -<div><font id="bug2" />In div text</div> -!! result -<center><font id="bug" />Centered text</center> -<div><font id="bug2" />In div text</div> - -!! end - -# -# -# - -!! test -Punctuation: nbsp before exclamation -!! input -C'est grave ! -!! result -<p>C'est grave ! -</p> -!! end - -!! test -Punctuation: CSS !important (bug 11874) -!! input -<div style="width:50% !important">important</div> -!! result -<div style="width:50% !important">important</div> - -!!end - -!! test -Punctuation: CSS ! important (bug 11874; with space after) -!! input -<div style="width:50% ! important">important</div> -!! result -<div style="width:50% ! important">important</div> - -!!end - - -!! test -HTML bullet list, closed tags (bug 5497) -!! input -<ul> -<li>One</li> -<li>Two</li> -</ul> -!! result -<ul> -<li>One</li> -<li>Two</li> -</ul> - -!! end - -!! test -HTML bullet list, unclosed tags (bug 5497) -!! options -disabled -!! input -<ul> -<li>One -<li>Two -</ul> -!! result -<ul> -<li>One -</li><li>Two -</li></ul> - -!! end - -!! test -HTML ordered list, closed tags (bug 5497) -!! input -<ol> -<li>One</li> -<li>Two</li> -</ol> -!! result -<ol> -<li>One</li> -<li>Two</li> -</ol> - -!! end - -!! test -HTML ordered list, unclosed tags (bug 5497) -!! options -disabled -!! input -<ol> -<li>One -<li>Two -</ol> -!! result -<ol> -<li>One -</li><li>Two -</li></ol> - -!! end - -!! test -HTML nested bullet list, closed tags (bug 5497) -!! input -<ul> -<li>One</li> -<li>Two: -<ul> -<li>Sub-one</li> -<li>Sub-two</li> -</ul> -</li> -</ul> -!! result -<ul> -<li>One</li> -<li>Two: -<ul> -<li>Sub-one</li> -<li>Sub-two</li> -</ul> -</li> -</ul> - -!! end - -!! test -HTML nested bullet list, open tags (bug 5497) -!! options -disabled -!! input -<ul> -<li>One -<li>Two: -<ul> -<li>Sub-one -<li>Sub-two -</ul> -</ul> -!! result -<ul> -<li>One -</li><li>Two: -<ul> -<li>Sub-one -</li><li>Sub-two -</li></ul> -</li></ul> - -!! end - -!! test -HTML nested ordered list, closed tags (bug 5497) -!! input -<ol> -<li>One</li> -<li>Two: -<ol> -<li>Sub-one</li> -<li>Sub-two</li> -</ol> -</li> -</ol> -!! result -<ol> -<li>One</li> -<li>Two: -<ol> -<li>Sub-one</li> -<li>Sub-two</li> -</ol> -</li> -</ol> - -!! end - -!! test -HTML nested ordered list, open tags (bug 5497) -!! options -disabled -!! input -<ol> -<li>One -<li>Two: -<ol> -<li>Sub-one -<li>Sub-two -</ol> -</ol> -!! result -<ol> -<li>One -</li><li>Two: -<ol> -<li>Sub-one -</li><li>Sub-two -</li></ol> -</li></ol> - -!! end - -!! test -HTML ordered list item with parameters oddity -!! input -<ol><li id="fragment">One</li></ol> -!! result -<ol><li id="fragment">One</li></ol> - -!! end - -!!test -bug 5918: autonumbering -!! input -[http://first/] [http://second] [ftp://ftp] - -ftp://inlineftp - -[mailto:enclosed@mail.tld With target] - -[mailto:enclosed@mail.tld] - -mailto:inline@mail.tld -!! result -<p><a rel="nofollow" class="external autonumber" href="http://first/">[1]</a> <a rel="nofollow" class="external autonumber" href="http://second">[2]</a> <a rel="nofollow" class="external autonumber" href="ftp://ftp">[3]</a> -</p><p><a rel="nofollow" class="external free" href="ftp://inlineftp">ftp://inlineftp</a> -</p><p><a rel="nofollow" class="external text" href="mailto:enclosed@mail.tld">With target</a> -</p><p><a rel="nofollow" class="external autonumber" href="mailto:enclosed@mail.tld">[4]</a> -</p><p><a rel="nofollow" class="external free" href="mailto:inline@mail.tld">mailto:inline@mail.tld</a> -</p> -!! end - - -# -# Security and HTML correctness -# From Nick Jenkins' fuzz testing -# - -!! test -Fuzz testing: Parser13 -!! input -{| -| http://a| -!! result -<table> -<tr> -<td> -</td> -</tr> -</table> - -!! end - -!! test -Fuzz testing: Parser14 -!! input -== onmouseover= == -http://__TOC__ -!! result -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: onmouseover=">edit</a>]</span> <span class="mw-headline" id="onmouseover.3D"> onmouseover= </span></h2> -http://<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div> -<ul> -<li class="toclevel-1 tocsection-1"><a href="#onmouseover.3D"><span class="tocnumber">1</span> <span class="toctext">onmouseover=</span></a></li> -</ul> -</td></tr></table> - -!! end - -!! test -Fuzz testing: Parser14-table -!! input -==a== -{| STYLE=__TOC__ -!! result -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: a">edit</a>]</span> <span class="mw-headline" id="a">a</span></h2> -<table style="__TOC__"> -<tr><td></td></tr> -</table> - -!! end - -# Known to produce bogus xml (extra </td>) -!! test -Fuzz testing: Parser16 -!! options -noxml -!! input -{| -!https://|||||| -!! result -<table> -<tr> -<th>https://</th> -<th></th> -<th></th> -<th> -</td> -</tr> -</table> - -!! end - -!! test -Fuzz testing: Parser21 -!! input -{| -! irc://{{ftp://a" onmouseover="alert('hello world');" -| -!! result -<table> -<tr> -<th> <a rel="nofollow" class="external free" href="irc://{{ftp://a">irc://{{ftp://a</a>" onmouseover="alert('hello world');" -</th> -<td> -</td> -</tr> -</table> - -!! end - -!! test -Fuzz testing: Parser22 -!! input -http://===r:::https://b - -{| -!!result -<p><a rel="nofollow" class="external free" href="http://===r:::https://b">http://===r:::https://b</a> -</p> -<table> -<tr><td></td></tr> -</table> - -!! end - -# Known to produce bad XML for now -!! test -Fuzz testing: Parser24 -!! options -noxml -!! input -{| -{{{| -<u CLASS= -| {{{{SSSll!!!!!!!VVVV)]]][[Special:*xxxxxxx--><noinclude>}}}} > -<br style="onmouseover='alert(document.cookie);' " /> - -MOVE YOUR MOUSE CURSOR OVER THIS TEXT -| -!! result -<table> -{{{| -<u class="|">}}}} > -<br style="onmouseover='alert(document.cookie);'" /> - -MOVE YOUR MOUSE CURSOR OVER THIS TEXT -<tr> -<td></u> -</td> -</tr> -</table> - -!! end - -# Note: the current result listed for this is not what the original one was, -# but the original bug was JavaScript injection, which is fixed in any case. -# It's not clear that the original result listed was any more correct than the -# current one. Original result: -# <p>{{{| -# </p> -# <li class="||"> -# }}}blah" onmouseover="alert('hello world');" align="left"<b>MOVE MOUSE CURSOR OVER HERE</b> -!!test -Fuzz testing: Parser25 (bug 6055) -!! input -{{{ -| -<LI CLASS=|| - > -}}}blah" onmouseover="alert('hello world');" align="left"'''MOVE MOUSE CURSOR OVER HERE -!! result -<p><LI CLASS=blah" onmouseover="alert('hello world');" align="left"<b>MOVE MOUSE CURSOR OVER HERE</b> -</p> -!! end - -!!test -Fuzz testing: URL adjacent extension (with space, clean) -!! options -!! input -http://example.com <nowiki>junk</nowiki> -!! result -<p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a> junk -</p> -!!end - -!!test -Fuzz testing: URL adjacent extension (no space, dirty; nowiki) -!! options -!! input -http://example.com<nowiki>junk</nowiki> -!! result -<p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>junk -</p> -!!end - -!!test -Fuzz testing: URL adjacent extension (no space, dirty; pre) -!! options -!! input -http://example.com<pre>junk</pre> -!! result -<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a><pre>junk</pre> - -!!end - -!!test -Fuzz testing: image with bogus manual thumbnail -!!input -[[Image:foobar.jpg|thumbnail= ]] -!!result -<div class="thumb tright"><div class="thumbinner" style="width:1943px;">Error creating thumbnail: <div class="thumbcaption"></div></div></div> - -!!end - -!! test -Fuzz testing: encoded newline in generated HTML replacements (bug 6577) -!! input -<pre dir=" "></pre> -!! result -<pre dir=" "></pre> - -!! end - -!! test -Parsing optional HTML elements (Bug 6171) -!! options -!! input -<table> - <tr> - <td> Some tabular data</td> - <td> More tabular data ... - <td> And yet som tabular data</td> - </tr> -</table> -!! result -<table> - <tr> - <td> Some tabular data</td> - <td> More tabular data ... - </td><td> And yet som tabular data</td> - </tr> -</table> - -!! end - -!! test -Correct handling of <td>, <tr> (Bug 6171) -!! options -!! input -<table> - <tr> - <td> Some tabular data</td> - <td> More tabular data ...</td> - <td> And yet som tabular data</td> - </tr> -</table> -!! result -<table> - <tr> - <td> Some tabular data</td> - <td> More tabular data ...</td> - <td> And yet som tabular data</td> - </tr> -</table> - -!! end - - -!! test -Parsing crashing regression (fr:JavaScript) -!! input -</body></x> -!! result -<p></body></x> -</p> -!! end - -!! test -Inline wiki vs wiki block nesting -!! input -'''Bold paragraph - -New wiki paragraph -!! result -<p><b>Bold paragraph</b> -</p><p>New wiki paragraph -</p> -!! end - -!! test -Inline HTML vs wiki block nesting -!! options -disabled -!! input -<b>Bold paragraph - -New wiki paragraph -!! result -<p><b>Bold paragraph</b> -</p><p>New wiki paragraph -</p> -!! end - -# Original result was this: -# <p><b>bold</b><b>bold<i>bolditalics</i></b> -# </p> -# While that might be marginally more intuitive, maybe, the six-apostrophe -# construct is clearly pathological and the result stated here (which is what -# the parser actually does) is about as reasonable as anything. -!!test -Mixing markup for italics and bold -!! options -!! input -'''bold''''''bold''bolditalics''''' -!! result -<p>'<i>bold'</i><b>bold<i>bolditalics</i></b> -</p> -!! end - - -!! article -Xyzzyx -!! text -Article for special page transclusion test -!! endarticle - -!! test -Special page transclusion -!! options -!! input -{{Special:Prefixindex/Xyzzyx}} -!! result -<table id="mw-prefixindex-list-table"><tr><td><a href="/wiki/Xyzzyx" title="Xyzzyx">Xyzzyx</a></td></tr></table> - -!! end - -!! test -Special page transclusion twice (bug 5021) -!! options -!! input -{{Special:Prefixindex/Xyzzyx}} -{{Special:Prefixindex/Xyzzyx}} -!! result -<table id="mw-prefixindex-list-table"><tr><td><a href="/wiki/Xyzzyx" title="Xyzzyx">Xyzzyx</a></td></tr></table> -<table id="mw-prefixindex-list-table"><tr><td><a href="/wiki/Xyzzyx" title="Xyzzyx">Xyzzyx</a></td></tr></table> - -!! end - -!! test -Transclusion of default MediaWiki message -!! input -{{MediaWiki:Mainpage}} -!!result -<p>Main Page -</p> -!! end - -!! test -Transclusion of nonexistent MediaWiki message -!! input -{{MediaWiki:Mainpagexxx}} -!!result -<p><a href="/index.php?title=MediaWiki:Mainpagexxx&action=edit&redlink=1" class="new" title="MediaWiki:Mainpagexxx (page does not exist)">MediaWiki:Mainpagexxx</a> -</p> -!! end - -!! test -Transclusion of MediaWiki message with underscore -!! input -{{MediaWiki:history_short}} -!! result -<p>History -</p> -!! end - -!! test -Transclusion of MediaWiki message with space -!! input -{{MediaWiki:history short}} -!! result -<p>History -</p> -!! end - -!! test -Invalid header with following text -!! input -= x = y -!! result -<p>= x = y -</p> -!! end - - -!! test -Section extraction test (section 0) -!! options -section=0 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -!! end - -!! test -Section extraction test (section 1) -!! options -section=1 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -==a== -===aa=== -====aaa==== -!! end - -!! test -Section extraction test (section 2) -!! options -section=2 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -===aa=== -====aaa==== -!! end - -!! test -Section extraction test (section 3) -!! options -section=3 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -====aaa==== -!! end - -!! test -Section extraction test (section 4) -!! options -section=4 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -==b== -===ba=== -===bb=== -====bba==== -===bc=== -!! end - -!! test -Section extraction test (section 5) -!! options -section=5 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -===ba=== -!! end - -!! test -Section extraction test (section 6) -!! options -section=6 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -===bb=== -====bba==== -!! end - -!! test -Section extraction test (section 7) -!! options -section=7 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -====bba==== -!! end - -!! test -Section extraction test (section 8) -!! options -section=8 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -===bc=== -!! end - -!! test -Section extraction test (section 9) -!! options -section=9 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -==c== -===ca=== -!! end - -!! test -Section extraction test (section 10) -!! options -section=10 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -===ca=== -!! end - -!! test -Section extraction test (nonexistent section 11) -!! options -section=11 -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -!! end - -!! test -Section extraction test with bogus heading (section 1) -!! options -section=1 -!! input -==a== -==bogus== not a legal section -==b== -!! result -==a== -==bogus== not a legal section -!! end - -!! test -Section extraction test with bogus heading (section 2) -!! options -section=2 -!! input -==a== -==bogus== not a legal section -==b== -!! result -==b== -!! end - -!! test -Section extraction test with comment after heading (section 1) -!! options -section=1 -!! input -==a== -==b== <!-- --> -==c== -!! result -==a== -!! end - -!! test -Section extraction test with comment after heading (section 2) -!! options -section=2 -!! input -==a== -==b== <!-- --> -==c== -!! result -==b== <!-- --> -!! end - -!! test -Section extraction test with bogus <nowiki> heading (section 1) -!! options -section=1 -!! input -==a== -==bogus== <nowiki>not a legal section</nowiki> -==b== -!! result -==a== -==bogus== <nowiki>not a legal section</nowiki> -!! end - -!! test -Section extraction test with bogus <nowiki> heading (section 2) -!! options -section=2 -!! input -==a== -==bogus== <nowiki>not a legal section</nowiki> -==b== -!! result -==b== -!! end - - -# Formerly testing for bug 2587, now resolved by the use of unmarked sections -# instead of respecting commented sections -!! test -Section extraction prefixed by comment (section 1) -!! options -section=1 -!! input -<!-- -->==sec1== -==sec2== -!!result -==sec2== -!!end - -!! test -Section extraction prefixed by comment (section 2) -!! options -section=2 -!! input -<!-- -->==sec1== -==sec2== -!!result - -!!end - - -# Formerly testing for bug 2607, now resolved by the use of unmarked sections -# instead of respecting HTML-style headings -!! test -Section extraction, mixed wiki and html (section 1) -!! options -section=1 -!! input -<h2>unmarked</h2> -unmarked -==1== -one -==2== -two -!! result -==1== -one -!! end - -!! test -Section extraction, mixed wiki and html (section 2) -!! options -section=2 -!! input -<h2>unmarked</h2> -unmarked -==1== -one -==2== -two -!! result -==2== -two -!! end - - -# Formerly testing for bug 3342 -!! test -Section extraction, heading surrounded by <noinclude> -!! options -section=1 -!! input -<noinclude>==unmarked==</noinclude> -==marked== -!! result -==marked== -!!end - -# Test behaviour of bug 19910 -!! test -Sectiion with all-equals -!! options -section=2 -!! input -=== -The line above must have a trailing space -=== <!-- ---> <!-- --> -But just in case it doesn't... -!! result -=== <!-- ---> <!-- --> -But just in case it doesn't... -!! end - -!! test -Section replacement test (section 0) -!! options -replace=0,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -xxx - -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! end - -!! test -Section replacement test (section 1) -!! options -replace=1,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -xxx - -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! end - -!! test -Section replacement test (section 2) -!! options -replace=2,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -==a== -xxx - -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! end - -!! test -Section replacement test (section 3) -!! options -replace=3,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -==a== -===aa=== -xxx - -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! end - -!! test -Section replacement test (section 4) -!! options -replace=4,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -==a== -===aa=== -====aaa==== -xxx - -==c== -===ca=== -!! end - -!! test -Section replacement test (section 5) -!! options -replace=5,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -==a== -===aa=== -====aaa==== -==b== -xxx - -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! end - -!! test -Section replacement test (section 6) -!! options -replace=6,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -xxx - -===bc=== -==c== -===ca=== -!! end - -!! test -Section replacement test (section 7) -!! options -replace=7,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -xxx - -===bc=== -==c== -===ca=== -!! end - -!! test -Section replacement test (section 8) -!! options -replace=8,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -xxx - -==c== -===ca=== -!!end - -!! test -Section replacement test (section 9) -!! options -replace=9,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -xxx -!! end - -!! test -Section replacement test (section 10) -!! options -replace=10,"xxx" -!! input -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -===ca=== -!! result -start -==a== -===aa=== -====aaa==== -==b== -===ba=== -===bb=== -====bba==== -===bc=== -==c== -xxx -!! end - -!! test -Section replacement test with initial whitespace (bug 13728) -!! options -replace=2,"xxx" -!! input - Preformatted initial line -==a== -===a=== -!! result - Preformatted initial line -==a== -xxx -!! end - - -!! test -Section extraction, heading followed by pre with 20 spaces (bug 6398) -!! options -section=1 -!! input -==a== - a -!! result -==a== - a -!! end - -!! test -Section extraction, heading followed by pre with 19 spaces (bug 6398 sanity check) -!! options -section=1 -!! input -==a== - a -!! result -==a== - a -!! end - - -!! test -Section extraction, <pre> around bogus header (bug 10309) -!! options -noxml section=2 -!! input -== Section One == -<pre> -======= -</pre> - -== Section Two == -stuff -!! result -== Section Two == -stuff -!! end - -!! test -Section replacement, <pre> around bogus header (bug 10309) -!! options -noxml replace=2,"xxx" -!! input -== Section One == -<pre> -======= -</pre> - -== Section Two == -stuff -!! result -== Section One == -<pre> -======= -</pre> - -xxx -!! end - - - -!! test -Handling of 
 in URLs -!! input -**irc://
a -!! result -<ul><li><ul><li><a rel="nofollow" class="external free" href="irc://%0Aa">irc://%0Aa</a> -</li></ul> -</li></ul> - -!!end - -!! test -5 quotes, code coverage +1 line -!! input -''''' -!! result -!! end - -!! test -Special:Search page linking. -!! input -{{Special:search}} -!! result -<p><a href="/wiki/Special:Search" title="Special:Search">Special:Search</a> -</p> -!! end - -!! test -Say the magic word -!! input -* {{PAGENAME}} -* {{BASEPAGENAME}} -* {{SUBPAGENAME}} -* {{SUBPAGENAMEE}} -* {{BASEPAGENAME}} -* {{BASEPAGENAMEE}} -* {{TALKPAGENAME}} -* {{TALKPAGENAMEE}} -* {{SUBJECTPAGENAME}} -* {{SUBJECTPAGENAMEE}} -* {{NAMESPACEE}} -* {{NAMESPACE}} -* {{TALKSPACE}} -* {{TALKSPACEE}} -* {{SUBJECTSPACE}} -* {{SUBJECTSPACEE}} -* {{Dynamic|{{NUMBEROFUSERS}}|{{NUMBEROFPAGES}}|{{CURRENTVERSION}}|{{CONTENTLANGUAGE}}|{{DIRECTIONMARK}}|{{CURRENTTIMESTAMP}}|{{NUMBEROFARTICLES}}}} -!! result -<ul><li> Parser test -</li><li> Parser test -</li><li> Parser test -</li><li> Parser_test -</li><li> Parser test -</li><li> Parser_test -</li><li> Talk:Parser test -</li><li> Talk:Parser_test -</li><li> Parser test -</li><li> Parser_test -</li><li> -</li><li> -</li><li> Talk -</li><li> Talk -</li><li> -</li><li> -</li><li> <a href="/index.php?title=Template:Dynamic&action=edit&redlink=1" class="new" title="Template:Dynamic (page does not exist)">Template:Dynamic</a> -</li></ul> - -!! end -### Note: Above tests excludes the "{{NUMBEROFADMINS}}" magic word because it generates a MySQL error when included. - -!! test -Gallery -!! input -<gallery> -image1.png | -image2.gif||||| - -image3| -image4 |300px| centre - image5.svg| http:///////// -[[x|xx]]]] -* image6 -</gallery> -!! result -<ul class="gallery"> - <li class="gallerybox" style="width: 155px"><div style="width: 155px"> - <div style="height: 150px;">Image1.png</div> - <div class="gallerytext"> - </div> - </div></li> - <li class="gallerybox" style="width: 155px"><div style="width: 155px"> - <div style="height: 150px;">Image2.gif</div> - <div class="gallerytext"> -<p>|||| -</p> - </div> - </div></li> - <li class="gallerybox" style="width: 155px"><div style="width: 155px"> - <div style="height: 150px;">Image3</div> - <div class="gallerytext"> - </div> - </div></li> - <li class="gallerybox" style="width: 155px"><div style="width: 155px"> - <div style="height: 150px;">Image4</div> - <div class="gallerytext"> -<p>300px| centre -</p> - </div> - </div></li> - <li class="gallerybox" style="width: 155px"><div style="width: 155px"> - <div style="height: 150px;">Image5.svg</div> - <div class="gallerytext"> -<p><a rel="nofollow" class="external free" href="http://///////">http://///////</a> -</p> - </div> - </div></li> - <li class="gallerybox" style="width: 155px"><div style="width: 155px"> - <div style="height: 150px;">* image6</div> - <div class="gallerytext"> - </div> - </div></li> -</ul> - -!! end - -!! test -Gallery (with options) -!! input -<gallery widths='70px' heights='40px' perrow='2' caption='Foo [[Main Page]]' > -File:Nonexistant.jpg|caption -File:Nonexistant.jpg -image:foobar.jpg|some '''caption''' [[Main Page]] -image:foobar.jpg -image:foobar.jpg|Blabla|alt=This is a foo-bar.|blabla. -</gallery> -!! result -<ul class="gallery" style="max-width: 226px;_width: 226px;"> - <li class='gallerycaption'>Foo <a href="/wiki/Main_Page" title="Main Page">Main Page</a></li> - <li class="gallerybox" style="width: 105px"><div style="width: 105px"> - <div style="height: 70px;">Nonexistant.jpg</div> - <div class="gallerytext"> -<p>caption -</p> - </div> - </div></li> - <li class="gallerybox" style="width: 105px"><div style="width: 105px"> - <div style="height: 70px;">Nonexistant.jpg</div> - <div class="gallerytext"> - </div> - </div></li> - <li class="gallerybox" style="width: 105px"><div style="width: 105px"> - <div class="thumb" style="width: 100px;"><div style="margin:31px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="70" height="8" /></a></div></div> - <div class="gallerytext"> -<p>some <b>caption</b> <a href="/wiki/Main_Page" title="Main Page">Main Page</a> -</p> - </div> - </div></li> - <li class="gallerybox" style="width: 105px"><div style="width: 105px"> - <div class="thumb" style="width: 100px;"><div style="margin:31px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="70" height="8" /></a></div></div> - <div class="gallerytext"> - </div> - </div></li> - <li class="gallerybox" style="width: 105px"><div style="width: 105px"> - <div class="thumb" style="width: 100px;"><div style="margin:31px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="This is a foo-bar." src="http://example.com/images/3/3a/Foobar.jpg" width="70" height="8" /></a></div></div> - <div class="gallerytext"> -<p>Blabla|blabla. -</p> - </div> - </div></li> -</ul> - -!! end - -!! test -Gallery with wikitext inside caption -!! input -<gallery> -File:foobar.jpg|[[File:foobar.jpg|20px|desc|alt=inneralt]]|alt=galleryalt -File:foobar.jpg|{{Test|unamedParam|alt=param}}|alt=galleryalt -</gallery> -!! result -<ul class="gallery"> - <li class="gallerybox" style="width: 155px"><div style="width: 155px"> - <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="galleryalt" src="http://example.com/images/3/3a/Foobar.jpg" width="120" height="14" /></a></div></div> - <div class="gallerytext"> -<p><a href="/wiki/File:Foobar.jpg" class="image" title="desc"><img alt="inneralt" src="http://example.com/images/3/3a/Foobar.jpg" width="20" height="2" /></a> -</p> - </div> - </div></li> - <li class="gallerybox" style="width: 155px"><div style="width: 155px"> - <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="galleryalt" src="http://example.com/images/3/3a/Foobar.jpg" width="120" height="14" /></a></div></div> - <div class="gallerytext"> -<p>This is a test template -</p> - </div> - </div></li> -</ul> - -!! end - -!! test -gallery (with showfilename option) -!! input -<gallery showfilename> -File:Nonexistant.jpg|caption -File:Nonexistant.jpg -image:foobar.jpg|some '''caption''' [[Main Page]] -File:Foobar.jpg -</gallery> -!! result -<ul class="gallery"> - <li class="gallerybox" style="width: 155px"><div style="width: 155px"> - <div style="height: 150px;">Nonexistant.jpg</div> - <div class="gallerytext"> -<p><a href="/wiki/File:Nonexistant.jpg" title="File:Nonexistant.jpg">Nonexistant.jpg</a><br /> -caption -</p> - </div> - </div></li> - <li class="gallerybox" style="width: 155px"><div style="width: 155px"> - <div style="height: 150px;">Nonexistant.jpg</div> - <div class="gallerytext"> -<p><a href="/wiki/File:Nonexistant.jpg" title="File:Nonexistant.jpg">Nonexistant.jpg</a><br /> -</p> - </div> - </div></li> - <li class="gallerybox" style="width: 155px"><div style="width: 155px"> - <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="120" height="14" /></a></div></div> - <div class="gallerytext"> -<p><a href="/wiki/File:Foobar.jpg" title="File:Foobar.jpg">Foobar.jpg</a><br /> -some <b>caption</b> <a href="/wiki/Main_Page" title="Main Page">Main Page</a> -</p> - </div> - </div></li> - <li class="gallerybox" style="width: 155px"><div style="width: 155px"> - <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="120" height="14" /></a></div></div> - <div class="gallerytext"> -<p><a href="/wiki/File:Foobar.jpg" title="File:Foobar.jpg">Foobar.jpg</a><br /> -</p> - </div> - </div></li> -</ul> - -!! end - -!! test -Gallery (with namespace-less filenames) -!! input -<gallery> -File:Nonexistant.jpg -Nonexistant.jpg -image:foobar.jpg -foobar.jpg -</gallery> -!! result -<ul class="gallery"> - <li class="gallerybox" style="width: 155px"><div style="width: 155px"> - <div style="height: 150px;">Nonexistant.jpg</div> - <div class="gallerytext"> - </div> - </div></li> - <li class="gallerybox" style="width: 155px"><div style="width: 155px"> - <div style="height: 150px;">Nonexistant.jpg</div> - <div class="gallerytext"> - </div> - </div></li> - <li class="gallerybox" style="width: 155px"><div style="width: 155px"> - <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="120" height="14" /></a></div></div> - <div class="gallerytext"> - </div> - </div></li> - <li class="gallerybox" style="width: 155px"><div style="width: 155px"> - <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="120" height="14" /></a></div></div> - <div class="gallerytext"> - </div> - </div></li> -</ul> - -!! end - -!! test -HTML Hex character encoding (spells the word "JavaScript") -!! input -JavaScript -!! result -<p>JavaScript -</p> -!! end - -!! test -HTML Hex character encoding bogus encoding (bug 26437 regression check) -!! input -&#xsee;&#XSEE; -!! result -<p>&#xsee;&#XSEE; -</p> -!! end - -!! test -HTML Hex character encoding mixed case -!! input -îî -!! result -<p>îî -</p> -!! end - -!! test -__FORCETOC__ override -!! input -__NEWSECTIONLINK__ -__FORCETOC__ -!! result -<p><br /> -</p> -!! end - -!! test -ISBN code coverage -!! input -ISBN 978-0-1234-56 789 -!! result -<p><a href="/wiki/Special:BookSources/9780123456" class="internal mw-magiclink-isbn">ISBN 978-0-1234-56</a> 789 -</p> -!! end - -!! test -ISBN followed by 5 spaces -!! input -ISBN -!! result -<p>ISBN -</p> -!! end - -!! test -Double ISBN -!! input -ISBN ISBN 1234567890 -!! result -<p>ISBN <a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1234567890</a> -</p> -!! end - -!! test -Bug 22905: <abbr> followed by ISBN followed by </a> -!! input -<abbr>(fr)</abbr> ISBN 2753300917 [http://www.example.com example.com] -!! result -<p><abbr>(fr)</abbr> <a href="/wiki/Special:BookSources/2753300917" class="internal mw-magiclink-isbn">ISBN 2753300917</a> <a rel="nofollow" class="external text" href="http://www.example.com">example.com</a> -</p> -!! end - -!! test -Double RFC -!! input -RFC RFC 1234 -!! result -<p>RFC <a class="external mw-magiclink-rfc" href="//tools.ietf.org/html/rfc1234">RFC 1234</a> -</p> -!! end - -!! test -Double RFC with a wiki link -!! input -RFC [[RFC 1234]] -!! result -<p>RFC <a href="/index.php?title=RFC_1234&action=edit&redlink=1" class="new" title="RFC 1234 (page does not exist)">RFC 1234</a> -</p> -!! end - -!! test -RFC code coverage -!! input -RFC 983 987 -!! result -<p><a class="external mw-magiclink-rfc" href="//tools.ietf.org/html/rfc983">RFC 983</a> 987 -</p> -!! end - -!! test -Centre-aligned image -!! input -[[Image:foobar.jpg|centre]] -!! result -<div class="center"><div class="floatnone"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div></div> - -!!end - -!! test -None-aligned image -!! input -[[Image:foobar.jpg|none]] -!! result -<div class="floatnone"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div> - -!!end - -!! test -Width + Height sized image (using px) (height is ignored) -!! input -[[Image:foobar.jpg|640x480px]] -!! result -<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="640" height="73" /></a> -</p> -!!end - -!! test -Width-sized image (using px, no following whitespace) -!! input -[[Image:foobar.jpg|640px]] -!! result -<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="640" height="73" /></a> -</p> -!!end - -!! test -Width-sized image (using px, with following whitespace - test regression from r39467) -!! input -[[Image:foobar.jpg|640px ]] -!! result -<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="640" height="73" /></a> -</p> -!!end - -!! test -Width-sized image (using px, with preceding whitespace - test regression from r39467) -!! input -[[Image:foobar.jpg| 640px]] -!! result -<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="640" height="73" /></a> -</p> -!!end - -!! test -Another italics / bold test -!! input - ''' ''x' -!! result -<pre>'<i> </i>x' -</pre> -!!end - -# Note the results may be incorrect, as parserTest output included this: -# XML error: Mismatched tag at byte 6120: -# ...<dd> </dt></dl> </dd... -!! test -dt/dd/dl test -!! options -disabled -!! input -:;;;:: -!! result -<dl><dd><dl><dt><dl><dt><dl><dt><dl><dd><dl><dd> -</dd></dl> -</dd></dl> -</dt></dl> -</dt></dl> -</dt></dl> -</dd></dl> - -!!end - - -# Images with the "|" character in external URLs in comment tags; Eats half the comment, leaves unmatched "</a>" tag. -!! test -Images with the "|" character in the comment -!! input -[[image:Foobar.jpg|thumb|An [http://test/?param1=|left|¶m2=|x external] URL]] -!! result -<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="180" height="20" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>An <a rel="nofollow" class="external text" href="http://test/?param1=%7Cleft%7C&param2=%7Cx">external</a> URL</div></div></div> - -!!end - -!! test -[Before] HTML without raw HTML enabled ($wgRawHtml==false) -!! input -<html><script>alert(1);</script></html> -!! result -<p><html><script>alert(1);</script></html> -</p> -!! end - -!! test -HTML with raw HTML ($wgRawHtml==true) -!! options -rawhtml -!! input -<html><script>alert(1);</script></html> -!! result -<p><script>alert(1);</script> -</p> -!! end - -!! test -Parents of subpages, one level up -!! options -subpage title=[[Subpage test/L1/L2/L3]] -!! input -[[../|L2]] -!! result -<p><a href="/index.php?title=Subpage_test/L1/L2&action=edit&redlink=1" class="new" title="Subpage test/L1/L2 (page does not exist)">L2</a> -</p> -!! end - - -!! test -Parents of subpages, one level up, not named -!! options -subpage title=[[Subpage test/L1/L2/L3]] -!! input -[[../]] -!! result -<p><a href="/index.php?title=Subpage_test/L1/L2&action=edit&redlink=1" class="new" title="Subpage test/L1/L2 (page does not exist)">Subpage test/L1/L2</a> -</p> -!! end - - - -!! test -Parents of subpages, two levels up -!! options -subpage title=[[Subpage test/L1/L2/L3]] -!! input -[[../../|L1]]2 - -[[../../|L1]]l -!! result -<p><a href="/index.php?title=Subpage_test/L1&action=edit&redlink=1" class="new" title="Subpage test/L1 (page does not exist)">L1</a>2 -</p><p><a href="/index.php?title=Subpage_test/L1&action=edit&redlink=1" class="new" title="Subpage test/L1 (page does not exist)">L1l</a> -</p> -!! end - -!! test -Parents of subpages, two levels up, without trailing slash or name. -!! options -subpage title=[[Subpage test/L1/L2/L3]] -!! input -[[../..]] -!! result -<p>[[../..]] -</p> -!! end - -!! test -Parents of subpages, two levels up, with lots of extra trailing slashes. -!! options -subpage title=[[Subpage test/L1/L2/L3]] -!! input -[[../../////]] -!! result -<p><a href="/index.php?title=Subpage_test/L1////&action=edit&redlink=1" class="new" title="Subpage test/L1//// (page does not exist)">///</a> -</p> -!! end - -!! test -Definition list code coverage -!! input -; title : def -; title : def -;title: def -!! result -<dl><dt> title  </dt><dd> def -</dd><dt> title </dt><dd> def -</dd><dt>title</dt><dd> def -</dd></dl> - -!! end - -!! test -Don't fall for the self-closing div -!! input -<div>hello world</div/> -!! result -<div>hello world</div> - -!! end - -!! test -MSGNW magic word -!! input -{{MSGNW:msg}} -!! result -<p>[[:Template:Msg]] -</p> -!! end - -!! test -RAW magic word -!! input -{{RAW:QUERTY}} -!! result -<p><a href="/index.php?title=Template:QUERTY&action=edit&redlink=1" class="new" title="Template:QUERTY (page does not exist)">Template:QUERTY</a> -</p> -!! end - -# This isn't needed for XHTML conformance, but would be handy as a fallback security measure -!! test -Always escape literal '>' in output, not just after '<' -!! input -><> -!! result -<p>><> -</p> -!! end - -!! test -Template caching -!! input -{{Test}} -{{Test}} -!! result -<p>This is a test template -This is a test template -</p> -!! end - - -!! article -MediaWiki:Fake -!! text -==header== -!! endarticle - -!! test -Inclusion of !userCanEdit() content -!! input -{{MediaWiki:Fake}} -!! result -<h2><span class="editsection">[<a href="/index.php?title=MediaWiki:Fake&action=edit&section=T-1" title="MediaWiki:Fake">edit</a>]</span> <span class="mw-headline" id="header">header</span></h2> - -!! end - - -!! test -Out-of-order TOC heading levels -!! input -==2== -======6====== -===3=== -=1= -=====5===== -==2== -!! result -<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div> -<ul> -<li class="toclevel-1 tocsection-1"><a href="#2"><span class="tocnumber">1</span> <span class="toctext">2</span></a> -<ul> -<li class="toclevel-2 tocsection-2"><a href="#6"><span class="tocnumber">1.1</span> <span class="toctext">6</span></a></li> -<li class="toclevel-2 tocsection-3"><a href="#3"><span class="tocnumber">1.2</span> <span class="toctext">3</span></a></li> -</ul> -</li> -<li class="toclevel-1 tocsection-4"><a href="#1"><span class="tocnumber">2</span> <span class="toctext">1</span></a> -<ul> -<li class="toclevel-2 tocsection-5"><a href="#5"><span class="tocnumber">2.1</span> <span class="toctext">5</span></a></li> -<li class="toclevel-2 tocsection-6"><a href="#2_2"><span class="tocnumber">2.2</span> <span class="toctext">2</span></a></li> -</ul> -</li> -</ul> -</td></tr></table> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: 2">edit</a>]</span> <span class="mw-headline" id="2">2</span></h2> -<h6><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: 6">edit</a>]</span> <span class="mw-headline" id="6">6</span></h6> -<h3><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=3" title="Edit section: 3">edit</a>]</span> <span class="mw-headline" id="3">3</span></h3> -<h1><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=4" title="Edit section: 1">edit</a>]</span> <span class="mw-headline" id="1">1</span></h1> -<h5><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=5" title="Edit section: 5">edit</a>]</span> <span class="mw-headline" id="5">5</span></h5> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=6" title="Edit section: 2">edit</a>]</span> <span class="mw-headline" id="2_2">2</span></h2> - -!! end - - -!! test -ISBN with a dummy number -!! input -ISBN --- -!! result -<p>ISBN --- -</p> -!! end - - -!! test -ISBN with space-delimited number -!! input -ISBN 92 9017 032 8 -!! result -<p><a href="/wiki/Special:BookSources/9290170328" class="internal mw-magiclink-isbn">ISBN 92 9017 032 8</a> -</p> -!! end - - -!! test -ISBN with multiple spaces, no number -!! input -ISBN foo -!! result -<p>ISBN foo -</p> -!! end - - -!! test -ISBN length -!! input -ISBN 123456789 - -ISBN 1234567890 - -ISBN 12345678901 -!! result -<p>ISBN 123456789 -</p><p><a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1234567890</a> -</p><p>ISBN 12345678901 -</p> -!! end - - -!! test -ISBN with trailing year (bug 8110) -!! input -ISBN 1-234-56789-0 - 2006 - -ISBN 1 234 56789 0 - 2006 -!! result -<p><a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1-234-56789-0</a> - 2006 -</p><p><a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1 234 56789 0</a> - 2006 -</p> -!! end - - -!! test -anchorencode -!! input -{{anchorencode:foo bar©#%n}} -!! result -<p>foo_bar.C2.A9.23.25n -</p> -!! end - -!! test -anchorencode trims spaces -!! input -{{anchorencode: __pretty__please__}} -!! result -<p>pretty_please -</p> -!! end - -!! test -anchorencode deals with links -!! input -{{anchorencode: [[hello|world]] [[hi]]}} -!! result -<p>world_hi -</p> -!! end - -!! test -anchorencode deals with templates -!! input -{{anchorencode: {{Foo}} }} -!! result -<p>FOO -</p> -!! end - -!! test -anchorencode encodes like the TOC generator: (bug 18431) -!! input -=== _ +:.3A%3A&&]] === -{{anchorencode: _ +:.3A%3A&&]] }} -__NOEDITSECTION__ -!! result -<h3> <span class="mw-headline" id=".2B:.3A.253A.26.26.5D.5D"> _ +:.3A%3A&&]] </span></h3> -<p>.2B:.3A.253A.26.26.5D.5D -</p> -!! end - -# Expected output in the following test is not necessarily expected (there -# should probably be <p> tags inside the <blockquote> in the output) -- it's -# only testing for well-formedness. -!! test -Bug 6200: blockquotes and paragraph formatting -!! input -<blockquote> -foo -</blockquote> - -bar - - baz -!! result -<blockquote> -foo -</blockquote> -<p>bar -</p> -<pre>baz -</pre> -!! end - -!! test -Bug 8293: Use of center tag ruins paragraph formatting -!! input -<center> -foo -</center> - -bar - - baz -!! result -<center> -<p>foo -</p> -</center> -<p>bar -</p> -<pre>baz -</pre> -!! end - - -### -### Language variants related tests -### -!! test -Self-link in language variants -!! options -title=[[Dunav]] language=sr -!! input -Both [[Dunav]] and [[Дунав]] are names for this river. -!! result -<p>Both <strong class="selflink">Dunav</strong> and <strong class="selflink">Дунав</strong> are names for this river. -</p> -!!end - - -!! test -Link to pages in language variants -!! options -language=sr -!! input -Main Page can be written as [[Маин Паге]] -!! result -<p>Main Page can be written as <a href="/wiki/Main_Page" title="Main Page">Маин Паге</a> -</p> -!!end - - -!! test -Multiple links to pages in language variants -!! options -language=sr -!! input -[[Main Page]] can be written as [[Маин Паге]] same as [[Маин Паге]]. -!! result -<p><a href="/wiki/Main_Page" title="Main Page">Main Page</a> can be written as <a href="/wiki/Main_Page" title="Main Page">Маин Паге</a> same as <a href="/wiki/Main_Page" title="Main Page">Маин Паге</a>. -</p> -!!end - - -!! test -Simple template in language variants -!! options -language=sr -!! input -{{тест}} -!! result -<p>This is a test template -</p> -!! end - - -!! test -Template with explicit namespace in language variants -!! options -language=sr -!! input -{{Template:тест}} -!! result -<p>This is a test template -</p> -!! end - - -!! test -Basic test for template parameter in language variants -!! options -language=sr -!! input -{{парамтест|param=foo}} -!! result -<p>This is a test template with parameter foo -</p> -!! end - - -!! test -Simple category in language variants -!! options -language=sr cat -!! input -[[Category:МедиаWики Усер'с Гуиде]] -!! result -<a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%98%D0%B0:MediaWiki_User%27s_Guide" title="Категорија:MediaWiki User's Guide">MediaWiki User's Guide</a> -!! end - - -!! test -Stripping -{}- tags (language variants) -!! options -language=sr -!! input -Latin proverb: -{Ne nuntium necare}- -!! result -<p>Latin proverb: Ne nuntium necare -</p> -!! end - - -!! test -Prevent conversion with -{}- tags (language variants) -!! options -language=sr variant=sr-ec -!! input -Latinski: -{Ne nuntium necare}- -!! result -<p>Латински: Ne nuntium necare -</p> -!! end - - -!! test -Prevent conversion of text with -{}- tags (language variants) -!! options -language=sr variant=sr-ec -!! input -Latinski: -{Ne nuntium necare}- -!! result -<p>Латински: Ne nuntium necare -</p> -!! end - - -!! test -Prevent conversion of links with -{}- tags (language variants) -!! options -language=sr variant=sr-ec -!! input --{[[Main Page]]}- -!! result -<p><a href="/wiki/Main_Page" title="Main Page">Main Page</a> -</p> -!! end - - -!! test --{}- tags within headlines (within html for parserConvert()) -!! options -language=sr variant=sr-ec -!! input -== -{Naslov}- == -!! result -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Уредите одељак „Naslov“">уреди</a>]</span> <span class="mw-headline" id="-.7BNaslov.7D-"> Naslov </span></h2> - -!! end - - -!! test -Explicit definition of language variant alternatives -!! options -language=zh variant=zh-tw -!! input --{zh:China;zh-tw:Taiwan}-, not China -!! result -<p>Taiwan, not China -</p> -!! end - - -!! test -Explicit session-wise language variant mapping (A flag and - flag) -!! options -language=zh variant=zh-tw -!! input -Taiwan is not China. -But -{A|zh:China;zh-tw:Taiwan}- is China, -(This-{-|zh:China;zh-tw:Taiwan}- should be stripped!) -and -{China}- is China. -!! result -<p>Taiwan is not China. -But Taiwan is Taiwan, -(This should be stripped!) -and China is China. -</p> -!! end - -!! test -Explicit session-wise language variant mapping (H flag for hide) -!! options -language=zh variant=zh-tw -!! input -(This-{H|zh:China;zh-tw:Taiwan}- should be stripped!) -Taiwan is China. -!! result -<p>(This should be stripped!) -Taiwan is Taiwan. -</p> -!! end - -!! test -Adding explicit conversion rule for title (T flag) -!! options -language=zh variant=zh-tw showtitle -!! input -Should be stripped-{T|zh:China;zh-tw:Taiwan}-! -!! result -Taiwan -<p>Should be stripped! -</p> -!! end - -!! test -Testing that changing the language variant here in the tests actually works -!! options -language=zh variant=zh showtitle -!! input -Should be stripped-{T|zh:China;zh-tw:Taiwan}-! -!! result -China -<p>Should be stripped! -</p> -!! end - -!! test -Bug 24072: more test on conversion rule for title -!! options -language=zh variant=zh-tw showtitle -!! input -This should be stripped-{T|zh:China;zh-tw:Taiwan}-! -This won't take interferes with the title rule-{H|zh:Beijing;zh-tw:Taipei}-. -!! result -Taiwan -<p>This should be stripped! -This won't take interferes with the title rule. -</p> -!! end - -!! test -Raw output of variant escape tags (R flag) -!! options -language=zh variant=zh-tw -!! input -Raw: -{R|zh:China;zh-tw:Taiwan}- -!! result -<p>Raw: zh:China;zh-tw:Taiwan -</p> -!! end - -!! test -Nested using of manual convert syntax -!! options -language=zh variant=zh-hk -!! input -Nested: -{zh-hans:Hi -{zh-cn:China;zh-sg:Singapore;}-;zh-hant:Hello -{zh-tw:Taiwan;zh-hk:H-{ong}- K-{}-ong;}-;}-! -!! result -<p>Nested: Hello Hong Kong! -</p> -!! end - -!! test -Do not convert roman numbers to language variants -!! options -language=sr variant=sr-ec -!! input -Fridrih IV je car. -!! result -<p>Фридрих IV је цар. -</p> -!! end - -!! test -Unclosed language converter markup "-{" -!! options -language=sr -!! input --{T|hello -!! result -<p>-{T|hello -</p> -!! end - -!! test -Don't convert raw rule "-{R|=>}-" to "=>" -!! options -language=sr -!! input --{R|=>}- -!! result -<p>=> -</p> -!!end - -!!article -Template:Bullet -!!text -* Bar -!!endarticle - -!! test -Bug 529: Uncovered bullet -!! input -* Foo {{bullet}} -!! result -<ul><li> Foo -</li><li> Bar -</li></ul> - -!! end - -!! test -Bug 529: Uncovered table already at line-start -!! input -x - -{{table}} -y -!! result -<p>x -</p> -<table> -<tr> -<td> 1 </td> -<td> 2 -</td></tr> -<tr> -<td> 3 </td> -<td> 4 -</td></tr></table> -<p>y -</p> -!! end - -!! test -Bug 529: Uncovered bullet in parser function result -!! input -* Foo {{lc:{{bullet}} }} -!! result -<ul><li> Foo -</li><li> bar -</li></ul> - -!! end - -!! test -Bug 5678: Double-parsed template argument -!! input -{{lc:{{{1}}}|hello}} -!! result -<p>{{{1}}} -</p> -!! end - -!! test -Bug 5678: Double-parsed template invocation -!! input -{{lc:{{paramtest {{!}} param = hello }} }} -!! result -<p>{{paramtest | param = hello }} -</p> -!! end - -!! test -Case insensitivity of parser functions for non-ASCII characters (bug 8143) -!! options -language=cs -title=[[Main Page]] -!! input -{{PRVNÍVELKÉ:ěščř}} -{{prvnívelké:ěščř}} -{{PRVNÍMALÉ:ěščř}} -{{prvnímalé:ěščř}} -{{MALÁ:ěščř}} -{{malá:ěščř}} -{{VELKÁ:ěščř}} -{{velká:ěščř}} -!! result -<p>Ěščř -Ěščř -ěščř -ěščř -ěščř -ěščř -ĚŠČŘ -ĚŠČŘ -</p> -!! end - -!! test -Morwen/13: Unclosed link followed by heading -!! input -[[link -==heading== -!! result -<p>[[link -</p> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: heading">edit</a>]</span> <span class="mw-headline" id="heading">heading</span></h2> - -!! end - -!! test -HHP2.1: Heuristics for headings in preprocessor parenthetical structures -!! input -{{foo| -=heading= -!! result -<p>{{foo| -</p> -<h1> <span class="mw-headline" id="heading">heading</span></h1> - -!! end - -!! test -HHP2.2: Heuristics for headings in preprocessor parenthetical structures -!! input -{{foo| -==heading== -!! result -<p>{{foo| -</p> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: heading">edit</a>]</span> <span class="mw-headline" id="heading">heading</span></h2> - -!! end - -!! test -Tildes in comments -!! options -pst -!! input -<!-- ~~~~ --> -!! result -<!-- ~~~~ --> -!! end - -!! test -Paragraphs inside divs (no extra line breaks) -!! input -<div>Line one - -Line two</div> -!! result -<div>Line one -Line two</div> - -!! end - -!! test -Paragraphs inside divs (extra line break on open) -!! input -<div> -Line one - -Line two</div> -!! result -<div> -<p>Line one -</p> -Line two</div> - -!! end - -!! test -Paragraphs inside divs (extra line break on close) -!! input -<div>Line one - -Line two -</div> -!! result -<div>Line one -<p>Line two -</p> -</div> - -!! end - -!! test -Paragraphs inside divs (extra line break on open and close) -!! input -<div> -Line one - -Line two -</div> -!! result -<div> -<p>Line one -</p><p>Line two -</p> -</div> - -!! end - -!! test -Nesting tags, paragraphs on lines which begin with <div> -!! options -disabled -!! input -<div></div><strong>A -B</strong> -!! result -<div></div> -<p><strong>A -B</strong> -</p> -!! end - -# Bug 6200: <blockquote> should behave like <div> with respect to line breaks -!! test -Bug 6200: paragraphs inside blockquotes (no extra line breaks) -!! options -disabled -!! input -<blockquote>Line one - -Line two</blockquote> -!! result -<blockquote>Line one -Line two</blockquote> - -!! end - -!! test -Bug 6200: paragraphs inside blockquotes (extra line break on open) -!! options -disabled -!! input -<blockquote> -Line one - -Line two</blockquote> -!! result -<blockquote> -<p>Line one -</p> -Line two</blockquote> - -!! end - -!! test -Bug 6200: paragraphs inside blockquotes (extra line break on close) -!! options -disabled -!! input -<blockquote>Line one - -Line two -</blockquote> -!! result -<blockquote>Line one -<p>Line two -</p> -</blockquote> - -!! end - -!! test -Bug 6200: paragraphs inside blockquotes (extra line break on open and close) -!! options -disabled -!! input -<blockquote> -Line one - -Line two -</blockquote> -!! result -<blockquote> -<p>Line one -</p><p>Line two -</p> -</blockquote> - -!! end - -!! test -Paragraphs inside blockquotes/divs (no extra line breaks) -!! input -<blockquote><div>Line one - -Line two</div></blockquote> -!! result -<blockquote><div>Line one -Line two</div></blockquote> - -!! end - -!! test -Paragraphs inside blockquotes/divs (extra line break on open) -!! input -<blockquote><div> -Line one - -Line two</div></blockquote> -!! result -<blockquote><div> -<p>Line one -</p> -Line two</div></blockquote> - -!! end - -!! test -Paragraphs inside blockquotes/divs (extra line break on close) -!! input -<blockquote><div>Line one - -Line two -</div></blockquote> -!! result -<blockquote><div>Line one -<p>Line two -</p> -</div></blockquote> - -!! end - -!! test -Paragraphs inside blockquotes/divs (extra line break on open and close) -!! input -<blockquote><div> -Line one - -Line two -</div></blockquote> -!! result -<blockquote><div> -<p>Line one -</p><p>Line two -</p> -</div></blockquote> - -!! end - -!! test -Interwiki links trounced by replaceExternalLinks after early LinkHolderArray expansion -!! options -wgLinkHolderBatchSize=0 -!! input -[[meatball:1]] -[[meatball:2]] -[[meatball:3]] -!! result -<p><a href="http://www.usemod.com/cgi-bin/mb.pl?1" class="extiw" title="meatball:1">meatball:1</a> -<a href="http://www.usemod.com/cgi-bin/mb.pl?2" class="extiw" title="meatball:2">meatball:2</a> -<a href="http://www.usemod.com/cgi-bin/mb.pl?3" class="extiw" title="meatball:3">meatball:3</a> -</p> -!! end - -!! test -Free external link invading image caption -!! input -[[Image:Foobar.jpg|thumb|http://x|hello]] -!! result -<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="180" height="20" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>hello</div></div></div> - -!! end - -!! test -Bug 15196: localised external link numbers -!! options -language=fa -!! input -[http://en.wikipedia.org/] -!! result -<p><a rel="nofollow" class="external autonumber" href="http://en.wikipedia.org/">[۱]</a> -</p> -!! end - -!! test -Multibyte character in padleft -!! input -{{padleft:-Hello|7|Æ}} -!! result -<p>Æ-Hello -</p> -!! end - -!! test -Multibyte character in padright -!! input -{{padright:Hello-|7|Æ}} -!! result -<p>Hello-Æ -</p> -!! end - -!! test -Formatted date -!! config -wgUseDynamicDates=1 -!! input -[[2009-03-24]] -!! result -<p><span class="mw-formatted-date" title="2009-03-24"><a href="/index.php?title=2009&action=edit&redlink=1" class="new" title="2009 (page does not exist)">2009</a>-<a href="/index.php?title=March_24&action=edit&redlink=1" class="new" title="March 24 (page does not exist)">03-24</a></span> -</p> -!!end - -!!test -formatdate parser function -!!input -{{#formatdate:2009-03-24}} -!! result -<p><span class="mw-formatted-date" title="2009-03-24">2009-03-24</span> -</p> -!! end - -!!test -formatdate parser function, with default format -!!input -{{#formatdate:2009-03-24|mdy}} -!! result -<p><span class="mw-formatted-date" title="2009-03-24">March 24, 2009</span> -</p> -!! end - -!! test -Linked date with autoformatting disabled -!! config -wgUseDynamicDates=false -!! input -[[2009-03-24]] -!! result -<p><a href="/index.php?title=2009-03-24&action=edit&redlink=1" class="new" title="2009-03-24 (page does not exist)">2009-03-24</a> -</p> -!! end - -!! test -Spacing of numbers in formatted dates -!! input -{{#formatdate:January 15}} -!! result -<p><span class="mw-formatted-date" title="01-15">January 15</span> -</p> -!! end - -!! test -Spacing of numbers in formatted dates (linked) -!! config -wgUseDynamicDates=true -!! input -[[January 15]] -!! result -<p><span class="mw-formatted-date" title="01-15"><a href="/index.php?title=January_15&action=edit&redlink=1" class="new" title="January 15 (page does not exist)">January 15</a></span> -</p> -!! end - -!! test -formatdate parser function, with default format and on a page of which the content language is always English and different from the wiki content language -!! options -language=nl title=[[MediaWiki:Common.css]] -!! input -{{#formatdate:2009-03-24|dmy}} -!! result -<p><span class="mw-formatted-date" title="2009-03-24">24 March 2009</span> -</p> -!! end - -# -# -# - -# -# Edit comments -# - -!! test -Edit comment with link -!! options -comment -!! input -I like the [[Main Page]] a lot -!! result -I like the <a href="/wiki/Main_Page" title="Main Page">Main Page</a> a lot -!!end - -!! test -Edit comment with link and link text -!! options -comment -!! input -I like the [[Main Page|best pages]] a lot -!! result -I like the <a href="/wiki/Main_Page" title="Main Page">best pages</a> a lot -!!end - -!! test -Edit comment with link and link text with suffix -!! options -comment -!! input -I like the [[Main Page|best page]]s a lot -!! result -I like the <a href="/wiki/Main_Page" title="Main Page">best pages</a> a lot -!!end - -!! test -Edit comment with section link (non-local, eg in history list) -!! options -comment title=[[Main Page]] -!! input -/* External links */ removed bogus entries -!! result -<a href="/wiki/Main_Page#External_links" title="Main Page">→</a><span dir="auto"><span class="autocomment">External links: </span> removed bogus entries</span> -!!end - -!! test -Edit comment with section link and text before it (non-local, eg in history list) -!! options -comment title=[[Main Page]] -!! input -pre-comment text /* External links */ removed bogus entries -!! result -pre-comment text - <a href="/wiki/Main_Page#External_links" title="Main Page">→</a><span dir="auto"><span class="autocomment">External links: </span> removed bogus entries</span> -!!end - -!! test -Edit comment with section link (local, eg in diff view) -!! options -comment local title=[[Main Page]] -!! input -/* External links */ removed bogus entries -!! result -<a href="#External_links">→</a><span dir="auto"><span class="autocomment">External links: </span> removed bogus entries</span> -!!end - -!! test -Edit comment with subpage link (bug 14080) -!! options -comment -subpage -title=[[Subpage test]] -!! input -Poked at a [[/subpage]] here... -!! result -Poked at a <a href="/wiki/Subpage_test/subpage" title="Subpage test/subpage">/subpage</a> here... -!!end - -!! test -Edit comment with subpage link and link text (bug 14080) -!! options -comment -subpage -title=[[Subpage test]] -!! input -Poked at a [[/subpage|neat little page]] here... -!! result -Poked at a <a href="/wiki/Subpage_test/subpage" title="Subpage test/subpage">neat little page</a> here... -!!end - -!! test -Edit comment with bogus subpage link in non-subpage NS (bug 14080) -!! options -comment -title=[[Subpage test]] -!! input -Poked at a [[/subpage]] here... -!! result -Poked at a <a href="/index.php?title=/subpage&action=edit&redlink=1" class="new" title="/subpage (page does not exist)">/subpage</a> here... -!!end - -!! test -Edit comment with bare anchor link (local, as on diff) -!! options -comment -local -title=[[Main Page]] -!!input -[[#section]] -!! result -<a href="#section">#section</a> -!! end - -!! test -Edit comment with bare anchor link (non-local, as on history) -!! options -comment -title=[[Main Page]] -!!input -[[#section]] -!! result -<a href="/wiki/Main_Page#section" title="Main Page">#section</a> -!! end - -!! test -Anchor starting with underscore -!!input -[[#_ref|One]] -!! result -<p><a href="#_ref">One</a> -</p> -!! end - -!! test -Id starting with underscore -!!input -<div id="_ref"></div> -!! result -<div id="_ref"></div> - -!! end - -!! test -Space normalisation on autocomment (bug 22784) -!! options -comment -title=[[Main Page]] -!!input -/* __hello__world__ */ -!! result -<a href="/wiki/Main_Page#hello_world" title="Main Page">→</a><span dir="auto"><span class="autocomment">__hello__world__</span></span> -!! end - -!! test -percent-encoding and + signs in comments (Bug 26410) -!! options -comment -!!input -[[ABC%33D% ++]] [[ABC%33D% ++|+%20]] -!! result -<a href="/index.php?title=ABC3D%25_%2B%2B&action=edit&redlink=1" class="new" title="ABC3D% ++ (page does not exist)">ABC3D% ++</a> <a href="/index.php?title=ABC3D%25_%2B%2B&action=edit&redlink=1" class="new" title="ABC3D% ++ (page does not exist)">+%20</a> -!! end - -!! test -Bad images - basic functionality -!! options -disabled -!! input -[[File:Bad.jpg]] -!! result -!! end - -!! test -Bad images - bug 16039: text after bad image disappears -!! options -disabled -!! input -Foo bar -[[File:Bad.jpg]] -Bar foo -!! result -<p>Foo bar -</p><p>Bar foo -</p> -!! end - -!! test -Verify that displaytitle works (bug #22501) no displaytitle -!! options -showtitle -!! config -wgAllowDisplayTitle=true -wgRestrictDisplayTitle=false -!! input -this is not the the title -!! result -Parser test -<p>this is not the the title -</p> -!! end - -!! test -Verify that displaytitle works (bug #22501) RestrictDisplayTitle=false -!! options -showtitle -title=[[Screen]] -!! config -wgAllowDisplayTitle=true -wgRestrictDisplayTitle=false -!! input -this is not the the title -{{DISPLAYTITLE:whatever}} -!! result -whatever -<p>this is not the the title -</p> -!! end - -!! test -Verify that displaytitle works (bug #22501) RestrictDisplayTitle=true mismatch -!! options -showtitle -title=[[Screen]] -!! config -wgAllowDisplayTitle=true -wgRestrictDisplayTitle=true -!! input -this is not the the title -{{DISPLAYTITLE:whatever}} -!! result -Screen -<p>this is not the the title -</p> -!! end - -!! test -Verify that displaytitle works (bug #22501) RestrictDisplayTitle=true matching -!! options -showtitle -title=[[Screen]] -!! config -wgAllowDisplayTitle=true -wgRestrictDisplayTitle=true -!! input -this is not the the title -{{DISPLAYTITLE:screen}} -!! result -screen -<p>this is not the the title -</p> -!! end - -!! test -Verify that displaytitle works (bug #22501) AllowDisplayTitle=false -!! options -showtitle -title=[[Screen]] -!! config -wgAllowDisplayTitle=false -!! input -this is not the the title -{{DISPLAYTITLE:screen}} -!! result -Screen -<p>this is not the the title -<a href="/index.php?title=Template:DISPLAYTITLE:screen&action=edit&redlink=1" class="new" title="Template:DISPLAYTITLE:screen (page does not exist)">Template:DISPLAYTITLE:screen</a> -</p> -!! end - -!! test -Verify that displaytitle works (bug #22501) AllowDisplayTitle=false no DISPLAYTITLE -!! options -showtitle -title=[[Screen]] -!! config -wgAllowDisplayTitle=false -!! input -this is not the the title -!! result -Screen -<p>this is not the the title -</p> -!! end - -!! test -preload: check <noinclude> and <includeonly> -!! options -preload -!! input -Hello <noinclude>cruel</noinclude><includeonly>kind</includeonly> world. -!! result -Hello kind world. -!! end - -!! test -preload: check <onlyinclude> -!! options -preload -!! input -Goodbye <onlyinclude>Hello world</onlyinclude> -!! result -Hello world -!! end - -!! test -preload: can pass tags through if we want to -!! options -preload -!! input -<includeonly><</includeonly>includeonly>Hello world<includeonly><</includeonly>/includeonly> -!! result -<includeonly>Hello world</includeonly> -!! end - -!! test -preload: check that it doesn't try to do tricks -!! options -preload -!! input -* <!-- Hello --> ''{{world}}'' {{<includeonly>subst:</includeonly>How are you}}{{ {{{|safesubst:}}} #if:1|2|3}} -!! result -* <!-- Hello --> ''{{world}}'' {{subst:How are you}}{{ {{{|safesubst:}}} #if:1|2|3}} -!! end - -!! test -Play a bit with r67090 and bug 3158 -!! options -disabled -!! input -<div style="width:50% !important"> </div> -<div style="width:50% !important"> </div> -<div style="width:50% !important"> </div> -<div style="border : solid;"> </div> -!! result -<div style="width:50% !important"> </div> -<div style="width:50% !important"> </div> -<div style="width:50% !important"> </div> -<div style="border : solid;"> </div> - -!! end - -!! test -HTML5 data attributes -!! input -<span data-foo="bar">Baz</span> -<p data-abc-def_hij="">Quuz</p> -!! result -<p><span data-foo="bar">Baz</span> -</p> -<p data-abc-def_hij="">Quuz</p> - -!! end - -!! test -percent-encoding and + signs in internal links (Bug 26410) -!! input -[[User:+%]] [[Page+title%]] -[[%+]] [[%+|%20]] [[%+ ]] [[%+r]] -[[%]] [[+]] [[image:%+abc%39|foo|[[bar]]]] -[[%33%45]] [[%33%45+]] -!! result -<p><a href="/index.php?title=User:%2B%25&action=edit&redlink=1" class="new" title="User:+% (page does not exist)">User:+%</a> <a href="/index.php?title=Page%2Btitle%25&action=edit&redlink=1" class="new" title="Page+title% (page does not exist)">Page+title%</a> -<a href="/index.php?title=%25%2B&action=edit&redlink=1" class="new" title="%+ (page does not exist)">%+</a> <a href="/index.php?title=%25%2B&action=edit&redlink=1" class="new" title="%+ (page does not exist)">%20</a> <a href="/index.php?title=%25%2B&action=edit&redlink=1" class="new" title="%+ (page does not exist)">%+ </a> <a href="/index.php?title=%25%2Br&action=edit&redlink=1" class="new" title="%+r (page does not exist)">%+r</a> -<a href="/index.php?title=%25&action=edit&redlink=1" class="new" title="% (page does not exist)">%</a> <a href="/index.php?title=%2B&action=edit&redlink=1" class="new" title="+ (page does not exist)">+</a> <a href="/index.php?title=Special:Upload&wpDestFile=%25%2Babc9" class="new" title="File:%+abc9">bar</a> -<a href="/index.php?title=3E&action=edit&redlink=1" class="new" title="3E (page does not exist)">3E</a> <a href="/index.php?title=3E%2B&action=edit&redlink=1" class="new" title="3E+ (page does not exist)">3E+</a> -</p> -!! end - -!! test -Special characters in embedded file links (bug 27679) -!! input -[[File:Contains & ampersand.jpg]] -[[File:Does not exist.jpg|Title with & ampersand]] -!! result -<p><a href="/index.php?title=Special:Upload&wpDestFile=Contains_%26_ampersand.jpg" class="new" title="File:Contains & ampersand.jpg">File:Contains & ampersand.jpg</a> -<a href="/index.php?title=Special:Upload&wpDestFile=Does_not_exist.jpg" class="new" title="File:Does not exist.jpg">Title with & ampersand</a> -</p> -!! end - - -!! test -Confirm that 'apos' named character reference doesn't make it to output (not legal in HTML 4) -!! input -Text's been normalized? -!! result -<p>Text's been normalized? -</p> -!! end - -!! test -Bug 19052 U+3000 IDEOGRAPHIC SPACE should terminate free external links -!! input -http://www.example.org/ <-- U+3000 (vim: ^Vu3000) -!! result -<p><a rel="nofollow" class="external free" href="http://www.example.org/">http://www.example.org/</a> <-- U+3000 (vim: ^Vu3000) -</p> -!! end - -!! test -Bug 19052 U+3000 IDEOGRAPHIC SPACE should terminate bracketed external links -!! input -[http://www.example.org/ ideograms] -!! result -<p><a rel="nofollow" class="external text" href="http://www.example.org/">ideograms</a> -</p> -!! end - -!! test -Bug 19052 U+3000 IDEOGRAPHIC SPACE should terminate external images links -!! input -http://www.example.org/pic.png <-- U+3000 (vim: ^Vu3000) -!! result -<p><img src="http://www.example.org/pic.png" alt="pic.png" /> <-- U+3000 (vim: ^Vu3000) -</p> -!! end - -!! article -Mediawiki:loop1 -!! text -{{Identical|A}} -!! endarticle - -!! article -Mediawiki:loop2 -!! text -{{Identical|B}} -!! endarticle - -!! article -Template:Identical -!! text -{{int:loop1}} -{{int:loop2}} -!! endarticle - -!! test -Bug 31098 Template which includes system messages which includes the template -!! input -{{Identical}} -!! result -<p><span class="error">Template loop detected: <a href="/wiki/Template:Identical" title="Template:Identical">Template:Identical</a></span> -<span class="error">Template loop detected: <a href="/wiki/Template:Identical" title="Template:Identical">Template:Identical</a></span> -</p> -!! end - -!! test -Bug31490 Turkish: ucfirst 'blah' -!! options -language=tr -!! input -{{ucfirst:blah}} -!! result -<p>Blah -</p> -!! end - -!! test -Bug31490 Turkish: ucfirst 'ix' -!! options -language=tr -!! input -{{ucfirst:ix}} -!! result -<p>İx -</p> -!! end - -!! test -Bug31490 Turkish: lcfirst 'BLAH' -!! options -language=tr -!! input -{{lcfirst:BLAH}} -!! result -<p>bLAH -</p> -!! end - -!! test -Bug31490 Turkish: ucfırst (with a dotless i) -!! options -language=tr -!! input -{{ucfırst:blah}} -!! result -<p><a href="/index.php?title=%C5%9Eablon:Ucf%C4%B1rst:blah&action=edit&redlink=1" class="new" title="Şablon:Ucfırst:blah (sayfa mevcut değil)">Şablon:Ucfırst:blah</a> -</p> -!! end - -!! test -Bug31490 ucfırst (with a dotless i) with English language -!! options -language=en -!! input -{{ucfırst:blah}} -!! result -<p><a href="/index.php?title=Template:Ucf%C4%B1rst:blah&action=edit&redlink=1" class="new" title="Template:Ucfırst:blah (page does not exist)">Template:Ucfırst:blah</a> -</p> -!! end - -!! test -Bug 26375: TOC with italics -!! options -title=[[Main Page]] -!! input -__TOC__ -== ''Lost'' episodes == -!! result -<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div> -<ul> -<li class="toclevel-1 tocsection-1"><a href="#Lost_episodes"><span class="tocnumber">1</span> <span class="toctext"><i>Lost</i> episodes</span></a></li> -</ul> -</td></tr></table> -<h2><span class="editsection">[<a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Lost episodes">edit</a>]</span> <span class="mw-headline" id="Lost_episodes"> <i>Lost</i> episodes </span></h2> - -!! end - -!! test -Bug 26375: TOC with bold -!! options -title=[[Main Page]] -!! input -__TOC__ -== '''should be bold''' then normal text == -!! result -<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div> -<ul> -<li class="toclevel-1 tocsection-1"><a href="#should_be_bold_then_normal_text"><span class="tocnumber">1</span> <span class="toctext"><b>should be bold</b> then normal text</span></a></li> -</ul> -</td></tr></table> -<h2><span class="editsection">[<a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: should be bold then normal text">edit</a>]</span> <span class="mw-headline" id="should_be_bold_then_normal_text"> <b>should be bold</b> then normal text </span></h2> - -!! end - -!! test -Bug 33845: Headings become cursive in TOC when they contain an image -!! options -title=[[Main Page]] -!! input -__TOC__ -== Image [[Image:foobar.jpg]] == -!! result -<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div> -<ul> -<li class="toclevel-1 tocsection-1"><a href="#Image"><span class="tocnumber">1</span> <span class="toctext">Image</span></a></li> -</ul> -</td></tr></table> -<h2><span class="editsection">[<a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Image">edit</a>]</span> <span class="mw-headline" id="Image"> Image <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a> </span></h2> - -!! end - -!! test -Bug 33845 (2): Headings become bold in TOC when they contain a blockquote -!! options -title=[[Main Page]] -!! input -__TOC__ -== <blockquote>Quote</blockquote> == -!! result -<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div> -<ul> -<li class="toclevel-1 tocsection-1"><a href="#Quote"><span class="tocnumber">1</span> <span class="toctext">Quote</span></a></li> -</ul> -</td></tr></table> -<h2><span class="editsection">[<a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Quote">edit</a>]</span> <span class="mw-headline" id="Quote"> <blockquote>Quote</blockquote> </span></h2> - -!! end - -!! test -Unclosed tags in TOC -!! options -title=[[Main Page]] -!! input -__TOC__ -== Proof: 2 < 3 == -<small>Hanc marginis exiguitas non caperet.</small> -QED -!! result -<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div> -<ul> -<li class="toclevel-1 tocsection-1"><a href="#Proof:_2_.3C_3"><span class="tocnumber">1</span> <span class="toctext">Proof: 2 < 3</span></a></li> -</ul> -</td></tr></table> -<h2><span class="editsection">[<a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Proof: 2 < 3">edit</a>]</span> <span class="mw-headline" id="Proof:_2_.3C_3"> Proof: 2 < 3 </span></h2> -<p><small>Hanc marginis exiguitas non caperet.</small> -QED -</p> -!! end - -!! test -Multiple tags in TOC -!! input -__TOC__ -== <i>Foo</i> <b>Bar</b> == - -== <i>Foo</i> <blockquote>Bar</blockquote> == -!! result -<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div> -<ul> -<li class="toclevel-1 tocsection-1"><a href="#Foo_Bar"><span class="tocnumber">1</span> <span class="toctext"><i>Foo</i> <b>Bar</b></span></a></li> -<li class="toclevel-1 tocsection-2"><a href="#Foo_Bar_2"><span class="tocnumber">2</span> <span class="toctext"><i>Foo</i> Bar</span></a></li> -</ul> -</td></tr></table> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Foo Bar">edit</a>]</span> <span class="mw-headline" id="Foo_Bar"> <i>Foo</i> <b>Bar</b> </span></h2> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: Foo Bar">edit</a>]</span> <span class="mw-headline" id="Foo_Bar_2"> <i>Foo</i> <blockquote>Bar</blockquote> </span></h2> - -!! end - -!! test -Tags with parameters in TOC -!! input -__TOC__ -== <sup class="in-h2">Hello</sup> == - -== <sup class="a > b">Evilbye</sup> == -!! result -<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div> -<ul> -<li class="toclevel-1 tocsection-1"><a href="#Hello"><span class="tocnumber">1</span> <span class="toctext"><sup>Hello</sup></span></a></li> -<li class="toclevel-1 tocsection-2"><a href="#b.22.3EEvilbye"><span class="tocnumber">2</span> <span class="toctext"><sup> b">Evilbye</sup></span></a></li> -</ul> -</td></tr></table> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Hello">edit</a>]</span> <span class="mw-headline" id="Hello"> <sup class="in-h2">Hello</sup> </span></h2> -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=2" title="Edit section: b">Evilbye">edit</a>]</span> <span class="mw-headline" id="b.22.3EEvilbye"> <sup> b">Evilbye</sup> </span></h2> - -!! end - -!! article -MediaWiki:Bug32057 -!! text -== {{int:headline_sample}} == -!! endarticle - -!! test -Bug 32057: Title needed when expanding <h> nodes. -!! options -title=[[Main Page]] -!! input -{{int:Bug32057}} -!! result -<h2><span class="editsection">[<a href="/index.php?title=Main_Page&action=edit&section=1" title="Edit section: Headline text">edit</a>]</span> <span class="mw-headline" id="Headline_text"> Headline text </span></h2> - -!! end - -!! test -Strip marker in urlencode -!! input -{{urlencode:x<nowiki/>y}} -{{urlencode:x<nowiki/>y|wiki}} -{{urlencode:x<nowiki/>y|path}} -!! result -<p>xy -xy -xy -</p> -!! end - -!! test -Strip marker in lc -!! input -{{lc:x<nowiki/>y}} -!! result -<p>xy -</p> -!! end - -!! test -Strip marker in uc -!! input -{{uc:x<nowiki/>y}} -!! result -<p>XY -</p> -!! end - -!! test -Strip marker in formatNum -!! input -{{formatnum:1<nowiki/>2}} -{{formatnum:1<nowiki/>2|R}} -!! result -<p>12 -12 -</p> -!! end - -!! test -Strip marker in grammar -!! options -language=fi -!! input -{{grammar:elative|foo<nowiki/>bar}} -!! result -<p>foobarista -</p> -!! end - -!! test -Strip marker in padleft -!! input -{{padleft:|2|x<nowiki/>y}} -!! result -<p>xy -</p> -!! end - -!! test -Strip marker in padright -!! input -{{padright:|2|x<nowiki/>y}} -!! result -<p>xy -</p> -!! end - -!! test -Strip marker in anchorencode -!! input -{{anchorencode:x<nowiki/>y}} -!! result -<p>xy -</p> -!! end - -!! test -nowiki inside link inside heading (bug 18295) -!! input -==[[foo|x<nowiki>y</nowiki>z]]== -!! result -<h2><span class="editsection">[<a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: xyz">edit</a>]</span> <span class="mw-headline" id="xyz"><a href="/index.php?title=Foo&action=edit&redlink=1" class="new" title="Foo (page does not exist)">xyz</a></span></h2> - -!! end - -!! test -new support for bdi element (bug 31817) -!! input -<p dir="rtl" lang="he">ולדימיר לנין (ברוסית: <bdi lang="ru">Владимир Ленин</bdi>, 24 באפריל 1870–22 בינואר 1924) הוא מנהיג פוליטי קומוניסטי רוסי.</p> -!! result -<p dir="rtl" lang="he">ולדימיר לנין (ברוסית: <bdi lang="ru">Владимир Ленин</bdi>, 24 באפריל 1870–22 בינואר 1924) הוא מנהיג פוליטי קומוניסטי רוסי.</p> - -!!end - -!! test -Ignore pipe between table row attributes -!! input -{| -| quux -|- id=foo | style='color: red' -| bar -|} -!! result -<table> -<tr> -<td> quux -</td></tr> -<tr id="foo" style="color: red"> -<td> bar -</td></tr></table> - -!! end - -!!test -Gallery override link with WikiLink (bug 34852) -!! input -<gallery> -File:foobar.jpg|caption|alt=galleryalt|link=InterWikiLink -</gallery> -!! result -<ul class="gallery"> - <li class="gallerybox" style="width: 155px"><div style="width: 155px"> - <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/InterWikiLink"><img alt="galleryalt" src="http://example.com/images/3/3a/Foobar.jpg" width="120" height="14" /></a></div></div> - <div class="gallerytext"> -<p>caption -</p> - </div> - </div></li> -</ul> - -!! end - -!!test -Gallery override link with absolute external link (bug 34852) -!! input -<gallery> -File:foobar.jpg|caption|alt=galleryalt|link=http://www.example.org -</gallery> -!! result -<ul class="gallery"> - <li class="gallerybox" style="width: 155px"><div style="width: 155px"> - <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="http://www.example.org"><img alt="galleryalt" src="http://example.com/images/3/3a/Foobar.jpg" width="120" height="14" /></a></div></div> - <div class="gallerytext"> -<p>caption -</p> - </div> - </div></li> -</ul> - -!! end - -!!test -Gallery override link with malicious javascript (bug 34852) -!! input -<gallery> -File:foobar.jpg|caption|alt=galleryalt|link=" onclick="alert('malicious javascript code!'); -</gallery> -!! result -<ul class="gallery"> - <li class="gallerybox" style="width: 155px"><div style="width: 155px"> - <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/%22_onclick%3D%22alert(%27malicious_javascript_code!%27);"><img alt="galleryalt" src="http://example.com/images/3/3a/Foobar.jpg" width="120" height="14" /></a></div></div> - <div class="gallerytext"> -<p>caption -</p> - </div> - </div></li> -</ul> - -!! end - -!!test -Language parser function -!! input -{{#language:ar}} -!! result -<p>العربية -</p> -!! end - -!!test -Padleft and padright as substr -!! input -{{padleft:|3|abcde}} -{{padright:|3|abcde}} -!! result -<p>abc -abc -</p> -!! end - -!!test -Bug 34939 - Case insensitive link parsing ([HttP://]) -!! input -[HttP://MediaWiki.Org/] -!! result -<p><a rel="nofollow" class="external autonumber" href="HttP://MediaWiki.Org/">[1]</a> -</p> -!! end - -!!test -Bug 34939 - Case insensitive link parsing ([HttP:// title]) -!! input -[HttP://MediaWiki.Org/ MediaWiki] -!! result -<p><a rel="nofollow" class="external text" href="HttP://MediaWiki.Org/">MediaWiki</a> -</p> -!! end - -!!test -Bug 34939 - Case insensitive link parsing (HttP://) -!! input -HttP://MediaWiki.Org/ -!! result -<p><a rel="nofollow" class="external free" href="HttP://MediaWiki.Org/">HttP://MediaWiki.Org/</a> -</p> -!! end - - -TODO: -more images -more tables -character entities -and much more -Try for 100% code coverage |