# 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 # disabled do not run test # # 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 ### ### Basic tests ### !! test Blank input !! input !! result !! end !! test Simple paragraph !! input This is a simple paragraph. !! result
This is a simple paragraph.
!! end !! test Simple list !! input * Item 1 * Item 2 !! result* This is not an unordered list item.
!! end !! testLorem ipsum dolor sed abit. sed nullum. :and a colon
!! end !! test nowiki 3 !! input :There is not nowiki. :There isasdf!! end !! test Comment test 2 !! input asdf jkl !! result
asdf jkl
!! end !! test Comment test 3 !! input asdf jkl !! resultasdf jkl
!! end !! test Comment test 4 !! input asdfjkl !! resultasdfjkl
!! end !! test Comment spacing !! input a b c !! resulta
b
c
!! end !! test Comment whitespace !! input !! result !! end !! test Comment semantics and delimiters !! input !! result !! end !! test Comment semantics and delimiters, redux !! input !! result !! end !! test Comment semantics and delimiters: directors cut !! input --> !! result-->
!! end !! test Comment semantics: nesting !! input --> !! result-->
!! end ### ### Preformatted text ### !! test Preformatted text !! input This is some Preformatted text With ''italic'' And '''bold''' And a [[Main Page|link]] !! resultThis is some Preformatted text With italic And bold And a link!! end !! test
withinside (compatibility with 1.6 and earlier) !! input !! result <b> <cite> <em>!! end ### ### Definition lists ### !! test Simple definition !! input ; name : Definition !! result!! end !! test Simple definition !! input : Indented text !! result
- name
- Definition
!! end !! test Definition list with no space !! input ;name:Definition !! result
- Indented text
!!end !! test Definition list with URL link !! input ; http://example.com/ : definition !! result
- name
- Definition
!! end !! test Definition list with bracketed URL link !! input ;[http://www.example.com/ Example]:Something about it !! result
- http://example.com/
- definition
!! end !! test Definition list with wikilink containing colon !! input ; [[Help:FAQ]]: The least-read page on Wikipedia !! result
- Example
- Something about it
!! end # At Brion's and JeLuF's insistence... :) !! test Definition list with wikilink containing colon !! input ; news:alt.wikipedia.rox: This isn't even a real newsgroup! !! result
- Help:FAQ
- The least-read page on Wikipedia
!! end !! test Malformed definition list with colon !! input ; news:alt.wikipedia.rox -- don't crash or enter an infinite loop !! result
- news:alt.wikipedia.rox
- This isn't even a real newsgroup!
!! end !! test Definition lists: colon in external link text !! input ; [http://www.wikipedia2.org/ Wikipedia : The Next Generation]: OK, I made that up !! result
- news:alt.wikipedia.rox -- don't crash or enter an infinite loop
!! end ### ### External links ### !! test External links: non-bracketed !! input Non-bracketed: http://example.com !! result
- Wikipedia : The Next Generation
- OK, I made that up
Non-bracketed: http://example.com
!! end !! test External links: numbered !! input Numbered: [http://example.com] Numbered: [http://example.net] Numbered: [http://example.org] !! resultNumbered: [1] Numbered: [2] Numbered: [3]
!!end !! test External links: specified text !! input Specified text: [http://example.com link] !! resultSpecified text: link
!!end !! test External links: trail !! input Linktrails should not work for external links: [http://example.com link]s !! resultLinktrails should not work for external links: links
!! end !! test External links: dollar sign in URL !! input http://example.com/1$2345 !! result !! end !! test External links: dollar sign in URL (named) !! input [http://example.com/1$2345] !! result !!end !! test External links: open square bracket forbidden in URL (bug 4377) !! input http://example.com/1[2345 !! resulthttp://example.com/1[2345
!! end !! test External links: open square bracket forbidden in URL (named) (bug 4377) !! input [http://example.com/1[2345] !! result !!end !! test External image !! input External image: http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png !! resultExternal image:
!! end !! test External image from https !! input External image from https: https://meta.wikimedia.org/upload/f/f1/Ncwikicol.png !! result![]()
External image from https:
!! 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![]()
Link to non-http image, no img tag: ftp://example.com/test.jpg
!! end !! test External links: terminating separator !! input Terminating separator: http://example.com/thing, !! resultTerminating separator: http://example.com/thing,
!! end !! test External links: intervening separator !! input Intervening separator: http://example.com/1,2,3 !! resultIntervening separator: http://example.com/1,2,3
!! 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] !! resultOld bug with URL in query: link
!! 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] !! resultAnd again with mixed protocols: link
!!end !! test External links: URL in text !! input URL in text: [http://example.com http://example.com] !! resultURL in text: http://example.com
!! end !! test External links: Clickable images !! input ja-style clickable images: [http://example.com http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png] !! result !!end !! test External links: raw ampersand !! input Old & use: http://x&y !! resultOld & use: http://x&y
!! end !! test External links: encoded ampersand !! input Old & use: http://x&y !! resultOld & use: http://x&y
!! end !! test External links: encoded equals (bug 6102) !! input http://example.com/?foo=bar !! result !! end !! test External links: [raw ampersand] !! input Old & use: [http://x&y] !! resultOld & use: [1]
!! end !! test External links: [encoded ampersand] !! input Old & use: [http://x&y] !! resultOld & use: [1]
!! end !! test External links: [encoded equals] (bug 6102) !! input [http://example.com/?foo=bar] !! result !! end !! test External links: www.jpeg.org (bug 554) !! input http://www.jpeg.org !!result !! 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 !! end !! test BUG 361: URL inside bracketed URL !! input [http://www.example.com/foo http://www.example.com/bar] !! result !! end !! test BUG 361: URL within URL, not bracketed !! input http://www.example.com/foo?=http://www.example.com/bar !! resulthttp://www.example.com/foo?=http://www.example.com/bar
!! end !! test BUG 289: ">"-token in URL-tail !! input http://www.example.com/!! result http://www.example.com/<hello>
!!end !! test BUG 289: literal ">"-token in URL-tail !! input http://www.example.com/html !! result !!end !! test BUG 289: ">"-token in bracketed URL !! input [http://www.example.com/stuff] !! result !!end !! test BUG 289: literal ">"-token in bracketed URL !! input [http://www.example.com/html stuff] !! result !!end !! test BUG 289: literal double quote at end of URL !! input http://www.example.com/"hello" !! result http://www.example.com/"hello"
!!end !! test BUG 289: literal double quote in bracketed URL !! input [http://www.example.com/"hello" stuff] !! result !!end !! test External links: invalid character Fixme: the missing char seems to have gone missing !! options disabled !! input [http://www.example.com test] !! result[http://www.example.com test]
!! end !! test External links: multiple legal whitespace is fine, Magnus. Don't break it please. (bug 5081) !! input [http://www.example.com test] !! result !! end !! test External links: wiki links within external link (Bug 3695) !! input [http://example.com [[wikilink]] embedded in ext link] !! result !! end !! test BUG 787: Links with one slash after the url protocol are invalid !! input http:/example.com [http:/example.com title] !! resulthttp:/example.com
[http:/example.com title]
!! end !! test Bug 2702: Mismatched , and 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'''''] !! resulttext text Something in italic Something mixed, even bold Now both
!! end !! test Bug 4781: %26 in URL !! input http://www.example.com/?title=AT%26T !! resulthttp://www.example.com/?title=AT%26T
!! end !! test Bug 4781, 5267: %26 in URL !! input http://www.example.com/?title=100%25_Bran !! resulthttp://www.example.com/?title=100%25_Bran
!! end !! test Bug 4781, 5267: %28, %29 in URL !! input http://www.example.com/?title=Ben-Hur_%281959_film%29 !! resulthttp://www.example.com/?title=Ben-Hur_%281959_film%29
!! end !! test Bug 4781: %26 in autonumber URL !! input [http://www.example.com/?title=AT%26T] !! result !! end !! test Bug 4781, 5267: %26 in autonumber URL !! input [http://www.example.com/?title=100%25_Bran] !! result !! end !! test Bug 4781, 5267: %28, %29 in autonumber URL !! input [http://www.example.com/?title=Ben-Hur_%281959_film%29] !! result !! end !! test Bug 4781: %26 in bracketed URL !! input [http://www.example.com/?title=AT%26T link] !! result !! end !! test Bug 4781, 5267: %26 in bracketed URL !! input [http://www.example.com/?title=100%25_Bran link] !! result !! end !! test Bug 4781, 5267: %28, %29 in bracketed URL !! input [http://www.example.com/?title=Ben-Hur_%281959_film%29 link] !! result !! end !! test External link containing double-single-quotes in text '' (bug 4598 sanity check) !! input Some [http://example.com/ pretty ''italics'' and stuff]! !! resultSome pretty italics and stuff!
!! 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]!'' !! resultSome pretty italics and stuff!
!! end ### ### Quotes ### !! test Quotes !! input Normal text. '''Bold text.''' Normal text. ''Italic text.'' Normal text. '''''Bold italic text.''''' Normal text. !!resultNormal text. Bold text. Normal text. Italic text.
Normal text. Bold italic text. Normal text.
!! 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. '''This year''''s election ''should'' beat '''last year''''s. ''Tom'''s car is bigger than ''Susan'''s. !! resultBold 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.
This year's election should beat last year's.
Toms car is bigger than Susans.
!! end ### ### Tables ### ### some content taken from http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide:_Using_tables ### # This should not produceas
# 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
caption
!! test A table with nothing but a caption !! input {| |+ caption |} !! result!! end !! test Simple table !! input {| | 1 || 2 |- | 3 || 4 |} !! result
caption !! 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
1 2 3 4 !! end !! test Table rowspan !! input {| align=right 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
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 !! end !! test Nested table !! input {| border=1 | α | {| bgcolor=#ABCDEF border=2 |nested |- |table |} |the original table again |} !! result
Cell 1, row 1 Cell 2, row 1 (and 2) Cell 3, row 1 Cell 1, row 2 Cell 3, row 2 !! end !! test Invalid attributes in table cell (bug 1830) !! input {| |Cell:|broken |} !! result
α
nested table the original table again !! end # FIXME: this one has incorrect tag nesting still. !! test Table security: embedded pipes (http://mail.wikipedia.org/pipermail/wikitech-l/2006-April/034637.html) !! input {| | |[ftp://|x||]" onmouseover="alert(document.cookie)">test !! result
broken !! end ### ### Internal links ### !! test Plain link, capitalized !! input [[Main Page]] !! result !! end !! test Plain link, uncapitalized !! input [[main Page]] !! result !! end !! test Piped link !! input [[Main Page|The Main Page]] !! result !! end !! test Broken link !! input [[Zigzagzogzagzig]] !! result !! end !! test Link with prefix !! input xxx[[main Page]], xxx[[Main Page]], Xxx[[main Page]] XXX[[main Page]], XXX[[Main Page]] !! result
[1] " onmouseover="alert(document.cookie)">test xxxmain Page, xxxMain Page, Xxxmain Page XXXmain Page, XXXMain Page
!! end !! test Link with suffix !! input [[Main Page]]xxx, [[Main Page]]XXX !! result !! end !! test Link with 3 brackets !! input [[[main page]]] !! result[[[main page]]]
!! end !! test Piped link with 3 brackets !! input [[[main page|the main page]]] !! result[[[main page|the main page]]]
!! end !! test Link with multiple pipes !! input [[Main Page|The|Main|Page]] !! result !! end !! test Link to namespaces !! input [[Talk:Parser testing]], [[Meta:Disclaimers]] !! resultTalk:Parser testing, Meta:Disclaimers
!! end !! test Piped link to namespace !! input [[Meta:Disclaimers|The disclaimers]] !! result !! end !! test Link containing } !! input [[Usually caused by a typo (oops}]] !! result[[Usually caused by a typo (oops}]]
!! end !! test Link containing % (not as a hex sequence) !! input [[7% Solution]] !! result !! end !! test Link containing % as a single hex sequence interpreted to char !! input [[7%25 Solution]] !! result !!end !! test Link containing % as a double hex sequence interpreted to hex sequence !! input [[7%2525 Solution]] !! result[[7%2525 Solution]]
!!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 !! end !! test Link containing "<#" and ">#" as a hex sequences !! input [[%3c%23]][[%3e%23]] !! result[[%3c%23]][[%3e%23]]
!! end !! test Link containing double-single-quotes '' (bug 4598) !! input [[Lista d''e paise d''o munno]] !! result !! end !! test Link containing double-single-quotes '' in text (bug 4598 sanity check) !! input Some [[Link|pretty ''italics'' and stuff]]! !! resultSome pretty italics and stuff!
!! end !! test Link containing double-single-quotes '' in text embedded in italics (bug 4598 sanity check) !! input ''Some [[Link|pretty ''italics'' and stuff]]! !! resultSome pretty italics and stuff!
!! end !! test Plain link to URL !! input [[http://www.example.org]] !! result[[1]]
!! 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: #Piped link to URL: an example URL #
# 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.org|an example URL]] !! resultPiped link to URL: [example URL]
!! end !! test BUG 2: [[page|http://url/]] should link to page, not http://url/ !! input [[Main Page|http://url/]] !! result !! end !! test BUG 337: Escaped self-links should be bold !! options title=[[Bug462]] !! input [[Bug462]] [[Bug462]] !! resultBug462 Bug462
!! end !! test Self-link to section should not be bold !! options title=[[Main Page]] !! input [[Main Page#section]] !! result !! end !! testinside a link !! input [[Main Page ]] [[Main Page|the main page[it's not very good] ]] !! result[[Main Page]] the main page [it's not very good]
!! end ### ### Interwiki links (see maintenance/interwiki.sql) ### !! test Inline interwiki link !! input [[MeatBall:SoftSecurity]] !! result !! end !! test Inline interwiki link with empty title (bug 2372) !! input [[MeatBall:]] !! result !! end !! test Interwiki link encoding conversion (bug 1636) !! input *[[Wikipedia:ro:Olteniţa]] *[[Wikipedia:ro:Olteniţa]] !! result !! end !! test Interwiki link with fragment (bug 2130) !! input [[MeatBall:SoftSecurity#foo]] !! result !! end ## ## XHTML tidiness ### !! test
to
!! input 1
2
3 !! result1
!! end !! test Incorrecly removing closing slashes from correctly formed XHTML !! input
2
3
!! result!! end !! test Failing to transform badly formed HTML into correct XHTML !! input
!! result!!end !! test Horizontal ruler (should it add that extra space?) !! input
foo
bar !! result
foo
bar !! end ### ### Block-level elements ### !! test Common list !! input *Common list * item 2 *item 3 !! result!! end !! test Numbered list !! input #Numbered list #item 2 # item 3 !! result
- Common list
- item 2
- item 3
!! 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 !! result
- Numbered list
- item 2
- item 3
!! end !! test List items are not parsed correctly following a
- 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
block (bug 785) !! input *foo*bar* zar !! result!! end ### ### Magic Words ### !! test Magic Word: {{CURRENTDAY}} !! input {{CURRENTDAY}} !! result
foo bar- zar
1
!! end !! test Magic Word: {{CURRENTDAY2}} !! input {{CURRENTDAY2}} !! result01
!! end !! test Magic Word: {{CURRENTDAYNAME}} !! input {{CURRENTDAYNAME}} !! resultThursday
!! end !! test Magic Word: {{CURRENTDOW}} !! input {{CURRENTDOW}} !! result4
!! end !! test Magic Word: {{CURRENTMONTH}} !! input {{CURRENTMONTH}} !! result01
!! end !! test Magic Word: {{CURRENTMONTHABBREV}} !! input {{CURRENTMONTHABBREV}} !! resultJan
!! end !! test Magic Word: {{CURRENTMONTHNAME}} !! input {{CURRENTMONTHNAME}} !! resultJanuary
!! end !! test Magic Word: {{CURRENTMONTHNAMEGEN}} !! input {{CURRENTMONTHNAMEGEN}} !! resultJanuary
!! end !! test Magic Word: {{CURRENTTIME}} !! input {{CURRENTTIME}} !! result00:02
!! end !! test Magic Word: {{CURRENTWEEK}} (@bug 4594) !! input {{CURRENTWEEK}} !! result1
!! end !! test Magic Word: {{CURRENTYEAR}} !! input {{CURRENTYEAR}} !! result1970
!! end !! test Magic Word: {{FULLPAGENAME}} !! options title=[[User:Ævar Arnfjörð Bjarmason]] !! input {{FULLPAGENAME}} !! resultUser:Ævar Arnfjörð Bjarmason
!! end !! test Magic Word: {{FULLPAGENAMEE}} !! options title=[[User:Ævar Arnfjörð Bjarmason]] !! input {{FULLPAGENAMEE}} !! resultUser:%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
!! end !! test Magic Word: {{NAMESPACE}} !! options title=[[User:Ævar Arnfjörð Bjarmason]] disabled # FIXME !! input {{NAMESPACE}} !! resultUser
!! end !! test Magic Word: {{NAMESPACEE}} !! options title=[[User:Ævar Arnfjörð Bjarmason]] disabled # FIXME !! input {{NAMESPACEE}} !! resultUser
!! end !! test Magic Word: {{NUMBEROFARTICLES}} !! input {{NUMBEROFARTICLES}} !! result1
!! end !! test Magic Word: {{NUMBEROFFILES}} !! input {{NUMBEROFFILES}} !! result1
!! end !! test Magic Word: {{PAGENAME}} !! options title=[[User:Ævar Arnfjörð Bjarmason]] disabled # FIXME !! input {{PAGENAME}} !! resultÆvar Arnfjörð Bjarmason
!! end !! test Magic Word: {{PAGENAMEE}} !! options title=[[User:Ævar Arnfjörð Bjarmason]] !! input {{PAGENAMEE}} !! resultUser:%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
!! end !! test Magic Word: {{REVISIONID}} !! input {{REVISIONID}} !! result1337
!! end !! test Magic Word: {{SCRIPTPATH}} !! input {{SCRIPTPATH}} !! result/
!! end !! test Magic Word: {{SERVER}} !! input {{SERVER}} !! result !! end !! test Magic Word: {{SERVERNAME}} !! input {{SERVERNAME}} !! resultBritney Spears
!! end !! test Magic Word: {{SITENAME}} !! input {{SITENAME}} !! resultMediaWiki
!! end !! test Namespace 1 {{ns:1}} !! input {{ns:1}} !! resultTalk
!! end !! test Namespace 1 {{ns:01}} !! input {{ns:01}} !! resultTalk
!! 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}} !! resultSpecial
!! end !! test Namespace Project {{ns:User}} !! input {{ns:User}} !! resultUser
!! end ### ### Magic links ### !! test Magic links: internal link to RFC (bug 479) !! input [[RFC 123]] !! result !! end !! test Magic links: RFC (bug 479) !! input RFC 822 !! result !! end !! test Magic links: ISBN (bug 1937) !! input ISBN 0-306-40615-2 !! result !! end !! test Magic links: PMID incorrectly converts space to underscore !! input PMID 1234 !! result !! end ### ### Templates #### !! test Nonexistant template !! input {{thistemplatedoesnotexist}} !! resultTemplate:Thistemplatedoesnotexist
!! end !! article Template:test !! text This is a test template !! endarticle !! test Simple template !! input {{test}} !! resultThis is a test template
!! end !! test Template with explicit namespace !! input {{Template:test}} !! resultThis is a test template
!! end !! article Template:paramtest !! text This is a test template with parameter {{{param}}} !! endarticle !! test Template parameter !! input {{paramtest|param=foo}} !! resultThis is a test template with parameter foo
!! end !! article Template:paramtestnum !! text [[{{{1}}}|{{{2}}}]] !! endarticle !! test Template unnamed parameter !! input {{paramtestnum|Main Page|the main page}} !! result !! 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(test)
!! end !! test Template with template name as argument !! input {{templateasargtest|templ=simple}} !! result(test)
!! end !! test Template with template name as argument (2) !! input {{templateasargtest2|templ=templatesimple}} !! result(test)
!! end !! article Template:templateasargtestdefault !! text {{{{{templ|templatesimple}}}}} !! endarticle !! article Template:templa !! text '''templ''' !! endarticle !! test Template with default value !! input {{templateasargtestdefault}} !! result(test)
!! end !! test Template with default value (value set) !! input {{templateasargtestdefault|templ=templa}} !! resulttempl
!! end !! test Template redirect !! input {{templateredirect}} !! result(test)
!! end !! test Template with argument in separate line !! input {{ templateasargtest | templ = simple }} !! result(test)
!! end !! test Template with complex template as argument !! input {{paramtest| param ={{ templateasargtest | templ = simple }}}} !! resultThis is a test template with parameter (test)
!! end !! test Template with thumb image (wiht link in description) !! input {{paramtest| param =[[Image:noimage.png|thumb|[[no link|link]] [[no link|caption]]]]}} !! result This is a test template with parameter !! end !! article Template:complextemplate !! text {{{1}}} {{paramtest| param ={{{param}}}}} !! endarticle !! test Template with complex arguments !! input {{complextemplate| param ={{ templateasargtest | templ = simple }}|[[Template:complextemplate|link]]}} !! resultlink This is a test template with parameter (test)
!! end !! test BUG 553: link with two variables in a piped link !! input {| |[[{{{1}}}|{{{2}}}]] |} !! result!! end !! test Magic variable as template parameter !! input {{paramtest|param={{SITENAME}}}} !! result
[[{{{1}}}|{{{2}}}]] This is a test template with parameter MediaWiki
!! end !! article Template:linktest !! text [[{{{param}}}|link]] !! endarticle !! test Template parameter as link source !! input {{linktest|param=Main Page}} !! result !! end !!article Template:paramtest2 !! text including another template, {{paramtest|param={{{arg}}}}} !! endarticle !! test Template passing argument to another template !! input {{paramtest2|arg='hmm'}} !! resultincluding another template, This is a test template with parameter 'hmm'
!! end !! article Template:Linktest2 !! text Main Page !! endarticle !! test Template as link source !! input [[{{linktest2}}]] !! result !! end !! article Template:loop1 !! text {{loop2}} !! endarticle !! article Template:loop2 !! text {{loop1}} !! endarticle !! test Template infinite loop !! input {{loop1}} !! result{{loop1}}
!! end !! test Template from main namespace !! input {{:Main Page}} !! resultblah blah
!! 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}} !! resultfoo
!! end !! test BUG 523: Template shouldn't eat newline (or add an extra one before table) !! input foo {{table}} !! result
1 2 3 4 foo
!! end !! test BUG 41: Template parameters shown as broken links !! input {{{parameter}}} !! result
1 2 3 4 {{{parameter}}}
!! end !! article Template:MSGNW test !! text ''None'' of '''this''' should be * interepreted 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''None'' of '''this''' should be * interepreted but rather passed unmodified {{test}}
!! end !! test int keyword !! input {{int:youhavenewmessages|lots of money|not!}} !! resultYou have lots of money (not!).
!! end !! article Template:Includes !! text Foozar bar !! endarticle !! testand being included !! input {{Includes}} !! result Foobar
!! end !! article Template:Includes2 !! textFoo bar !! endarticle !! testbeing included !! input {{Includes2}} !! result Foo
!! end !! article Template:Includes3 !! textFoo barzar !! endarticle !! testand being included !! input {{Includes3}} !! result Foo
!! end !! testand on a page !! input Foo zar bar !! resultFoozar
!! end !! teston a page !! input Foo bar !! resultFoobar
!! 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: nonexistant 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'''not wiki''' !! endarticle !! test pre-save transform: nowiki in subst (bug 1188) !! options pst !! input {{subst:nowikitest}} !! result'''not wiki''' !! end !! article Template:commenttest !! text This template has in it. !! endarticle !! test pre-save transform: comment in subst (bug 1936) !! options pst !! input {{subst:commenttest}} !! result This template has in it. !! end !! article Template:dangerous !!text Oh no !!endarticle !!test (confirming safety of fix for subst bug 1936) !! input {{Template:dangerous}} !! resultOh no
!! end !! test pre-save transform: comment containing gallery (bug 5024) !! options pst !! input !!result !!end !! test pre-save transform: comment containing extension !! options pst !! input !!result !!end !! test pre-save transform: comment containing nowiki !! options pst !! input !!result !!end !! test pre-save transform: comment containing math !! options pst !! input !!result !!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 ### ### Images ### !! test Simple image !! input [[Image:foobar.jpg]] !! result !! end !! test Right-aligned image !! input [[Image:foobar.jpg|right]] !! result !! end !! test Image with caption !! input [[Image:foobar.jpg|right|Caption text]] !! result !! end !! test Image with frame and link !! input [[Image:Foobar.jpg|frame|left|This is a test image [[Main Page]]]] !! result!! end !! test Link to image page- image page normally doesn't exists, hence edit link TODO: Add test with existing image page #
This is a test image Main PageImage:test !! input [[:Image:test]] !! result
!! end !! test Frameless image caption with a free URL !! input [[Image:foobar.jpg|http://example.com]] !! result !! end !! test Thumbnail image caption with a free URL !! input [[Image:foobar.jpg|thumb|http://example.com]] !! result !! end !! test BUG 1887: A ISBN with a thumbnail !! input [[Image:foobar.jpg|thumb|ISBN 12354]] !! result !! end !! test BUG 1887: A RFC with a thumbnail !! input [[Image:foobar.jpg|thumb|This is RFC 12354]] !! result!! end !! test BUG 1887: A mailto link with a thumbnail !! input [[Image:foobar.jpg|thumb|Please mailto:nobody@example.com]] !! result
This is RFC 12354!! end !! test BUG 1887: A
Please mailto:nobody@example.com