1 # MediaWiki Parser test cases
2 # Some taken from http://meta.wikimedia.org/wiki/Parser_testing
3 # All (C) their respective authors and released under the GPL
5 # The syntax should be fairly self-explanatory.
7 # Currently supported test options:
8 # One of the following three:
10 # (default) generate HTML output
11 # pst apply pre-save transform
12 # msg apply message transform
14 # Plus any combination of these:
16 # cat add category links
17 # ill add inter-language links
18 # subpage enable subpages (disabled by default)
19 # title=[[XXX]] run test using article title XXX
20 # disabled do not run test
22 # For testing purposes, temporary articles can created:
23 # !!article / NAMESPACE:TITLE / !!text / ARTICLE TEXT / !!endarticle
24 # where '/' denotes a newline.
26 # This is the standard article assumed to exist.
46 This is a simple paragraph.
48 <p>This is a simple paragraph.
68 * plain''italic''plain
69 * plain''italic''plain''italic''plain
70 * plain'''bold'''plain
71 * plain'''bold'''plain'''bold'''plain
72 * plain''italic''plain'''bold'''plain
73 * plain'''bold'''plain''italic''plain
74 * plain''italic'''bold-italic'''italic''plain
75 * plain'''bold''bold-italic''bold'''plain
76 * plain'''''bold-italic'''italic''plain
77 * plain'''''bold-italic''bold'''plain
78 * plain''italic'''bold-italic'''''plain
79 * plain'''bold''bold-italic'''''plain
80 * plain l'''italic''plain
83 </li><li> plain<i>italic</i>plain
84 </li><li> plain<i>italic</i>plain<i>italic</i>plain
85 </li><li> plain<b>bold</b>plain
86 </li><li> plain<b>bold</b>plain<b>bold</b>plain
87 </li><li> plain<i>italic</i>plain<b>bold</b>plain
88 </li><li> plain<b>bold</b>plain<i>italic</i>plain
89 </li><li> plain<i>italic<b>bold-italic</b>italic</i>plain
90 </li><li> plain<b>bold<i>bold-italic</i>bold</b>plain
91 </li><li> plain<i><b>bold-italic</b>italic</i>plain
92 </li><li> plain<b><i>bold-italic</i>bold</b>plain
93 </li><li> plain<i>italic<b>bold-italic</b></i>plain
94 </li><li> plain<b>bold<i>bold-italic</i></b>plain
95 </li><li> plain l'<i>italic</i>plain
101 ### <nowiki> test cases
105 <nowiki> unordered list
107 <nowiki>* This is not an unordered list item.</nowiki>
109 <p>* This is not an unordered list item.
116 <nowiki>Lorem ipsum dolor
137 :There is not nowiki.
138 :There is <nowiki>nowiki</nowiki>.
140 #There is not nowiki.
141 #There is <nowiki>nowiki</nowiki>.
143 *There is not nowiki.
144 *There is <nowiki>nowiki</nowiki>.
146 <dl><dd>There is not nowiki.
147 </dd><dd>There is nowiki.
149 <ol><li>There is not nowiki.
150 </li><li>There is nowiki.
152 <ul><li>There is not nowiki.
153 </li><li>There is nowiki.
159 ### comment test cases
164 <!-- comment 1 --> asdf
200 asdf<!-- comment 1 -->jkl
210 <!-- foo --> b <!-- bar -->
222 ### Preformatted text
231 And a [[Main Page|link]]
237 And a <a href="/wiki/Main_Page" title="Main Page">link</a>
249 <dl><dt> name </dt><dd> Definition
259 <dl><dd> Indented text
268 External links: non-bracketed
270 Non-bracketed: http://example.com
272 <p>Non-bracketed: <a href="http://example.com" class='external'>http://example.com</a>
277 External links: numbered
279 Numbered: [http://example.com]
281 <p>Numbered: <a href="http://example.com" class='external' title="http://example.com">[1]</a><span class='urlexpansion'> (<i>http://example.com</i>)</span>
286 External links: specified text
288 Specified text: [http://example.com link]
290 <p>Specified text: <a href="http://example.com" class='external' title="http://example.com">link</a><span class='urlexpansion'> (<i>http://example.com</i>)</span>
295 External links: trail
297 Trail (not sure if this is meant to work): [http://example.com link]s
299 <p>Trail (not sure if this is meant to work): <a href="http://example.com" class='external' title="http://example.com">link</a>s<span class='urlexpansion'> (<i>http://example.com</i>)</span>
304 External links: dollar sign in URL
306 http://example.com/1$2345
308 <p><a href="http://example.com/1$2345" class='external'>http://example.com/1$2345</a>
313 External links: dollar sign in URL (named)
315 [http://example.com/1$2345]
317 <p><a href="http://example.com/1$2345" class='external' title="http://example.com/1$2345">[1]</a><span class='urlexpansion'> (<i>http://example.com/1$2345</i>)</span>
324 External image: http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png
326 <p>External image: <img src="http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" />
331 External image from https
333 External image from https: https://meta.wikimedia.org/upload/f/f1/Ncwikicol.png
335 <p>External image from https: <img src="https://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" />
340 Link to non-http image, no img tag
342 Link to non-http image, no img tag: ftp://example.com/test.jpg
344 <p>Link to non-http image, no img tag: <a href="ftp://example.com/test.jpg" class='external'>ftp://example.com/test.jpg</a>
349 External links: terminating separator
351 Terminating separator: http://example.com/thing,
353 <p>Terminating separator: <a href="http://example.com/thing" class='external'>http://example.com/thing</a>,
358 External links: intervening separator
360 Intervening separator: http://example.com/1,2,3
362 <p>Intervening separator: <a href="http://example.com/1,2,3" class='external'>http://example.com/1,2,3</a>
367 External links: old bug with URL in query
369 Old bug with URL in query: [http://example.com/thing?url=http://example.com link]
371 <p>Old bug with URL in query: <a href="http://example.com/thing?url=http://example.com" class='external' title="http://example.com/thing?url=http://example.com">link</a><span class='urlexpansion'> (<i>http://example.com/thing?url=http://example.com</i>)</span>
376 External links: old URL-in-URL bug, mixed protocols
378 And again with mixed protocols: [ftp://example.com?url=http://example.com link]
380 <p>And again with mixed protocols: <a href="ftp://example.com?url=http://example.com" class='external' title="ftp://example.com?url=http://example.com">link</a><span class='urlexpansion'> (<i>ftp://example.com?url=http://example.com</i>)</span>
385 External links: URL in text
387 URL in text: [http://example.com http://example.com]
389 <p>URL in text: <a href="http://example.com" class='external'>http://example.com</a>
394 External links: Clickable images
396 ja-style clickable images: [http://example.com http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png]
398 <p>ja-style clickable images: <a href="http://example.com" class='external' title="http://example.com"><img src="http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" /></a><span class='urlexpansion'> (<i>http://example.com</i>)</span>
403 External links: raw ampersand
405 Old & use: http://x&y
407 <p>Old & use: <a href="http://x&y" class='external'>http://x&y</a>
412 External links: www.jpeg.org (bug 554)
416 <p><a href="http://www.jpeg.org" class='external'>http://www.jpeg.org</a>
421 External links: URL within URL (original bug 2)
423 [http://www.unausa.org/newindex.asp?place=http://www.unausa.org/programs/mun.asp]
425 <p><a href="http://www.unausa.org/newindex.asp?place=http://www.unausa.org/programs/mun.asp" class='external' title="http://www.unausa.org/newindex.asp?place=http://www.unausa.org/programs/mun.asp">[1]</a><span class='urlexpansion'> (<i>http://www.unausa.org/newindex.asp?place=http://www.unausa.org/programs/mun.asp</i>)</span>
436 Normal text. '''Bold text.''' Normal text. ''Italic text.''
438 Normal text. '''''Bold italic text.''''' Normal text.
440 <p>Normal text. <b>Bold text.</b> Normal text. <i>Italic text.</i>
441 </p><p>Normal text. <i><b>Bold italic text.</b></i> Normal text.
447 Unclosed and unmatched quotes
449 '''''Bold italic text '''with bold deactivated''' in between.'''''
451 '''''Bold italic text ''with italic deactivated'' in between.'''''
455 ..spanning two paragraphs (should not work).'''
457 '''Bold tag left open
459 ''Italic tag left open
463 <!-- Unmatching number of opening, closing tags: -->
464 '''This year''''s election ''should'' beat '''last year''''s.
466 ''Tom'''s car is bigger than ''Susan'''s.
468 <p><i><b>Bold italic text </b>with bold deactivated<b> in between.</b></i>
469 </p><p><b><i>Bold italic text </i>with italic deactivated<i> in between.</i></b>
470 </p><p><b>Bold text..</b>
471 </p><p>..spanning two paragraphs (should not work).<b></b>
472 </p><p><b>Bold tag left open</b>
473 </p><p><i>Italic tag left open</i>
475 </p><p><b>This year'</b>s election <i>should</i> beat <b>last year'</b>s.
476 </p><p><i>Tom<b>s car is bigger than </b></i><b>Susan</b>s.
483 ### content taken from http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide:_Using_tables
507 {| border="1" cellpadding="2"
508 |+Multiplication table
510 ! × !! 1 !! 2 !! 3
528 <table border="1" cellpadding="2">
529 <caption>Multiplication table
532 <th> × </th><th> 1 </th><th> 2 </th><th> 3
536 </th><td> 1 </td><td> 2 </td><td> 3
540 </th><td> 2 </td><td> 4 </td><td> 6
544 </th><td> 3 </td><td> 6 </td><td> 9
548 </th><td> 4 </td><td> 8 </td><td> 12
552 </th><td> 5 </td><td> 10 </td><td> 15
560 {| align=right border=1
562 |rowspan=2| Cell 2, row 1 (and 2)
569 <table align=right border=1>
572 </td><td rowspan=2> Cell 2, row 1 (and 2)
573 </td><td> Cell 3, row 1
577 </td><td> Cell 3, row 2
588 {| bgcolor=#ABCDEF border=2
593 |the original table again
600 <table bgcolor=#ABCDEF border=2>
607 </td><td>the original table again
616 Plain link, capitalized
620 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>
625 Plain link, uncapitalized
629 <p><a href="/wiki/Main_Page" title="Main Page">main Page</a>
636 [[Main Page|The Main Page]]
638 <p><a href="/wiki/Main_Page" title="Main Page">The Main Page</a>
647 <p><a href="/index.php?title=Zigzagzogzagzig&action=edit" class="new" title="Zigzagzogzagzig">Zigzagzogzagzig</a>
654 xxx[[main Page]], xxx[[Main Page]], Xxx[[main Page]] XXX[[main Page]], XXX[[Main Page]]
656 <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>
663 [[Main Page]]xxx, [[Main Page]]XXX
665 <p><a href="/wiki/Main_Page" title="Main Page">Main Pagexxx</a>, <a href="/wiki/Main_Page" title="Main Page">Main Page</a>XXX
679 Piped link with 3 brackets
681 [[[main page|the main page]]]
683 <p>[[[main page|the main page]]]
690 [[Talk:Parser testing]], [[Meta:Disclaimers]]
692 <p><a href="/index.php?title=Talk:Parser_testing&action=edit" class="new" title="Talk:Parser testing">Talk:Parser testing</a>, <a href="/index.php?title=Meta:Disclaimers&action=edit" class="new" title="Meta:Disclaimers">Meta:Disclaimers</a>
697 Piped link to namespace
699 [[Meta:Disclaimers|The disclaimers]]
701 <p><a href="/index.php?title=Meta:Disclaimers&action=edit" class="new" title="Meta:Disclaimers">The disclaimers</a>
708 [[Usually caused by a typo (oops}]]
710 <p>[[Usually caused by a typo (oops}]]
718 [[http://www.example.org]]
720 <p>[<a href="http://www.example.org" class='external' title="http://www.example.org">[1]</a><span class='urlexpansion'> (<i>http://www.example.org</i>)</span>]
724 # I'm fairly sure the expected result here is wrong.
725 # We want these to be URL links, not pseudo-pages with URLs for titles....
726 # However the current output is also pretty screwy.
729 # I'm changing it to match the current output--it arguably makes more
730 # sense in the light of the test above. Old expected result was:
731 #<p>Piped link to URL: <a href="/index.php?title=Http://www.example.org&action=edit" class="new" title="Http://www.example.org">an example URL</a>
733 # But I think this test is bordering on "garbage in, garbage out" anyway.
738 Piped link to URL: [[http://www.example.org|an example URL]]
740 <p>Piped link to URL: [<a href="http://www.example.org|an" class='external' title="http://www.example.org|an">example URL</a><span class='urlexpansion'> (<i>http://www.example.org|an</i>)</span>]
745 BUG 2: [[page|http://url/]] should link to page, not http://url/
747 [[Main Page|http://url/]]
749 <p><a href="/wiki/Main_Page" title="Main Page">http://url/</a>
759 Inline interwiki link
761 [[MeatBall:SoftSecurity]]
763 <p><a href="http://www.usemod.com/cgi-bin/mb.pl?SoftSecurity" class='extiw'>MeatBall:SoftSecurity</a>
789 ### Block-level elements
812 <ol><li>Numbered list
829 ***#Number on level 4
837 <ol><li> with numbers
843 </li><li>bullets again
844 <ul><li>bullet level 2
845 <ul><li>bullet level 3
846 <ol><li>Number on level 4
849 </li><li>bullet level 2
850 <ol><li>Number on level 3
851 </li><li>Number on level 3
854 <ol><li>number level 2
877 Magic links: internal link to RFC
881 <p><a href="/index.php?title=RFC_123&action=edit" class="new" title="RFC 123">RFC 123</a>
890 <p><a href="/index.php?title=Special:Booksources&isbn=0306406152" class="internal">ISBN 0-306-40615-2</a>
901 {{thistemplatedoesnotexist}}
903 <p><a href="/index.php?title=Template:Thistemplatedoesnotexist&action=edit" class="new" title="Template:Thistemplatedoesnotexist">Template:Thistemplatedoesnotexist</a>
910 This is a test template
918 <p>This is a test template
923 Template with explicit namespace
927 <p>This is a test template
935 This is a test template with parameter {{{param}}}
941 {{paramtest|param=foo}}
943 <p>This is a test template with parameter foo
948 Magic variable as template parameter
950 {{paramtest|param={{SITENAME}}}}
952 <p>This is a test template with parameter MediaWiki
963 Template parameter as link source
965 {{linktest|param=Main Page}}
967 <p><a href="/wiki/Main_Page" title="Main Page">link</a>
975 including another template, {{paramtest|param={{{arg}}}}}
979 Template passing argument to another template
981 {{paramtest2|arg='hmm'}}
983 <p>including another template, This is a test template with parameter 'hmm'
994 Template as link source
998 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>
1016 Template infinite loop
1020 <p>{{loop2}}<!-- WARNING: template loop detected -->
1025 Template from main namespace
1044 BUG 529: Template with table, not included at beginning of line
1061 BUG 523: Template shouldn't eat newline (or add an extra one before table)
1079 BUG 41: Template parameters shown as broken links
1091 ''None'' of '''this''' should be
1093 but rather passed unmodified
1097 # hmm, fix this or just disable/deprecate msgnw?
1101 {{msgnw:MSGNW test}}
1103 <p>''None'' of '''this''' should be
1105 but rather passed unmodified
1113 {{int:newmessages|lots of money}}
1115 <p>You have lots of money.
1120 ### Pre-save transform tests
1123 pre-save transform: subst:
1129 This is a test template
1133 pre-save transform: normal template
1143 pre-save transform: nonexistant template
1147 {{thistemplatedoesnotexist}}
1149 {{thistemplatedoesnotexist}}
1154 pre-save transform: subst magic variables
1163 # This is bug 89, which I fixed. -- wtm
1165 pre-save transform: subst: templates with parameters
1169 {{subst:paramtest|param="something else"}}
1171 This is a test template with parameter "something else"
1175 ### Message transform tests
1178 message transform: magic variables
1188 message transform: should not transform wiki markup
1205 <p><a href="/wiki/Image:Test" class="image" title="Image: test"><img src="/images/0/0c/Test" alt="Image: test" /></a>
1212 [[Image:test|right]]
1214 <div class="floatright"><span><a href="/wiki/Image:Test" class="image" title="right"><img src="/images/0/0c/Test" alt="right" /></a></span></div>
1221 [[Image:test|right|Caption text]]
1223 <div class="floatright"><span><a href="/wiki/Image:Test" class="image" title="Caption text"><img src="/images/0/0c/Test" alt="Caption text" /></a></span></div>
1228 Image with frame and link
1230 [[Image:Foobar.jpg|frame|left|This is a test image [[Main Page]]]]
1232 <div class="thumb tleft"><div style="width:202px;"><a href="/wiki/Image:Foobar.jpg" class="internal" title="This is a test image "><img src="/images/3/3a/Foobar.jpg" alt="This is a test image " width="200" height="200" /></a> <div class="thumbcaption" >This is a test image <a href="/wiki/Main_Page" title="Main Page">Main Page</a></div></div></div>
1241 <p><a href="/wiki/Image:Test" title="Image:Test">Image:test</a>
1249 Subpage test/subpage
1257 subpage title=[[Subpage test]]
1261 <p><a href="/wiki/Subpage_test/subpage" title="Subpage test/subpage">/subpage</a>
1266 Subpage noslash link
1268 subpage title=[[Subpage test]]
1272 <p><a href="/wiki/Subpage_test/subpage" title="Subpage test/subpage">subpage</a>
1281 <p><a href="/index.php?title=/subpage&action=edit" class="new" title="/subpage">/subpage</a>
1286 BUG 561: {{/Subpage}}
1288 subpage title=[[Page]]
1292 <p><a href="/index.php?title=Page/Subpage&action=edit" class="new" title="Page/Subpage">Page/Subpage</a>
1300 Category:MediaWiki User's Guide
1308 [[:Category:MediaWiki User's Guide]]
1310 <p><a href="/wiki/Category:MediaWiki_User%27s_Guide" title="Category:MediaWiki User's Guide">Category:MediaWiki User's Guide</a>
1319 [[Category: MediaWiki User's Guide]]
1321 <a href="/wiki/Category:MediaWiki_User%27s_Guide" title="Category:MediaWiki User's Guide">MediaWiki User's Guide</a>
1325 ### Inter-language links
1328 Inter-language links
1334 [[zh:食品]]
1336 es:Alimento fr:Nourriture zh:食品
1343 Basic section headings
1350 ===Smaller headline===
1353 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&action=edit&section=1" title="Parser test script">edit</a>]</div><a name="Headline_1"></a><h2> Headline 1 </h2>
1356 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&action=edit&section=2" title="Parser test script">edit</a>]</div><a name="Headline_2"></a><h2>Headline 2</h2>
1359 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&action=edit&section=3" title="Parser test script">edit</a>]</div><a name="Smaller_headline"></a><h3>Smaller headline</h3>
1365 Section headings with TOC
1368 === Subheadline 1 ===
1369 ===== Skipping a level =====
1370 ====== Skipping a level ======
1374 ===Another headline===
1376 <table border="0" id="toc"><tr id="toctitle"><td align="center">
1377 <b>Table of contents</b> <script type="text/javascript">showTocToggle("show","hide")</script></td></tr><tr id="tocinside"><td>
1378 <div class="tocline"><a href="#Headline_1">1 Headline 1</a><br /></div>
1379 <div class="tocindent">
1380 <p><a href="#Subheadline_1">1.1 Subheadline 1</a><br />
1382 <div class="tocindent">
1383 <div class="tocindent">
1384 <p><a href="#Skipping_a_level">1.1.1 Skipping a level</a><br />
1386 <div class="tocindent">
1387 <p><a href="#Skipping_a_level_2">1.1.1.1 Skipping a level</a><br />
1393 <div class="tocline"><a href="#Headline_2">2 Headline 2</a><br /></div>
1394 <div class="tocindent">
1395 <p><a href="#Another_headline">2.1 Another headline</a><br />
1399 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&action=edit&section=1" title="Parser test script">edit</a>]</div><a name="Headline_1"></a><h2> Headline 1 </h2>
1400 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&action=edit&section=2" title="Parser test script">edit</a>]</div><a name="Subheadline_1"></a><h3> Subheadline 1 </h3>
1401 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&action=edit&section=3" title="Parser test script">edit</a>]</div><a name="Skipping_a_level"></a><h5> Skipping a level </h5>
1402 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&action=edit&section=4" title="Parser test script">edit</a>]</div><a name="Skipping_a_level_2"></a><h6> Skipping a level </h6>
1403 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&action=edit&section=5" title="Parser test script">edit</a>]</div><a name="Headline_2"></a><h2> Headline 2 </h2>
1406 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&action=edit&section=6" title="Parser test script">edit</a>]</div><a name="Another_headline"></a><h3>Another headline</h3>
1411 Resolving duplicate section names
1416 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&action=edit&section=1" title="Parser test script">edit</a>]</div><a name="Foo_bar"></a><h2> Foo bar </h2>
1417 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&action=edit&section=2" title="Parser test script">edit</a>]</div><a name="Foo_bar_2"></a><h2>Foo bar</h2>
1429 Template with sections, __NOTOC__
1430 !! options title=[[Parser test script]]
1437 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&action=edit&section=1" title="Parser test script">edit</a>]</div><a name="Section_0"></a><h2>Section 0</h2>
1438 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Template:Sections&action=edit&section=1" title="Template:Sections">edit</a>]</div><a name="Section_1"></a><h3>Section 1</h3>
1439 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Template:Sections&action=edit&section=2" title="Template:Sections">edit</a>]</div><a name="Section_2"></a><h2>Section 2</h2>
1440 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&action=edit&section=2" title="Parser test script">edit</a>]</div><a name="Section_4"></a><h2>Section 4</h2>
1445 __NOEDITSECTION__ keyword
1451 <a name="Section_1"></a><h2>Section 1</h2>
1452 <a name="Section_2"></a><h2>Section 2</h2>