# MediaWiki Parser test cases # see also http://meta.wikimedia.org/wiki/Parser_testing !! 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 ### ### External links ### !! test External links: non-bracketed !! input Non-bracketed: http://example.com !! resultNon-bracketed: http://example.com
!! end !! test External links: numbered !! input Numbered: [http://example.com] !! resultNumbered: [1] (http://example.com)
!!end !! test External links: specified text !! input Specified text: [http://example.com link] !! resultSpecified text: link (http://example.com)
!!end !! test External links: trail !! input Trail (not sure if this is meant to work): [http://example.com link]s !! resultTrail (not sure if this is meant to work): links (http://example.com)
!! 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[1] (http://example.com/1$2345)
!!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 !! resultExternal 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 !! resultLink 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 (http://example.com/thing?url=http://example.com)
!! 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 (ftp://example.com?url=http://example.com)
!!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] !! resultja-style clickable images: (http://example.com)
!!end !! test External links: raw ampersand !! input Old & use: http://x&y !! resultOld & use: http://x&y
!! end !! test External links: www.jpeg.org (bug 554) !! input http://www.jpeg.org !!result !! 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 ### ### Internal links ### !! article Main Page !! text blah blah !! endarticle !! 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]] !! resultxxxmain 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 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 !! article Category:MediaWiki User's Guide !! text blah !! endarticle !! test Link to category !! input [[:Category:MediaWiki User's Guide]] !! resultCategory:MediaWiki User's Guide
!! end !! test Link to image page !! input [[:Image:Ncwikicol.png]] !! result !! end !! test Plain link to URL !! input [[http://www.example.org]] !! result[[1] (http://www.example.org)]
!! end !! test Piped link to URL !! input Piped link to URL: [[http://www.example.org|an example URL]] !! resultPiped link to URL: an example URL
!! end !! test BUG 2: [[page|http://url/]] should link to page, not http://url/ !! input [[Main Page|http://url/]] !! result !! end ### ### Interwiki links ### !! test Inline interwiki link !! input [[MeatBall:SoftSecurity]] !! result !! end ### ### Images ### !! test [[ ## ## XHTML tidiness ### !! test1
2
3
MediaWiki
!! end ### ### Magic links ### !! test Magic links: internal link to RFC !! input [[RFC 123]] !! result !! end !! test Magic links: ISBN !! input ISBN 0-306-40615-2 !! result !! end ### ### Nonexistant template ### !! test Nonexistant template !! input {{thistemplatedoesnotexist}} !! resultTemplate:Thistemplatedoesnotexist
!! end ### ### Templates #### !! 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 !! test Magic variable as template parameter !! input {{paramtest|param={{SITENAME}}}} !! resultThis is a test template with parameter MediaWiki
!! end !! article Template:linktest !! text [[{{{param}}}|foo]] !! endarticle XXX this works outside of parser testing !! test !! disabled Template parameter as link source !! input {{linktest|param=Main Page}} !! result !! 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: subst magic variables !! options pst !! input {{subst:SITENAME}} !! result MediaWiki !! end ### ### Message transform tests ### !! test message transform: magic variables !! options msg !! input {{SITENAME}} !! result MediaWiki !! end !! test message transform: should transform wiki markup !! options msg !! input ''test'' !! result ''test'' !! end TODO: more templates tables images subpages pre-save transform and message transform checking and much more