Disable fulltext image name search in Special:Imagelist during MiserMode
[mediawiki.git] / maintenance / parserTests.txt
blobc321b37a355667ba37a62e8c04256beac2394f57
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.
27 !! article
28 Main Page
29 !! text
30 blah blah
31 !! endarticle
33 ###
34 ### Basic tests
35 ###
36 !! test
37 Blank input
38 !! input
39 !! result
40 !! end
43 !! test
44 Simple paragraph
45 !! input
46 This is a simple paragraph.
47 !! result
48 <p>This is a simple paragraph.
49 </p>
50 !! end
52 !! test
53 Simple list
54 !! input
55 * Item 1
56 * Item 2
57 !! result
58 <ul><li> Item 1
59 </li><li> Item 2
60 </li></ul>
62 !! end
64 !! test
65 Italics and bold
66 !! input
67 * plain
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
81 !! result
82 <ul><li> 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
96 </li></ul>
98 !! end
101 ### <nowiki> test cases
104 !! test
105 <nowiki> unordered list
106 !! input
107 <nowiki>* This is not an unordered list item.</nowiki>
108 !! result
109 <p>* This is not an unordered list item.
110 </p>
111 !! end
113 !! test
114 <nowiki> spacing
115 !! input
116 <nowiki>Lorem ipsum dolor
118 sed abit.
119   sed nullum.
121 :and a colon
122 </nowiki>
123 !! result
124 <p>Lorem ipsum dolor
126 sed abit.
127   sed nullum.
129 :and a colon
131 </p>
132 !! end
134 !! test
135 nowiki 3
136 !! input
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>.
145 !! result
146 <dl><dd>There is not nowiki.
147 </dd><dd>There is nowiki.
148 </dd></dl>
149 <ol><li>There is not nowiki.
150 </li><li>There is nowiki.
151 </li></ol>
152 <ul><li>There is not nowiki.
153 </li><li>There is nowiki.
154 </li></ul>
156 !! end
159 ### Comments
161 !! test
162 Comment test 1
163 !! input
164 <!-- comment 1 --> asdf
165 <!-- comment 2 -->
166 !! result
167 <pre>asdf
168 </pre>
170 !! end
172 !! test
173 Comment test 2
174 !! input
175 asdf
176 <!-- comment 1 -->
178 !! result
179 <p>asdf
181 </p>
182 !! end
184 !! test
185 Comment test 3
186 !! input
187 asdf
188 <!-- comment 1 -->
189 <!-- comment 2 -->
191 !! result
192 <p>asdf
194 </p>
195 !! end
197 !! test
198 Comment test 4
199 !! input
200 asdf<!-- comment 1 -->jkl
201 !! result
202 <p>asdfjkl
203 </p>
204 !! end
206 !! test
207 Comment spacing
208 !! input
210  <!-- foo --> b <!-- bar -->
212 !! result
213 <p>a
214 </p>
215 <pre> b 
216 </pre>
217 <p>c
218 </p>
219 !! end
222 ### Preformatted text
224 !! test
225 Preformatted text
226 !! input
227  This is some
228  Preformatted text
229  With ''italic''
230  And '''bold'''
231  And a [[Main Page|link]]
232 !! result
233 <pre>This is some
234 Preformatted text
235 With <i>italic</i>
236 And <b>bold</b>
237 And a <a href="/wiki/Main_Page" title="Main Page">link</a>
238 </pre>
239 !! end
242 ### Definition lists
244 !! test
245 Simple definition
246 !! input
247 ; name : Definition
248 !! result
249 <dl><dt> name&nbsp;</dt><dd> Definition
250 </dd></dl>
252 !! end
254 !! test
255 Simple definition
256 !! input
257 : Indented text
258 !! result
259 <dl><dd> Indented text
260 </dd></dl>
262 !! end
264 !! test
265 Definition list with no space
266 !! input
267 ;name:Definition
268 !! result
269 <dl><dt>name</dt><dd>Definition
270 </dd></dl>
272 !!end
274 !! test
275 Definition list with URL link
276 !! input
277 ; http://example.com/ : definition
278 !! result
279 <dl><dt> <a href="http://example.com/" class='external free' title="http://example.com/" rel="nofollow">http://example.com/</a>&nbsp;</dt><dd> definition
280 </dd></dl>
282 !! end
284 !! test
285 Definition list with bracketed URL link
286 !! input
287 ;[http://www.google.com/ Google]:Number one search engine
288 !! result
289 <dl><dt><a href="http://www.google.com/" class='external text' title="http://www.google.com/" rel="nofollow">Google</a></dt><dd>Number one search engine
290 </dd></dl>
292 !! end
294 !! test
295 Definition list with wikilink containing colon
296 !! input
297 ; [[Help:FAQ]]: The least-read page on Wikipedia
298 !! result
299 <dl><dt> <a href="/index.php?title=Help:FAQ&amp;action=edit" class="new" title="Help:FAQ">Help:FAQ</a></dt><dd> The least-read page on Wikipedia
300 </dd></dl>
302 !! end
304 # At Brion's and JeLuF's insistence... :)
305 !! test
306 Definition list with wikilink containing colon
307 !! input
308 ;  news:alt.wikipedia.rox: This isn't even a real newsgroup!
309 !! result
310 <dl><dt>  <a href="news:alt.wikipedia.rox" class='external free' title="news:alt.wikipedia.rox" rel="nofollow">news:alt.wikipedia.rox</a></dt><dd> This isn't even a real newsgroup!
311 </dd></dl>
313 !! end
315 !! test
316 Malformed definition list with colon
317 !! input
318 ;  news:alt.wikipedia.rox -- don't crash or enter an infinite loop
319 !! result
320 <dl><dt>  <a href="news:alt.wikipedia.rox" class='external free' title="news:alt.wikipedia.rox" rel="nofollow">news:alt.wikipedia.rox</a>&nbsp;&mdash; don't crash or enter an infinite loop
321 </dt></dl>
323 !! end
325 !! test
326 Definition lists: colon in external link text
327 !! input
328 ; [http://www.wikipedia2.org/ Wikipedia : The Next Generation]: OK, I made that up
329 !! result
330 <dl><dt> <a href="http://www.wikipedia2.org/" class='external text' title="http://www.wikipedia2.org/" rel="nofollow">Wikipedia&nbsp;: The Next Generation</a></dt><dd> OK, I made that up
331 </dd></dl>
333 !! end
337 ### External links
339 !! test
340 External links: non-bracketed
341 !! input
342 Non-bracketed: http://example.com
343 !! result
344 <p>Non-bracketed: <a href="http://example.com" class='external free' title="http://example.com" rel="nofollow">http://example.com</a>
345 </p>
346 !! end
348 !! test
349 External links: numbered
350 !! input
351 Numbered: [http://example.com]
352 Numbered: [http://example.net]
353 Numbered: [http://example.org]
354 !! result
355 <p>Numbered: <a href="http://example.com" class='external autonumber' title="http://example.com" rel="nofollow">[1]</a>
356 Numbered: <a href="http://example.net" class='external autonumber' title="http://example.net" rel="nofollow">[2]</a>
357 Numbered: <a href="http://example.org" class='external autonumber' title="http://example.org" rel="nofollow">[3]</a>
358 </p>
359 !!end
361 !! test
362 External links: specified text
363 !! input
364 Specified text: [http://example.com link]
365 !! result
366 <p>Specified text: <a href="http://example.com" class='external text' title="http://example.com" rel="nofollow">link</a>
367 </p>
368 !!end
370 !! test
371 External links: trail
372 !! input
373 Linktrails should not work for external links: [http://example.com link]s
374 !! result
375 <p>Linktrails should not work for external links: <a href="http://example.com" class='external text' title="http://example.com" rel="nofollow">link</a>s
376 </p>
377 !! end
379 !! test
380 External links: dollar sign in URL
381 !! input
382 http://example.com/1$2345
383 !! result
384 <p><a href="http://example.com/1$2345" class='external free' title="http://example.com/1$2345" rel="nofollow">http://example.com/1$2345</a>
385 </p>
386 !! end
388 !! test
389 External links: dollar sign in URL (named)
390 !! input
391 [http://example.com/1$2345]
392 !! result
393 <p><a href="http://example.com/1$2345" class='external autonumber' title="http://example.com/1$2345" rel="nofollow">[1]</a>
394 </p>
395 !!end
397 !! test
398 External image
399 !! input
400 External image: http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png
401 !! result
402 <p>External image: <img src="http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" />
403 </p>
404 !! end
406 !! test
407 External image from https
408 !! input
409 External image from https: https://meta.wikimedia.org/upload/f/f1/Ncwikicol.png
410 !! result
411 <p>External image from https: <img src="https://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" />
412 </p>
413 !! end
415 !! test
416 Link to non-http image, no img tag
417 !! input
418 Link to non-http image, no img tag: ftp://example.com/test.jpg
419 !! result
420 <p>Link to non-http image, no img tag: <a href="ftp://example.com/test.jpg" class='external free' title="ftp://example.com/test.jpg" rel="nofollow">ftp://example.com/test.jpg</a>
421 </p>
422 !! end
424 !! test
425 External links: terminating separator
426 !! input
427 Terminating separator: http://example.com/thing,
428 !! result
429 <p>Terminating separator: <a href="http://example.com/thing" class='external free' title="http://example.com/thing" rel="nofollow">http://example.com/thing</a>,
430 </p>
431 !! end
433 !! test
434 External links: intervening separator
435 !! input
436 Intervening separator: http://example.com/1,2,3
437 !! result
438 <p>Intervening separator: <a href="http://example.com/1,2,3" class='external free' title="http://example.com/1,2,3" rel="nofollow">http://example.com/1,2,3</a>
439 </p>
440 !! end
442 !! test
443 External links: old bug with URL in query
444 !! input
445 Old bug with URL in query: [http://example.com/thing?url=http://example.com link]
446 !! result
447 <p>Old bug with URL in query: <a href="http://example.com/thing?url=http://example.com" class='external text' title="http://example.com/thing?url=http://example.com" rel="nofollow">link</a>
448 </p>
449 !! end
451 !! test
452 External links: old URL-in-URL bug, mixed protocols
453 !! input
454 And again with mixed protocols: [ftp://example.com?url=http://example.com link]
455 !! result
456 <p>And again with mixed protocols: <a href="ftp://example.com?url=http://example.com" class='external text' title="ftp://example.com?url=http://example.com" rel="nofollow">link</a>
457 </p>
458 !!end
460 !! test
461 External links: URL in text
462 !! input
463 URL in text: [http://example.com http://example.com]
464 !! result
465 <p>URL in text: <a href="http://example.com" class='external free' title="http://example.com" rel="nofollow">http://example.com</a>
466 </p>
467 !! end
469 !! test
470 External links: Clickable images
471 !! input
472 ja-style clickable images: [http://example.com http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png]
473 !! result
474 <p>ja-style clickable images: <a href="http://example.com" class='external text' title="http://example.com" rel="nofollow"><img src="http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" /></a>
475 </p>
476 !!end
478 !! test
479 External links: raw ampersand
480 !! input
481 Old &amp; use: http://x&y
482 !! result
483 <p>Old &amp; use: <a href="http://x&amp;y" class='external free' title="http://x&amp;y" rel="nofollow">http://x&amp;y</a>
484 </p>
485 !! end
487 !! test
488 External links: encoded ampersand
489 !! input
490 Old &amp; use: http://x&amp;y
491 !! result
492 <p>Old &amp; use: <a href="http://x&amp;y" class='external free' title="http://x&amp;y" rel="nofollow">http://x&amp;y</a>
493 </p>
494 !! end
496 !! test
497 External links: [raw ampersand]
498 !! input
499 Old &amp; use: [http://x&y]
500 !! result
501 <p>Old &amp; use: <a href="http://x&amp;y" class='external autonumber' title="http://x&amp;y" rel="nofollow">[1]</a>
502 </p>
503 !! end
505 !! test
506 External links: [encoded ampersand]
507 !! input
508 Old &amp; use: [http://x&amp;y]
509 !! result
510 <p>Old &amp; use: <a href="http://x&amp;y" class='external autonumber' title="http://x&amp;y" rel="nofollow">[1]</a>
511 </p>
512 !! end
514 !! test
515 External links: www.jpeg.org (bug 554)
516 !! input
517 http://www.jpeg.org
518 !!result
519 <p><a href="http://www.jpeg.org" class='external free' title="http://www.jpeg.org" rel="nofollow">http://www.jpeg.org</a>
520 </p>
521 !! end
523 !! test
524 External links: URL within URL (original bug 2)
525 !! input
526 [http://www.unausa.org/newindex.asp?place=http://www.unausa.org/programs/mun.asp]
527 !! result
528 <p><a href="http://www.unausa.org/newindex.asp?place=http://www.unausa.org/programs/mun.asp" class='external autonumber' title="http://www.unausa.org/newindex.asp?place=http://www.unausa.org/programs/mun.asp" rel="nofollow">[1]</a>
529 </p>
530 !! end
532 !! test
533 BUG 361: URL inside bracketed URL
534 !! input
535 [http://www.example.com/foo http://www.example.com/bar]
536 !! result
537 <p><a href="http://www.example.com/foo" class='external text' title="http://www.example.com/foo" rel="nofollow">http://www.example.com/bar</a>
538 </p>
539 !! end
541 !! test
542 BUG 361: URL within URL, not bracketed
543 !! input
544 http://www.example.com/foo?=http://www.example.com/bar
545 !! result
546 <p><a href="http://www.example.com/foo?=http://www.example.com/bar" class='external free' title="http://www.example.com/foo?=http://www.example.com/bar" rel="nofollow">http://www.example.com/foo?=http://www.example.com/bar</a>
547 </p>
548 !! end
550 !! test
551 BUG 289: ">"-token in URL-tail
552 !! input
553 http://www.example.com/<hello>
554 !! result
555 <p><a href="http://www.example.com/" class='external free' title="http://www.example.com/" rel="nofollow">http://www.example.com/</a>&lt;hello&gt;
556 </p>
557 !!end
559 !! test
560 BUG 289: literal ">"-token in URL-tail
561 !! input
562 http://www.example.com/<b>html</b>
563 !! result
564 <p><a href="http://www.example.com/" class='external free' title="http://www.example.com/" rel="nofollow">http://www.example.com/</a><b>html</b>
565 </p>
566 !!end
568 !! test
569 BUG 289: ">"-token in bracketed URL
570 !! input
571 [http://www.example.com/<hello> stuff]
572 !! result
573 <p><a href="http://www.example.com/" class='external text' title="http://www.example.com/" rel="nofollow">&lt;hello&gt; stuff</a>
574 </p>
575 !!end
577 !! test
578 BUG 289: literal ">"-token in bracketed URL
579 !! input
580 [http://www.example.com/<b>html</b> stuff]
581 !! result
582 <p><a href="http://www.example.com/" class='external text' title="http://www.example.com/" rel="nofollow"><b>html</b> stuff</a>
583 </p>
584 !!end
586 !! test
587 BUG 289: literal double quote at end of URL
588 !! input
589 http://www.example.com/"hello"
590 !! result
591 <p><a href="http://www.example.com/" class='external free' title="http://www.example.com/" rel="nofollow">http://www.example.com/</a>"hello"
592 </p>
593 !!end
595 !! test
596 BUG 289: literal double quote in bracketed URL
597 !! input
598 [http://www.example.com/"hello" stuff]
599 !! result
600 <p><a href="http://www.example.com/" class='external text' title="http://www.example.com/" rel="nofollow">"hello" stuff</a>
601 </p>
602 !!end
604 !! test
605 External links: invalid character
606 !! input
607 [http://www.example.com\0 test]
608 !! result
609 <p>[<a href="http://www.example.com" class='external free' title="http://www.example.com" rel="nofollow">http://www.example.com</a>\0 test]
610 </p>
611 !! end
613 !! test
614 BUG 787: Links with one slash after the url protocol are invalid
615 !! input
616 http:/example.com
618 [http:/example.com title]
619 !! result
620 <p>http:/example.com
621 </p><p>
622 [http:/example.com title]
623 </p>
624 !! end
627 ### Quotes
630 !! test
631 Quotes
632 !! input
633 Normal text. '''Bold text.''' Normal text. ''Italic text.''
635 Normal text. '''''Bold italic text.''''' Normal text.
636 !!result
637 <p>Normal text. <b>Bold text.</b> Normal text. <i>Italic text.</i>
638 </p><p>Normal text. <i><b>Bold italic text.</b></i> Normal text.
639 </p>
640 !! end
643 !! test
644 Unclosed and unmatched quotes
645 !! input
646 '''''Bold italic text '''with bold deactivated''' in between.'''''
648 '''''Bold italic text ''with italic deactivated'' in between.'''''
650 '''Bold text..
652 ..spanning two paragraphs (should not work).'''
654 '''Bold tag left open
656 ''Italic tag left open
658 Normal text.
660 <!-- Unmatching number of opening, closing tags: -->
661 '''This year''''s election ''should'' beat '''last year''''s.
663 ''Tom'''s car is bigger than ''Susan'''s.
664 !! result
665 <p><i><b>Bold italic text </b>with bold deactivated<b> in between.</b></i>
666 </p><p><b><i>Bold italic text </i>with italic deactivated<i> in between.</i></b>
667 </p><p><b>Bold text..</b>
668 </p><p>..spanning two paragraphs (should not work).<b></b>
669 </p><p><b>Bold tag left open</b>
670 </p><p><i>Italic tag left open</i>
671 </p><p>Normal text.
672 </p><p><b>This year'</b>s election <i>should</i> beat <b>last year'</b>s.
673 </p><p><i>Tom<b>s car is bigger than </b></i><b>Susan</b>s.
674 </p>
675 !! end
678 ### Tables
680 ### some content taken from http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide:_Using_tables
683 # This should not produce <table></table> as <table><tr><td></td></tr></table>
684 # is the bare minimun required by the spec, see:
685 # http://www.w3.org/TR/xhtml-modularization/dtd_module_defs.html#a_module_Basic_Tables
686 !! test
687 A table with no data.
688 !! input
689 {||}
690 !! result
691 !! end
693 # A table with nothing but a caption is invalid XHTML, we might want to render
694 # this as <p>caption</p>
695 !! test
696 A table with nothing but a caption
697 !! input 
699 |+ caption
701 !! result
702 <table>
703 <caption> caption
704 </caption>
705 <tr>
706 <td>
707 </td></tr></table>
708 !! end
710 !! test
711 Simple table
712 !! input
713 {| 
714 | 1 || 2
715 |- 
716 | 3 || 4
718 !! result
719 <table>
720 <tr>
721 <td> 1 </td><td> 2
722 </td></tr>
723 <tr>
724 <td> 3 </td><td> 4
725 </td></tr></table>
727 !! end
729 !! test
730 Multiplication table
731 !! input
732 {| border="1" cellpadding="2"
733 |+Multiplication table
735 ! &times; !! 1 !! 2 !! 3
737 ! 1
738 | 1 || 2 || 3
740 ! 2
741 | 2 || 4 || 6
743 ! 3
744 | 3 || 6 || 9
746 ! 4
747 | 4 || 8 || 12
749 ! 5
750 | 5 || 10 || 15
752 !! result
753 <table border="1" cellpadding="2">
754 <caption>Multiplication table
755 </caption>
756 <tr>
757 <th> &times; </th><th> 1 </th><th> 2 </th><th> 3
758 </th></tr>
759 <tr>
760 <th> 1
761 </th><td> 1 </td><td> 2 </td><td> 3
762 </td></tr>
763 <tr>
764 <th> 2
765 </th><td> 2 </td><td> 4 </td><td> 6
766 </td></tr>
767 <tr>
768 <th> 3
769 </th><td> 3 </td><td> 6 </td><td> 9
770 </td></tr>
771 <tr>
772 <th> 4
773 </th><td> 4 </td><td> 8 </td><td> 12
774 </td></tr>
775 <tr>
776 <th> 5
777 </th><td> 5 </td><td> 10 </td><td> 15
778 </td></tr></table>
780 !! end
782 !! test
783 Table rowspan
784 !! input
785 {| align=right border=1
786 | Cell 1, row 1 
787 |rowspan=2| Cell 2, row 1 (and 2) 
788 | Cell 3, row 1 
789 |- 
790 | Cell 1, row 2 
791 | Cell 3, row 2 
793 !! result
794 <table align="right" border="1">
795 <tr>
796 <td> Cell 1, row 1
797 </td><td rowspan="2"> Cell 2, row 1 (and 2)
798 </td><td> Cell 3, row 1
799 </td></tr>
800 <tr>
801 <td> Cell 1, row 2
802 </td><td> Cell 3, row 2
803 </td></tr></table>
805 !! end
807 !! test
808 Nested table
809 !! input
810 {| border=1
811 | &alpha;
813 {| bgcolor=#ABCDEF border=2
814 |nested
816 |table
818 |the original table again
820 !! result
821 <table border="1">
822 <tr>
823 <td> &alpha;
824 </td><td>
825 <table bgcolor="#ABCDEF" border="2">
826 <tr>
827 <td>nested
828 </td></tr>
829 <tr>
830 <td>table
831 </td></tr></table>
832 </td><td>the original table again
833 </td></tr></table>
835 !! end
837 !! test
838 Invalid attributes in table cell (bug 1830)
839 !! input
841 |Cell:|broken
843 !! result
844 <table>
845 <tr>
846 <td>broken
847 </td></tr></table>
849 !! end
853 ### Internal links
855 !! test
856 Plain link, capitalized
857 !! input
858 [[Main Page]]
859 !! result
860 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>
861 </p>
862 !! end
864 !! test
865 Plain link, uncapitalized
866 !! input
867 [[main Page]]
868 !! result
869 <p><a href="/wiki/Main_Page" title="Main Page">main Page</a>
870 </p>
871 !! end
873 !! test
874 Piped link
875 !! input
876 [[Main Page|The Main Page]]
877 !! result
878 <p><a href="/wiki/Main_Page" title="Main Page">The Main Page</a>
879 </p>
880 !! end
882 !! test
883 Broken link
884 !! input
885 [[Zigzagzogzagzig]]
886 !! result
887 <p><a href="/index.php?title=Zigzagzogzagzig&amp;action=edit" class="new" title="Zigzagzogzagzig">Zigzagzogzagzig</a>
888 </p>
889 !! end
891 !! test
892 Link with prefix
893 !! input
894 xxx[[main Page]], xxx[[Main Page]], Xxx[[main Page]] XXX[[main Page]], XXX[[Main Page]]
895 !! result
896 <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>
897 </p>
898 !! end
900 !! test
901 Link with suffix
902 !! input
903 [[Main Page]]xxx, [[Main Page]]XXX
904 !! result
905 <p><a href="/wiki/Main_Page" title="Main Page">Main Pagexxx</a>, <a href="/wiki/Main_Page" title="Main Page">Main Page</a>XXX
906 </p>
907 !! end
909 !! test
910 Link with 3 brackets
911 !! input
912 [[[main page]]]
913 !! result
914 <p>[[[main page]]]
915 </p>
916 !! end
918 !! test
919 Piped link with 3 brackets
920 !! input
921 [[[main page|the main page]]]
922 !! result
923 <p>[[[main page|the main page]]]
924 </p>
925 !! end
927 !! test
928 Link with multiple pipes
929 !! input
930 [[Main Page|The|Main|Page]]
931 !! result
932 <p><a href="/wiki/Main_Page" title="Main Page">The|Main|Page</a>
933 </p>
934 !! end
936 !! test
937 Link to namespaces
938 !! input
939 [[Talk:Parser testing]], [[Meta:Disclaimers]]
940 !! result
941 <p><a href="/index.php?title=Talk:Parser_testing&amp;action=edit" class="new" title="Talk:Parser testing">Talk:Parser testing</a>, <a href="/index.php?title=Meta:Disclaimers&amp;action=edit" class="new" title="Meta:Disclaimers">Meta:Disclaimers</a>
942 </p>
943 !! end
945 !! test
946 Piped link to namespace
947 !! input
948 [[Meta:Disclaimers|The disclaimers]]
949 !! result
950 <p><a href="/index.php?title=Meta:Disclaimers&amp;action=edit" class="new" title="Meta:Disclaimers">The disclaimers</a>
951 </p>
952 !! end
954 !! test
955 Link containing }
956 !! input
957 [[Usually caused by a typo (oops}]]
958 !! result
959 <p>[[Usually caused by a typo (oops}]]
960 </p>
961 !! end
963 !! test
964 Link containing % (not as a hex sequence)
965 !! input
966 [[7% Solution]]
967 !! result
968 <p><a href="/index.php?title=7%25_Solution&amp;action=edit" class="new" title="7% Solution">7% Solution</a>
969 </p>
970 !! end
972 !! test
973 Link containing % as a single hex sequence interpreted to char
974 !! input
975 [[7%25 Solution]]
976 !! result
977 <p><a href="/index.php?title=7%25_Solution&amp;action=edit" class="new" title="7% Solution">7% Solution</a>
978 </p>
979 !!end
981 !! test
982 Link containing % as a double hex sequence interpreted to hex sequence
983 !! input
984 [[7%2525 Solution]]
985 !! result
986 <p>[[7%2525 Solution]]
987 </p>
988 !!end
990 !! test
991 Plain link to URL
992 !! input
993 [[http://www.example.org]]
994 !! result
995 <p>[<a href="http://www.example.org" class='external autonumber' title="http://www.example.org" rel="nofollow">[1]</a>]
996 </p>
997 !! end
999 # I'm fairly sure the expected result here is wrong.
1000 # We want these to be URL links, not pseudo-pages with URLs for titles....
1001 # However the current output is also pretty screwy.
1003 # ----
1004 # I'm changing it to match the current output--it arguably makes more
1005 # sense in the light of the test above. Old expected result was:
1006 #<p>Piped link to URL: <a href="/index.php?title=Http://www.example.org&amp;action=edit" class="new" title="Http://www.example.org">an example URL</a>
1007 #</p>
1008 # But I think this test is bordering on "garbage in, garbage out" anyway.
1009 # -- wtm
1010 !! test
1011 Piped link to URL
1012 !! input
1013 Piped link to URL: [[http://www.example.org|an example URL]]
1014 !! result
1015 <p>Piped link to URL: [<a href="http://www.example.org|an" class='external text' title="http://www.example.org|an" rel="nofollow">example URL</a>]
1016 </p>
1017 !! end
1019 !! test
1020 BUG 2: [[page|http://url/]] should link to page, not http://url/
1021 !! input
1022 [[Main Page|http://url/]]
1023 !! result
1024 <p><a href="/wiki/Main_Page" title="Main Page">http://url/</a>
1025 </p>
1026 !! end
1028 !! test
1029 BUG 337: Escaped self-links should be bold
1030 !! options
1031 title=[[Bug462]]
1032 !! input
1033 [[Bu&#103;462]] [[Bug462]]
1034 !! result
1035 <p><strong>Bu&#103;462</strong> <strong>Bug462</strong>
1036 </p>
1037 !! end
1039 !! test
1040 Self-link to section should not be bold
1041 !! options
1042 title=[[Main Page]]
1043 !! input
1044 [[Main Page#section]]
1045 !! result
1046 <p><a href="/wiki/Main_Page#section" title="Main Page">Main Page#section</a>
1047 </p>
1048 !! end
1050 !! test
1051 <nowiki> inside a link
1052 !! input
1053 [[Main<nowiki> Page</nowiki>]] [[Main Page|the main page <nowiki>[it's not very good]</nowiki>]]
1054 !! result
1055 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a> <a href="/wiki/Main_Page" title="Main Page">the main page [it's not very good]</a>
1056 </p>
1057 !! end
1060 ### Interwiki links (see maintenance/interwiki.sql)
1063 !! test
1064 Inline interwiki link
1065 !! input
1066 [[MeatBall:SoftSecurity]]
1067 !! result
1068 <p><a href="http://www.usemod.com/cgi-bin/mb.pl?SoftSecurity" class='extiw' title="MeatBall:SoftSecurity">MeatBall:SoftSecurity</a>
1069 </p>
1070 !! end
1072 !! test
1073 Interwiki link encoding conversion (bug 1636)
1074 !! input
1075 *[[Wikipedia:ro:Olteni&#0355;a]]
1076 *[[Wikipedia:ro:Olteni&#355;a]]
1077 !! result
1078 <ul><li><a href="http://en.wikipedia.org/wiki/ro:Olteni%C5%A3a" class='extiw' title="Wikipedia:ro:Olteniţa">Wikipedia:ro:Olteni&#355;a</a>
1079 </li><li><a href="http://en.wikipedia.org/wiki/ro:Olteni%C5%A3a" class='extiw' title="Wikipedia:ro:Olteniţa">Wikipedia:ro:Olteni&#355;a</a>
1080 </li></ul>
1082 !! end
1085 ## XHTML tidiness
1088 !! test
1089 <br> to <br />
1090 !! input
1091 1<br>2<br />3
1092 !! result
1093 <p>1<br />2<br />3
1094 </p>
1095 !! end
1097 !! test
1098 Incorrecly removing closing slashes from correctly formed XHTML
1099 !! input
1100 <br style="clear:both;" />
1101 !! result
1102 <p><br style="clear:both;" />
1103 </p>
1104 !! end
1106 !! test 
1107 Failing to transform badly formed HTML into correct XHTML
1108 !! input
1109 <br clear=left>
1110 <br clear=right>
1111 <br clear=all>
1112 !! result
1113 <p><br style="clear:left;" />
1114 <br style="clear:right;" />
1115 <br style="clear:both;" />
1116 </p>
1117 !!end
1119 !! test 
1120 Horizontal ruler (should it add that extra space?)
1121 !! input 
1122 <hr>
1123 <hr >
1124 foo <hr
1125 > bar
1126 !! result 
1127 <hr />
1128 <hr />
1129 foo <hr /> bar
1130 !! end
1133 ### Block-level elements
1135 !! test
1136 Common list
1137 !! input
1138 *Common list
1139 * item 2
1140 *item 3
1141 !! result
1142 <ul><li>Common list
1143 </li><li> item 2
1144 </li><li>item 3
1145 </li></ul>
1147 !! end
1149 !! test
1150 Numbered list
1151 !! input
1152 #Numbered list
1153 #item 2
1154 # item 3
1155 !! result
1156 <ol><li>Numbered list
1157 </li><li>item 2
1158 </li><li> item 3
1159 </li></ol>
1161 !! end
1163 !! test
1164 Mixed list
1165 !! input
1166 *Mixed list
1167 *# with numbers
1168 ** and bullets
1169 *# and numbers
1170 *bullets again
1171 **bullet level 2
1172 ***bullet level 3
1173 ***#Number on level 4
1174 **bullet level 2
1175 **#Number on level 3
1176 **#Number on level 3
1177 *#number level 2
1178 *Level 1
1179 !! result
1180 <ul><li>Mixed list
1181 <ol><li> with numbers
1182 </li></ol>
1183 <ul><li> and bullets
1184 </li></ul>
1185 <ol><li> and numbers
1186 </li></ol>
1187 </li><li>bullets again
1188 <ul><li>bullet level 2
1189 <ul><li>bullet level 3
1190 <ol><li>Number on level 4
1191 </li></ol>
1192 </li></ul>
1193 </li><li>bullet level 2
1194 <ol><li>Number on level 3
1195 </li><li>Number on level 3
1196 </li></ol>
1197 </li></ul>
1198 <ol><li>number level 2
1199 </li></ol>
1200 </li><li>Level 1
1201 </li></ul>
1203 !! end
1205 !! test
1206 List items are not parsed correctly following a <pre> block (bug 785)
1207 !! input
1208 * <pre>foo</pre>
1209 * <pre>bar</pre>
1210 * zar
1211 !! result
1212 <ul><li> <pre>foo</pre>
1213 </li><li> <pre>bar</pre>
1214 </li><li> zar
1215 </li></ul>
1217 !! end
1220 ### Magic variables
1222 !! test
1223 Magic variables
1224 !! input
1225 {{SITENAME}}
1226 !! result
1227 <p>MediaWiki
1228 </p>
1229 !! end
1232 ### Magic links
1234 !! test
1235 Magic links: internal link to RFC
1236 !! input
1237 [[RFC 123]]
1238 !! result
1239 <p><a href="/index.php?title=RFC_123&amp;action=edit" class="new" title="RFC 123">RFC 123</a>
1240 </p>
1241 !! end
1243 !! test
1244 Magic links: RFC
1245 !! input
1246 RFC 822
1247 !! result
1248 <p><a href='http://www.faqs.org/rfcs/rfc822.html' class='external' title="http://www.faqs.org/rfcs/rfc822.html">RFC 822</a>
1249 </p>
1250 !! end
1252 !! test
1253 Magic links: ISBN (bug 1937 unresolved)
1254 !! input
1255 ISBN 0-306-40615-2
1256 !! result
1257 <p><a href="/index.php?title=Special:Booksources&amp;isbn=0306406152" class="internal">ISBN 0-306-40615-2</a>
1258 </p>
1259 !! end
1261 !! test
1262 Magic links: PMID incorrectly converts space to underscore
1263 !! input
1264 PMID 1234
1265 !! result
1266 <p><a href='http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&amp;db=pubmed&amp;dopt=Abstract&amp;list_uids=1234' class='external' title="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&amp;db=pubmed&amp;dopt=Abstract&amp;list_uids=1234">PMID 1234</a>
1267 </p>
1268 !! end
1271 ### Templates
1272 ####
1274 !! test
1275 Nonexistant template
1276 !! input
1277 {{thistemplatedoesnotexist}}
1278 !! result
1279 <p><a href="/index.php?title=Template:Thistemplatedoesnotexist&amp;action=edit" class="new" title="Template:Thistemplatedoesnotexist">Template:Thistemplatedoesnotexist</a>
1280 </p>
1281 !! end
1283 !! article
1284 Template:test
1285 !! text
1286 This is a test template
1287 !! endarticle
1289 !! test
1290 Simple template
1291 !! input
1292 {{test}}
1293 !! result
1294 <p>This is a test template
1295 </p>
1296 !! end
1298 !! test
1299 Template with explicit namespace
1300 !! input
1301 {{Template:test}}
1302 !! result
1303 <p>This is a test template
1304 </p>
1305 !! end
1308 !! article
1309 Template:paramtest
1310 !! text
1311 This is a test template with parameter {{{param}}}
1312 !! endarticle
1314 !! test
1315 Template parameter
1316 !! input
1317 {{paramtest|param=foo}}
1318 !! result
1319 <p>This is a test template with parameter foo
1320 </p>
1321 !! end
1323 !! article
1324 Template:paramtestnum
1325 !! text
1326 [[{{{1}}}|{{{2}}}]]
1327 !! endarticle
1329 !! test
1330 Template unnamed parameter
1331 !! input
1332 {{paramtestnum|Main Page|the main page}}
1333 !! result
1334 <p><a href="/wiki/Main_Page" title="Main Page">the main page</a>
1335 </p>
1336 !! end
1338 !! test
1339 BUG 553: link with two variables in a piped link
1340 !! input
1341 {| 
1342 |[[{{{1}}}|{{{2}}}]]
1344 !! result
1345 <table>
1346 <tr>
1347 <td>[[{{{1}}}|{{{2}}}]]
1348 </td></tr></table>
1350 !! end
1352 !! test
1353 Magic variable as template parameter
1354 !! input
1355 {{paramtest|param={{SITENAME}}}}
1356 !! result
1357 <p>This is a test template with parameter MediaWiki
1358 </p>
1359 !! end
1361 !! article
1362 Template:linktest
1363 !! text
1364 [[{{{param}}}|link]]
1365 !! endarticle
1367 !! test
1368 Template parameter as link source
1369 !! input
1370 {{linktest|param=Main Page}}
1371 !! result
1372 <p><a href="/wiki/Main_Page" title="Main Page">link</a>
1373 </p>
1374 !! end
1377 !!article
1378 Template:paramtest2
1379 !! text
1380 including another template, {{paramtest|param={{{arg}}}}}
1381 !! endarticle
1383 !! test
1384 Template passing argument to another template
1385 !! input
1386 {{paramtest2|arg='hmm'}}
1387 !! result
1388 <p>including another template, This is a test template with parameter 'hmm'
1389 </p>
1390 !! end
1392 !! article
1393 Template:Linktest2
1394 !! text
1395 Main Page
1396 !! endarticle
1398 !! test
1399 Template as link source
1400 !! input
1401 [[{{linktest2}}]]
1402 !! result
1403 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>
1404 </p>
1405 !! end
1408 !! article
1409 Template:loop1
1410 !! text
1411 {{loop2}}
1412 !! endarticle
1414 !! article
1415 Template:loop2
1416 !! text
1417 {{loop1}}
1418 !! endarticle
1420 !! test
1421 Template infinite loop
1422 !! input
1423 {{loop1}}
1424 !! result
1425 <p>{{loop1}}<!-- WARNING: template loop detected -->
1426 </p>
1427 !! end
1429 !! test
1430 Template from main namespace
1431 !! input
1432 {{:Main Page}}
1433 !! result
1434 <p>blah blah
1435 </p>
1436 !! end
1438 !! article
1439 Template:table
1440 !! text
1441 {| 
1442 | 1 || 2
1443 |- 
1444 | 3 || 4
1446 !! endarticle
1448 !! test
1449 BUG 529: Template with table, not included at beginning of line
1450 !! input
1451 foo {{table}}
1452 !! result
1453 <p>foo 
1454 </p>
1455 <table>
1456 <tr>
1457 <td> 1 </td><td> 2
1458 </td></tr>
1459 <tr>
1460 <td> 3 </td><td> 4
1461 </td></tr></table>
1463 !! end
1465 !! test
1466 BUG 523: Template shouldn't eat newline (or add an extra one before table)
1467 !! input
1469 {{table}}
1470 !! result
1471 <p>foo
1472 </p>
1473 <table>
1474 <tr>
1475 <td> 1 </td><td> 2
1476 </td></tr>
1477 <tr>
1478 <td> 3 </td><td> 4
1479 </td></tr></table>
1481 !! end
1483 !! test
1484 BUG 41: Template parameters shown as broken links
1485 !! input
1486 {{{parameter}}}
1487 !! result
1488 <p>{{{parameter}}}
1489 </p>
1490 !! end
1493 !! article
1494 Template:MSGNW test
1495 !! text
1496 ''None'' of '''this''' should be 
1497 * interepreted
1498  but rather passed unmodified
1499 {{test}}
1500 !! endarticle
1502 # hmm, fix this or just deprecate msgnw and document its behavior?
1503 !! test
1504 msgnw keyword
1505 !! options
1506 disabled
1507 !! input
1508 {{msgnw:MSGNW test}}
1509 !! result
1510 <p>''None'' of '''this''' should be 
1511 * interepreted
1512  but rather passed unmodified
1513 {{test}}
1514 </p>
1515 !! end
1517 !! test
1518 int keyword
1519 !! input
1520 {{int:newmessages|lots of money}}
1521 !! result
1522 <p>You have lots of money.
1523 </p>
1524 !! end
1527 ### Pre-save transform tests
1529 !! test
1530 pre-save transform: subst:
1531 !! options
1533 !! input
1534 {{subst:test}}
1535 !! result
1536 This is a test template
1537 !! end
1539 !! test
1540 pre-save transform: normal template
1541 !! options
1543 !! input
1544 {{test}}
1545 !! result
1546 {{test}}
1547 !! end
1549 !! test
1550 pre-save transform: nonexistant template
1551 !! options
1553 !! input
1554 {{thistemplatedoesnotexist}}
1555 !! result
1556 {{thistemplatedoesnotexist}}
1557 !! end
1560 !! test
1561 pre-save transform: subst magic variables
1562 !! options
1564 !! input
1565 {{subst:SITENAME}}
1566 !! result
1567 MediaWiki
1568 !! end
1570 # This is bug 89, which I fixed. -- wtm
1571 !! test
1572 pre-save transform: subst: templates with parameters
1573 !! options
1575 !! input
1576 {{subst:paramtest|param="something else"}}
1577 !! result
1578 This is a test template with parameter "something else"
1579 !! end
1582 !! article
1583 Template:nowikitest
1584 !! text
1585 <nowiki>'''not wiki'''</nowiki>
1586 !! endarticle
1588 !! test
1589 pre-save transform: nowiki in subst (bug 1188)
1590 !! options
1592 !! input
1593 {{subst:nowikitest}}
1594 !! result
1595 <nowiki>'''not wiki'''</nowiki>
1596 !! end
1599 !! article
1600 Template:commenttest
1601 !! text
1602 This template has <!-- a comment --> in it.
1603 !! endarticle
1605 !! test
1606 pre-save transform: comment in subst (bug 1936)
1607 !! options
1609 !! input
1610 {{subst:commenttest}}
1611 !! result
1612 This template has <!-- a comment --> in it.
1613 !! end
1616 !! article
1617 Template:dangerous
1618 !!text
1619 <span onmouseover="alert('crap')">Oh no</span>
1620 !!endarticle
1622 !!test
1623 (confirming safety of fix for subst bug 1936)
1624 !! input
1625 {{Template:dangerous}}
1626 !! result
1627 <p><span>Oh no</span>
1628 </p>
1629 !! end
1633 ### Message transform tests
1635 !! test
1636 message transform: magic variables
1637 !! options
1639 !! input
1640 {{SITENAME}}
1641 !! result
1642 MediaWiki
1643 !! end
1645 !! test
1646 message transform: should not transform wiki markup
1647 !! options
1649 !! input
1650 ''test''
1651 !! result
1652 ''test''
1653 !! end
1656 ### Images
1658 !! test
1659 Simple image
1660 !! input
1661 [[Image:foobar.jpg]]
1662 !! result
1663 <p><a href="/wiki/Image:Foobar.jpg" class="image" title="Image:foobar.jpg"><img src="/images/3/3a/Foobar.jpg" alt="Image:foobar.jpg" longdesc="/wiki/Image:Foobar.jpg" /></a>
1664 </p>
1665 !! end
1667 !! test
1668 Right-aligned image
1669 !! input
1670 [[Image:foobar.jpg|right]]
1671 !! result
1672 <div class="floatright"><span><a href="/wiki/Image:Foobar.jpg" class="image" title=""><img src="/images/3/3a/Foobar.jpg" alt="" longdesc="/wiki/Image:Foobar.jpg" /></a></span></div>
1674 !! end
1676 !! test
1677 Image with caption
1678 !! input
1679 [[Image:foobar.jpg|right|Caption text]]
1680 !! result
1681 <div class="floatright"><span><a href="/wiki/Image:Foobar.jpg" class="image" title="Caption text"><img src="/images/3/3a/Foobar.jpg" alt="Caption text" longdesc="/wiki/Image:Foobar.jpg" /></a></span></div>
1683 !! end
1685 !! test
1686 Image with frame and link
1687 !! input
1688 [[Image:Foobar.jpg|frame|left|This is a test image [[Main Page]]]]
1689 !! result
1690 <div class="thumb tleft"><div style="width:1943px;"><a href="/wiki/Image:Foobar.jpg" class="internal" title="This is a test image Main Page"><img src="/images/3/3a/Foobar.jpg" alt="This is a test image Main Page" width="1941" height="220" longdesc="/wiki/Image:Foobar.jpg" /></a>  <div class="thumbcaption" >This is a test image <a href="/wiki/Main_Page" title="Main Page">Main Page</a></div></div></div>
1692 !! end
1694 !! test
1695 Link to image page
1696 !! input
1697 [[:Image:test]]
1698 !! result
1699 <p><a href="/wiki/Image:Test" title="Image:Test">Image:test</a>
1700 </p>
1701 !! end
1703 !! test
1704 Frameless image caption with a free URL
1705 !! input
1706 [[Image:foobar.jpg|http://example.com]]
1707 !! result
1708 <p><a href="/wiki/Image:Foobar.jpg" class="image" title="http://example.com"><img src="/images/3/3a/Foobar.jpg" alt="http://example.com" longdesc="/wiki/Image:Foobar.jpg" /></a>
1709 </p>
1710 !! end
1712 !! test
1713 Thumbnail image caption with a free URL
1714 !! input
1715 [[Image:foobar.jpg|thumb|http://example.com]]
1716 !! result
1717 <div class="thumb tright"><div style="width:182px;"><a href="/wiki/Image:Foobar.jpg" class="internal" title="http://example.com"><img src="/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" alt="http://example.com" width="180" height="20" longdesc="/wiki/Image:Foobar.jpg" /></a>  <div class="thumbcaption" ><div class="magnify" style="float:right"><a href="/wiki/Image:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="Enlarge" /></a></div><a href="http://example.com" class='external free' title="http://example.com" rel="nofollow">http://example.com</a></div></div></div>
1719 !! end
1721 # Pending resolution to bug 368
1722 !! test
1723 BUG 648: Frameless image caption with a link
1724 !! input
1725 [[Image:foobar.jpg|text with a [[link]] in it]]
1726 !! result
1727 <p><a href="/wiki/Image:Foobar.jpg" class="image" title="text with a link in it"><img src="/images/3/3a/Foobar.jpg" alt="text with a link in it" longdesc="/wiki/Image:Foobar.jpg" /></a>
1728 </p>
1729 !! end
1731 !! test
1732 Escape HTML special chars in image alt text
1733 !! input
1734 [[Image:foobar.jpg|& < > "]]
1735 !! result
1736 <p><a href="/wiki/Image:Foobar.jpg" class="image" title="&amp; &lt; &gt; &quot;"><img src="/images/3/3a/Foobar.jpg" alt="&amp; &lt; &gt; &quot;" longdesc="/wiki/Image:Foobar.jpg" /></a>
1737 </p>
1738 !! end
1740 !! test
1741 BUG 499: Alt text should have &#1234;, not &amp;1234;
1742 !! input
1743 [[Image:foobar.jpg|&#9792;]]
1744 !! result
1745 <p><a href="/wiki/Image:Foobar.jpg" class="image" title="&#9792;"><img src="/images/3/3a/Foobar.jpg" alt="&#9792;" longdesc="/wiki/Image:Foobar.jpg" /></a>
1746 </p>
1747 !! end
1749 !! test
1750 Broken image caption with link
1751 !! input
1752 [[Image:Foobar.jpg|thumb|This is a broken caption. But [[Main Page|this]] is just an ordinary link.
1753 !! result
1754 <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.
1755 </p>
1756 !! end
1758 !! test
1759 Image caption containing another image
1760 !! input
1761 [[Image:Foobar.jpg|thumb|This is a caption with another [[Image:icon.png|image]] inside it!]]
1762 !! result
1763 <div class="thumb tright"><div style="width:182px;"><a href="/wiki/Image:Foobar.jpg" class="internal" title="This is a caption with another Image:Icon.png inside it!"><img src="/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" alt="This is a caption with another Image:Icon.png inside it!" width="180" height="20" longdesc="/wiki/Image:Foobar.jpg" /></a>  <div class="thumbcaption" ><div class="magnify" style="float:right"><a href="/wiki/Image:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="Enlarge" /></a></div>This is a caption with another <a href="/index.php?title=Special:Upload&amp;wpDestFile=Icon.png" class="new" title="Image:Icon.png">Image:Icon.png</a> inside it!</div></div></div>
1765 !! end
1767 !! test
1768 Image caption containing a newline
1769 !! input
1770 [[Image:Foobar.jpg|This
1771 *is some text]]
1772 !! result
1773 <p><a href="/wiki/Image:Foobar.jpg" class="image" title="This *is some text"><img src="/images/3/3a/Foobar.jpg" alt="This *is some text" longdesc="/wiki/Image:Foobar.jpg" /></a>
1774 </p>
1775 !!end
1780 ### Subpages
1782 !! article
1783 Subpage test/subpage
1784 !! text
1786 !! endarticle
1788 !! test
1789 Subpage link
1790 !! options
1791 subpage title=[[Subpage test]]
1792 !! input
1793 [[/subpage]]
1794 !! result
1795 <p><a href="/wiki/Subpage_test/subpage" title="Subpage test/subpage">/subpage</a>
1796 </p>
1797 !! end
1799 !! test
1800 Subpage noslash link
1801 !! options
1802 subpage title=[[Subpage test]]
1803 !!input
1804 [[/subpage/]]
1805 !! result
1806 <p><a href="/wiki/Subpage_test/subpage" title="Subpage test/subpage">subpage</a>
1807 </p>
1808 !! end
1810 !! test
1811 Disabled subpages
1812 !! input
1813 [[/subpage]]
1814 !! result
1815 <p><a href="/index.php?title=/subpage&amp;action=edit" class="new" title="/subpage">/subpage</a>
1816 </p>
1817 !! end
1819 !! test
1820 BUG 561: {{/Subpage}}
1821 !! options
1822 subpage title=[[Page]]
1823 !! input
1824 {{/Subpage}}
1825 !! result
1826 <p><a href="/index.php?title=Page/Subpage&amp;action=edit" class="new" title="Page/Subpage">Page/Subpage</a>
1827 </p>
1828 !! end
1831 ### Categories
1833 !! article
1834 Category:MediaWiki User's Guide
1835 !! text
1836 blah
1837 !! endarticle
1839 !! test
1840 Link to category
1841 !! input
1842 [[:Category:MediaWiki User's Guide]]
1843 !! result
1844 <p><a href="/wiki/Category:MediaWiki_User%27s_Guide" title="Category:MediaWiki User's Guide">Category:MediaWiki User's Guide</a>
1845 </p>
1846 !! end
1848 !! test
1849 Simple category
1850 !! options
1852 !! input
1853 [[Category: MediaWiki User's Guide]]
1854 !! result
1855 <a href="/wiki/Category:MediaWiki_User%27s_Guide" title="Category:MediaWiki User's Guide">MediaWiki User's Guide</a>
1856 !! end
1859 ### Inter-language links
1861 !! test
1862 Inter-language links
1863 !! options
1865 !! input
1866 [[es:Alimento]]
1867 [[fr:Nourriture]]
1868 [[zh:&#39135;&#21697;]]
1869 !! result
1870 es:Alimento fr:Nourriture zh:食品
1871 !! end
1874 ### Sections
1876 !! test
1877 Basic section headings
1878 !! options
1879 title=[[Parser test script]]
1880 !! input
1881 == Headline 1 ==
1882 Some text
1884 ==Headline 2==
1885 More
1886 ===Smaller headline===
1887 Blah blah
1888 !! result
1889 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&amp;action=edit&amp;section=1" title="Parser test script">edit</a>]</div><a name="Headline_1"></a><h2> Headline 1 </h2>
1890 <p>Some text
1891 </p>
1892 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&amp;action=edit&amp;section=2" title="Parser test script">edit</a>]</div><a name="Headline_2"></a><h2>Headline 2</h2>
1893 <p>More
1894 </p>
1895 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&amp;action=edit&amp;section=3" title="Parser test script">edit</a>]</div><a name="Smaller_headline"></a><h3>Smaller headline</h3>
1896 <p>Blah blah
1897 </p>
1898 !! end
1900 !! test
1901 Section headings with TOC
1902 !! options
1903 title=[[Parser test script]]
1904 !! input
1905 == Headline 1 ==
1906 === Subheadline 1 ===
1907 ===== Skipping a level =====
1908 ====== Skipping a level ======
1910 == Headline 2 ==
1911 Some text
1912 ===Another headline===
1913 !! result
1914 <table id='toc' class='toc'><tr><td><div id='toctitle'><h2>Table of contents</h2></div>
1915 <ul>
1916 <li class='toclevel-1'><a href="#Headline_1"><span class="tocnumber">1</span> <span class="toctext">Headline 1</span></a>
1917 <ul>
1918 <li class='toclevel-2'><a href="#Subheadline_1"><span class="tocnumber">1.1</span> <span class="toctext">Subheadline 1</span></a>
1919 <ul>
1920 <li class='toclevel-3'><a href="#Skipping_a_level"><span class="tocnumber">1.1.1</span> <span class="toctext">Skipping a level</span></a>
1921 <ul>
1922 <li class='toclevel-4'><a href="#Skipping_a_level_2"><span class="tocnumber">1.1.1.1</span> <span class="toctext">Skipping a level</span></a></li>
1923 </ul>
1924 </li>
1925 </ul>
1926 </li>
1927 </ul>
1928 </li>
1929 <li class='toclevel-1'><a href="#Headline_2"><span class="tocnumber">2</span> <span class="toctext">Headline 2</span></a>
1930 <ul>
1931 <li class='toclevel-2'><a href="#Another_headline"><span class="tocnumber">2.1</span> <span class="toctext">Another headline</span></a></li>
1932 </ul>
1933 </li>
1934 </ul>
1935 </td></tr></table>
1936 <script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script>
1937 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&amp;action=edit&amp;section=1" title="Parser test script">edit</a>]</div><a name="Headline_1"></a><h2> Headline 1 </h2>
1938 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&amp;action=edit&amp;section=2" title="Parser test script">edit</a>]</div><a name="Subheadline_1"></a><h3> Subheadline 1 </h3>
1939 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&amp;action=edit&amp;section=3" title="Parser test script">edit</a>]</div><a name="Skipping_a_level"></a><h5> Skipping a level </h5>
1940 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&amp;action=edit&amp;section=4" title="Parser test script">edit</a>]</div><a name="Skipping_a_level_2"></a><h6> Skipping a level </h6>
1941 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&amp;action=edit&amp;section=5" title="Parser test script">edit</a>]</div><a name="Headline_2"></a><h2> Headline 2 </h2>
1942 <p>Some text
1943 </p>
1944 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&amp;action=edit&amp;section=6" title="Parser test script">edit</a>]</div><a name="Another_headline"></a><h3>Another headline</h3>
1946 !! end
1948 # perl -e 'print "="x$_," Level $_ heading","="x$_,"\n" for 1..10'
1949 !! test
1950 Handling of sections up to level 6 and beyond
1951 !! input 
1952 = Level 1 Heading=
1953 == Level 2 Heading==
1954 === Level 3 Heading===
1955 ==== Level 4 Heading====
1956 ===== Level 5 Heading=====
1957 ====== Level 6 Heading======
1958 ======= Level 7 Heading=======
1959 ======== Level 8 Heading========
1960 ========= Level 9 Heading=========
1961 ========== Level 10 Heading==========
1962 !! result
1963 <table id='toc' class='toc'><tr><td><div id='toctitle'><h2>Table of contents</h2></div>
1964 <ul>
1965 <li class='toclevel-1'><a href="#Level_1_Heading"><span class="tocnumber">1</span> <span class="toctext">Level 1 Heading</span></a>
1966 <ul>
1967 <li class='toclevel-2'><a href="#Level_2_Heading"><span class="tocnumber">1.1</span> <span class="toctext">Level 2 Heading</span></a>
1968 <ul>
1969 <li class='toclevel-3'><a href="#Level_3_Heading"><span class="tocnumber">1.1.1</span> <span class="toctext">Level 3 Heading</span></a>
1970 <ul>
1971 <li class='toclevel-4'><a href="#Level_4_Heading"><span class="tocnumber">1.1.1.1</span> <span class="toctext">Level 4 Heading</span></a>
1972 <ul>
1973 <li class='toclevel-5'><a href="#Level_5_Heading"><span class="tocnumber">1.1.1.1.1</span> <span class="toctext">Level 5 Heading</span></a>
1974 <ul>
1975 <li class='toclevel-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>
1976 <li class='toclevel-6'><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>
1977 <li class='toclevel-6'><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>
1978 <li class='toclevel-6'><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>
1979 <li class='toclevel-6'><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>
1980 </ul>
1981 </li>
1982 </ul>
1983 </li>
1984 </ul>
1985 </li>
1986 </ul>
1987 </li>
1988 </ul>
1989 </li>
1990 </ul>
1991 </td></tr></table>
1992 <p><script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script>
1993 </p>
1994 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Parser test">edit</a>]</div><a name="Level_1_Heading"></a><h1> Level 1 Heading</h1>
1995 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Parser test">edit</a>]</div><a name="Level_2_Heading"></a><h2> Level 2 Heading</h2>
1996 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Parser test">edit</a>]</div><a name="Level_3_Heading"></a><h3> Level 3 Heading</h3>
1997 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Parser test">edit</a>]</div><a name="Level_4_Heading"></a><h4> Level 4 Heading</h4>
1998 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Parser test">edit</a>]</div><a name="Level_5_Heading"></a><h5> Level 5 Heading</h5>
1999 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Parser test">edit</a>]</div><a name="Level_6_Heading"></a><h6> Level 6 Heading</h6>
2000 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=7" title="Parser test">edit</a>]</div><a name=".3D_Level_7_Heading.3D"></a><h6>= Level 7 Heading=</h6>
2001 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=8" title="Parser test">edit</a>]</div><a name=".3D.3D_Level_8_Heading.3D.3D"></a><h6>== Level 8 Heading==</h6>
2002 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=9" title="Parser test">edit</a>]</div><a name=".3D.3D.3D_Level_9_Heading.3D.3D.3D"></a><h6>=== Level 9 Heading===</h6>
2003 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=10" title="Parser test">edit</a>]</div><a name=".3D.3D.3D.3D_Level_10_Heading.3D.3D.3D.3D"></a><h6>==== Level 10 Heading====</h6>
2005 !! end
2007 !! test
2008 Resolving duplicate section names
2009 !! options
2010 title=[[Parser test script]]
2011 !! input
2012 == Foo bar ==
2013 == Foo bar ==
2014 !! result
2015 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&amp;action=edit&amp;section=1" title="Parser test script">edit</a>]</div><a name="Foo_bar"></a><h2> Foo bar </h2>
2016 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&amp;action=edit&amp;section=2" title="Parser test script">edit</a>]</div><a name="Foo_bar_2"></a><h2> Foo bar </h2>
2018 !! end
2020 !! article
2021 Template:sections
2022 !! text
2023 ===Section 1===
2024 ==Section 2==
2025 !! endarticle
2027 !! test
2028 Template with sections, __NOTOC__
2029 !! options
2030 title=[[Parser test script]]
2031 !! input
2032 __NOTOC__
2033 ==Section 0==
2034 {{sections}}
2035 ==Section 4==
2036 !! result
2037 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&amp;action=edit&amp;section=1" title="Parser test script">edit</a>]</div><a name="Section_0"></a><h2>Section 0</h2>
2038 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Template:Sections&amp;action=edit&amp;section=1" title="Template:Sections">edit</a>]</div><a name="Section_1"></a><h3>Section 1</h3>
2039 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Template:Sections&amp;action=edit&amp;section=2" title="Template:Sections">edit</a>]</div><a name="Section_2"></a><h2>Section 2</h2>
2040 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&amp;action=edit&amp;section=2" title="Parser test script">edit</a>]</div><a name="Section_4"></a><h2>Section 4</h2>
2042 !! end
2044 !! test
2045 __NOEDITSECTION__ keyword
2046 !! input
2047 __NOEDITSECTION__
2048 ==Section 1==
2049 ==Section 2==
2050 !! result
2051 <a name="Section_1"></a><h2>Section 1</h2>
2052 <a name="Section_2"></a><h2>Section 2</h2>
2054 !! end
2056 !! test
2057 Link inside a section heading
2058 !! options
2059 title=[[Parser test script]]
2060 !! input
2061 ==Section with a [[Main Page|link]] in it==
2062 !! result
2063 <div class="editsection" style="float:right;margin-left:5px;">[<a href="/index.php?title=Parser_test_script&amp;action=edit&amp;section=1" title="Parser test script">edit</a>]</div><a name="Section_with_a_link_in_it"></a><h2>Section with a <a href="/wiki/Main_Page" title="Main Page">link</a> in it</h2>
2065 !! end
2068 !! test
2069 Bug 1219 URL next to image (good)
2070 !! input
2071 http://example.com [[Image:foobar.jpg]]
2072 !! result
2073 <p><a href="http://example.com" class='external free' title="http://example.com" rel="nofollow">http://example.com</a> <a href="/wiki/Image:Foobar.jpg" class="image" title="Image:foobar.jpg"><img src="/images/3/3a/Foobar.jpg" alt="Image:foobar.jpg" longdesc="/wiki/Image:Foobar.jpg" /></a>
2074 </p>
2075 !!end
2077 !! test
2078 Bug 1219 URL next to image (broken)
2079 !! input
2080 http://example.com[[Image:foobar.jpg]]
2081 !! result
2082 <p><a href="http://example.com" class='external free' title="http://example.com" rel="nofollow">http://example.com</a><a href="/wiki/Image:Foobar.jpg" class="image" title="Image:foobar.jpg"><img src="/images/3/3a/Foobar.jpg" alt="Image:foobar.jpg" longdesc="/wiki/Image:Foobar.jpg" /></a>
2083 </p>
2084 !!end
2086 !! test
2087 Bug 1186 news: in the middle of text
2088 !! input
2089 http://en.wikinews.org/wiki/Wikinews:Workplace
2090 !! result
2091 <p><a href="http://en.wikinews.org/wiki/Wikinews:Workplace" class='external free' title="http://en.wikinews.org/wiki/Wikinews:Workplace" rel="nofollow">http://en.wikinews.org/wiki/Wikinews:Workplace</a>
2092 </p>
2093 !!end
2096 !! test
2097 Namespaced link must have a title
2098 !! input
2099 [[Project:]]
2100 !! result
2101 <p>[[Project:]]
2102 </p>
2103 !!end
2105 !! test
2106 Namespaced link must have a title (bad fragment version)
2107 !! input
2108 [[Project:#fragment]]
2109 !! result
2110 <p>[[Project:#fragment]]
2111 </p>
2112 !!end
2115 !! test
2116 div with no attributes
2117 !! input
2118 <div>HTML rocks</div>
2119 !! result
2120 <div>HTML rocks</div>
2122 !! end
2124 !! test
2125 div with double-quoted attribute
2126 !! input
2127 <div id="rock">HTML rocks</div>
2128 !! result
2129 <div id="rock">HTML rocks</div>
2131 !! end
2133 !! test
2134 div with single-quoted attribute
2135 !! input
2136 <div id='rock'>HTML rocks</div>
2137 !! result
2138 <div id="rock">HTML rocks</div>
2140 !! end
2142 !! test
2143 div with unquoted attribute
2144 !! input
2145 <div id=rock>HTML rocks</div>
2146 !! result
2147 <div id="rock">HTML rocks</div>
2149 !! end
2151 !! test
2152 div with illegal double attributes
2153 !! input
2154 <div align="center" align="right">HTML rocks</div>
2155 !! result
2156 <div align="center">HTML rocks</div>
2158 !!end
2160 !! test
2161 DIV IN UPPERCASE
2162 !! input
2163 <DIV ALIGN="center">HTML ROCKS</DIV>
2164 !! result
2165 <div align="center">HTML ROCKS</div>
2167 !!end
2170 !! test
2171 text with amp in the middle of nowhere
2172 !! input
2173 Remember AT&T?
2174 !!result
2175 <p>Remember AT&amp;T?
2176 </p>
2177 !! end
2179 !! test
2180 text with character entity: eacute
2181 !! input
2182 I always thought &eacute; was a cute letter.
2183 !! result
2184 <p>I always thought &eacute; was a cute letter.
2185 </p>
2186 !! end
2188 !! test
2189 text with undefined character entity: xacute
2190 !! input
2191 I always thought &xacute; was a cute letter.
2192 !! result
2193 <p>I always thought &amp;xacute; was a cute letter.
2194 </p>
2195 !! end
2199 ### Media links
2202 !! test
2203 Media link
2204 !! input
2205 [[Media:Foobar.jpg]]
2206 !! result
2207 <p><a href="/images/3/3a/Foobar.jpg" class='internal' title="Foobar.jpg">Media:Foobar.jpg</a>
2208 </p>
2209 !! end
2211 !! test
2212 Media link with text
2213 !! input
2214 [[Media:Foobar.jpg|A neat file to look at]]
2215 !! result
2216 <p><a href="/images/3/3a/Foobar.jpg" class='internal' title="Foobar.jpg">A neat file to look at</a>
2217 </p>
2218 !! end
2220 # FIXME: this is still bad HTML tag nesting
2221 !! test
2222 Media link with nasty text
2223 !! input
2224 [[Media:Foobar.jpg|Safe Link<div style=display:none>" onmouseover="alert(document.cookie)" onfoo="</div>]]
2225 !! result
2226 <p><a href="/images/3/3a/Foobar.jpg" class='internal' title="Foobar.jpg">Safe Link<div style="display:none">" onmouseover="alert(document.cookie) onfoo="</div></a>
2227 </p>
2228 !! end
2231 !! test
2232 Character reference normalization in link text (bug 1938)
2233 !! input
2234 [[Main Page|this&that]]
2235 !! result
2236 <p><a href="/wiki/Main_Page" title="Main Page">this&amp;that</a>
2237 </p>
2238 !!end
2240 !! test
2241 Empty attribute crash test (bug 2067)
2242 !! input
2243 <font color="">foo</font>
2244 !! result
2245 <p><font color="">foo</font>
2246 </p>
2247 !! end
2249 !! test
2250 Empty attribute crash test single-quotes (bug 2067)
2251 !! input
2252 <font color=''>foo</font>
2253 !! result
2254 <p><font color="">foo</font>
2255 </p>
2256 !! end
2258 !! test
2259 Attribute test: equals, then nothing
2260 !! input
2261 <font color=>foo</font>
2262 !! result
2263 <p><font>foo</font>
2264 </p>
2265 !! end
2267 !! test
2268 Attribute test: unquoted value
2269 !! input
2270 <font color=x>foo</font>
2271 !! result
2272 <p><font color="x">foo</font>
2273 </p>
2274 !! end
2276 !! test
2277 Attribute test: unquoted but illegal value (hash)
2278 !! input
2279 <font color=#x>foo</font>
2280 !! result
2281 <p><font color="#x">foo</font>
2282 </p>
2283 !! end
2285 !! test
2286 Attribute test: no value
2287 !! input
2288 <font color>foo</font>
2289 !! result
2290 <p><font color="color">foo</font>
2291 </p>
2292 !! end
2294 !! test
2295 Bug 2095: link with three closing brackets
2296 !! input
2297 [[Main Page]]]
2298 !! result
2299 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>]
2300 </p>
2301 !! end
2303 !! test
2304 Bug 2095: link with pipe and three closing brackets
2305 !! input
2306 [[Main Page|link]]]
2307 !! result
2308 <p><a href="/wiki/Main_Page" title="Main Page">link</a>]
2309 </p>
2310 !! end
2312 TODO:
2313 more images
2314 more tables
2315 math
2316 character entities
2317 and much more