* This is not an unordered list item.
!! end
!! test
spacing
!! input
Lorem ipsum dolor
sed abit.
sed nullum.
:and a colon
!! result
Lorem ipsum dolor
sed abit.
sed nullum.
:and a colon
!! end
!! test
nowiki 3
!! input
:There is not nowiki.
:There is nowiki.
#There is not nowiki.
#There is nowiki.
*There is not nowiki.
*There is nowiki.
!! result
- There is not nowiki.
- There is nowiki.
- There is not nowiki.
- There is nowiki.
- There is not nowiki.
- There is nowiki.
!! end
###
### Comments
###
!! test
Comment test 1
!! input
asdf
!! result
asdf
!! end
!! test
Comment test 2
!! input
asdf
jkl
!! result
asdf
jkl
!! end
!! test
Comment test 3
!! input
asdf
jkl
!! result
asdf
jkl
!! end
!! test
Comment test 4
!! input
asdfjkl
!! result
asdfjkl
!! end
!! test
Comment spacing
!! input
a
b
c
!! result
a
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
!! test
Comment semantics: unclosed comment at end
!! input
'''This year''''s election ''should'' beat '''last year''''s.
''Tom'''s car is bigger than ''Susan'''s.
!! result
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.
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 produce as
# 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
!! 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
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
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
Cell 1, row 1
| Cell 2, row 1 (and 2)
| Cell 3, row 1
|
Cell 1, row 2
| Cell 3, row 2
|
!! end
!! test
Nested table
!! input
{| border=1
| α
|
{| bgcolor=#ABCDEF border=2
|nested
|-
|table
|}
|the original table again
|}
!! result
α
|
| the original table again
|
!! end
!! test
Invalid attributes in table cell (bug 1830)
!! input
{|
|Cell:|broken
|}
!! result
!! end
# FIXME: this one has incorrect tag nesting still.
!! test
TODO: Table security: embedded pipes (http://mail.wikipedia.org/pipermail/wikitech-l/2006-April/034637.html)
!! input
{|
| |[ftp://|x||]" onmouseover="alert(document.cookie)">test
!! result
[1] | " onmouseover="alert(document.cookie)">test
|
!! end
###
### Internal links
###
!! test
Plain link, capitalized
!! input
[[Main Page]]
!! result
Main Page
!! end
!! test
Plain link, uncapitalized
!! input
[[main Page]]
!! result
main Page
!! end
!! test
Piped link
!! input
[[Main Page|The Main Page]]
!! result
The Main Page
!! end
!! test
Broken link
!! input
[[Zigzagzogzagzig]]
!! result
Zigzagzogzagzig
!! end
!! test
Link with prefix
!! input
xxx[[main Page]], xxx[[Main Page]], Xxx[[main Page]] XXX[[main Page]], XXX[[Main Page]]
!! result
xxxmain Page, xxxMain Page, Xxxmain Page XXXmain Page, XXXMain Page
!! end
!! test
Link with suffix
!! input
[[Main Page]]xxx, [[Main Page]]XXX
!! result
Main Pagexxx, Main PageXXX
!! 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
The|Main|Page
!! end
!! test
Link to namespaces
!! input
[[Talk:Parser testing]], [[Meta:Disclaimers]]
!! result
Talk:Parser testing, Meta:Disclaimers
!! end
!! test
Piped link to namespace
!! input
[[Meta:Disclaimers|The disclaimers]]
!! result
The disclaimers
!! 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
7% Solution
!! end
!! test
Link containing % as a single hex sequence interpreted to char
!! input
[[7%25 Solution]]
!! result
7% Solution
!!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
TODO: Link containing double-single-quotes '' (bug 4598)
!! input
[[Lista d''e paise d''o munno]]
!! result
Lista d''e paise d''o munno
!! end
!! test
Link containing double-single-quotes '' in text (bug 4598 sanity check)
!! input
Some [[Link|pretty ''italics'' and stuff]]!
!! result
Some 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]]!
!! result
Some 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]]
!! result
Piped 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
http://url/
!! end
!! test
BUG 337: Escaped self-links should be bold
!! options
title=[[Bug462]]
!! input
[[Bug462]] [[Bug462]]
!! result
Bug462 Bug462
!! end
!! test
Self-link to section should not be bold
!! options
title=[[Main Page]]
!! input
[[Main Page#section]]
!! result
Main Page#section
!! end
!! test
inside 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
MeatBall:SoftSecurity
!! end
!! test
Inline interwiki link with empty title (bug 2372)
!! input
[[MeatBall:]]
!! result
MeatBall:
!! 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
MeatBall:SoftSecurity#foo
!! end
##
## XHTML tidiness
###
!! test
to
!! input
1
2
3
!! result
1
2
3
!! end
!! test
Incorrecly removing closing slashes from correctly formed XHTML
!! input
!! 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
- Common list
- item 2
- item 3
!! end
!! test
Numbered list
!! input
#Numbered list
#item 2
# item 3
!! result
- Numbered 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
- Mixed list
- with numbers
- 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
!! end
!! test
List items are not parsed correctly following a block (bug 785)
!! input
* foo
* bar
* zar
!! result
!! end
###
### Magic Words
###
!! test
Magic Word: {{CURRENTDAY}}
!! input
{{CURRENTDAY}}
!! result
1
!! end
!! test
Magic Word: {{CURRENTDAY2}}
!! input
{{CURRENTDAY2}}
!! result
01
!! end
!! test
Magic Word: {{CURRENTDAYNAME}}
!! input
{{CURRENTDAYNAME}}
!! result
Thursday
!! end
!! test
Magic Word: {{CURRENTDOW}}
!! input
{{CURRENTDOW}}
!! result
4
!! end
!! test
Magic Word: {{CURRENTMONTH}}
!! input
{{CURRENTMONTH}}
!! result
01
!! end
!! test
Magic Word: {{CURRENTMONTHABBREV}}
!! input
{{CURRENTMONTHABBREV}}
!! result
Jan
!! end
!! test
Magic Word: {{CURRENTMONTHNAME}}
!! input
{{CURRENTMONTHNAME}}
!! result
January
!! end
!! test
Magic Word: {{CURRENTMONTHNAMEGEN}}
!! input
{{CURRENTMONTHNAMEGEN}}
!! result
January
!! end
!! test
Magic Word: {{CURRENTTIME}}
!! input
{{CURRENTTIME}}
!! result
00:02
!! end
!! test
Magic Word: {{CURRENTWEEK}} (@bug 4594)
!! input
{{CURRENTWEEK}}
!! result
1
!! end
!! test
Magic Word: {{CURRENTYEAR}}
!! input
{{CURRENTYEAR}}
!! result
1970
!! end
!! test
Magic Word: {{FULLPAGENAME}}
!! options
title=[[User:Ævar Arnfjörð Bjarmason]]
!! input
{{FULLPAGENAME}}
!! result
User:Ævar Arnfjörð Bjarmason
!! end
!! test
Magic Word: {{FULLPAGENAMEE}}
!! options
title=[[User:Ævar Arnfjörð Bjarmason]]
!! input
{{FULLPAGENAMEE}}
!! result
User:%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
!! end
!! test
Magic Word: {{NAMESPACE}}
!! options
title=[[User:Ævar Arnfjörð Bjarmason]]
disabled # FIXME
!! input
{{NAMESPACE}}
!! result
User
!! end
!! test
Magic Word: {{NAMESPACEE}}
!! options
title=[[User:Ævar Arnfjörð Bjarmason]]
disabled # FIXME
!! input
{{NAMESPACEE}}
!! result
User
!! end
!! test
Magic Word: {{NUMBEROFARTICLES}}
!! input
{{NUMBEROFARTICLES}}
!! result
1
!! end
!! test
Magic Word: {{NUMBEROFFILES}}
!! input
{{NUMBEROFFILES}}
!! result
1
!! 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}}
!! result
User:%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
!! end
!! test
Magic Word: {{REVISIONID}}
!! input
{{REVISIONID}}
!! result
1337
!! end
!! test
Magic Word: {{SCRIPTPATH}}
!! input
{{SCRIPTPATH}}
!! result
/
!! end
!! test
Magic Word: {{SERVER}}
!! input
{{SERVER}}
!! result
http://localhost
!! end
!! test
Magic Word: {{SERVERNAME}}
!! input
{{SERVERNAME}}
!! result
Britney Spears
!! end
!! test
Magic Word: {{SITENAME}}
!! input
{{SITENAME}}
!! result
MediaWiki
!! end
!! test
Namespace 1 {{ns:1}}
!! input
{{ns:1}}
!! result
Talk
!! end
!! test
Namespace 1 {{ns:01}}
!! input
{{ns:01}}
!! result
Talk
!! end
!! test
Namespace 0 {{ns:0}} (bug 4783)
!! input
{{ns:0}}
!! result
!! end
!! test
Namespace 0 {{ns:00}} (bug 4783)
!! input
{{ns:00}}
!! result
!! end
!! test
Namespace -1 {{ns:-1}}
!! input
{{ns:-1}}
!! result
Special
!! end
!! test
Namespace Project {{ns:User}}
!! input
{{ns:User}}
!! result
User
!! end
###
### Magic links
###
!! test
Magic links: internal link to RFC (bug 479)
!! input
[[RFC 123]]
!! result
RFC 123
!! end
!! test
Magic links: RFC (bug 479)
!! input
RFC 822
!! result
RFC 822
!! end
!! test
Magic links: ISBN (bug 1937)
!! input
ISBN 0-306-40615-2
!! result
ISBN 0-306-40615-2
!! end
!! test
Magic links: PMID incorrectly converts space to underscore
!! input
PMID 1234
!! result
PMID 1234
!! end
###
### Templates
####
!! test
Nonexistant template
!! input
{{thistemplatedoesnotexist}}
!! result
Template:Thistemplatedoesnotexist
!! end
!! article
Template:test
!! text
This is a test template
!! endarticle
!! test
Simple template
!! input
{{test}}
!! result
This is a test template
!! end
!! test
Template with explicit namespace
!! input
{{Template:test}}
!! result
This 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}}
!! result
This 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
the main page
!! 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}}
!! result
templ
!! 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 }}}}
!! result
This is a test template with parameter (test)
!! end
!! test
Template with thumb image (with link in description)
!! input
{{paramtest|
param =[[Image:noimage.png|thumb|[[no link|link]] [[no link|caption]]]]}}
!! result
This is a test template with parameter
!! end
!! article
Template:complextemplate
!! text
{{{1}}} {{paramtest|
param ={{{param}}}}}
!! endarticle
!! test
Template with complex arguments
!! input
{{complextemplate|
param ={{ templateasargtest |
templ = simple }}|[[Template:complextemplate|link]]}}
!! result
link 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
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
link
!! end
!!article
Template:paramtest2
!! text
including another template, {{paramtest|param={{{arg}}}}}
!! endarticle
!! test
Template passing argument to another template
!! input
{{paramtest2|arg='hmm'}}
!! result
including 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
Main Page
!! 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}}
!! result
blah 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}}
!! result
foo
!! end
!! test
BUG 523: Template shouldn't eat newline (or add an extra one before table)
!! input
foo
{{table}}
!! result
foo
!! end
!! test
BUG 41: Template parameters shown as broken links
!! input
{{{parameter}}}
!! result
{{{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!}}
!! result
You have lots of money (not!).
!! end
!! article
Template:Includes
!! text
Foozarbar
!! endarticle
!! test
and being included
!! input
{{Includes}}
!! result
Foobar
!! end
!! article
Template:Includes2
!! text
Foobar
!! endarticle
!! test
being included
!! input
{{Includes2}}
!! result
Foo
!! end
!! article
Template:Includes3
!! text
Foobarzar
!! endarticle
!! test
and being included
!! input
{{Includes3}}
!! result
Foo
!! end
!! test
and on a page
!! input
Foozarbar
!! result
Foozar
!! end
!! test
on a page
!! input
Foobar
!! result
Foobar
!! 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
!! test
pre-save transform: unclosed tag
!! options
pst noxml
!! input
'''not wiki'''
!! result
'''not wiki'''
!! end
!! test
pre-save transform: mixed tag case
!! options
pst noxml
!! input
'''not wiki'''
!! result
'''not wiki'''
!! end
!! test
pre-save transform: unclosed comment in
!! options
pst noxml
!! input
wikinowiki
!!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
!! test
pre-save transform: in subst (bug 3298)
!! options
pst
!! input
{{subst:Includes}}
!! result
Foobar
!! end
!! test
pre-save transform: in subst (bug 3298)
!! options
pst
!! input
{{subst:Includes2}}
!! result
Foo
!! end
!! test
pre-save transform: context links ("pipe trick")
!! options
pst
!! input
[[Article (context)|]]
[[Bar:Article|]]
[[:Bar:Article|]]
[[Bar:Article (context)|]]
[[:Bar:Article (context)|]]
[[|Article]]
[[|Article (context)]]
[[Bar:X (Y) Z|]]
[[:Bar:X (Y) Z|]]
!! result
[[Article (context)|Article]]
[[Bar:Article|Article]]
[[:Bar:Article|Article]]
[[Bar:Article (context)|Article]]
[[:Bar:Article (context)|Article]]
[[Article]]
[[Article (context)]]
[[Bar:X (Y) Z|X (Y) Z]]
[[:Bar:X (Y) Z|X (Y) Z]]
!! end
!! test
pre-save transform: context links ("pipe trick") with interwiki prefix
!! options
pst
!! input
[[interwiki:Article|]]
[[:interwiki:Article|]]
[[interwiki:Bar:Article|]]
[[:interwiki:Bar:Article|]]
!! result
[[interwiki:Article|Article]]
[[:interwiki:Article|Article]]
[[interwiki:Bar:Article|Bar:Article]]
[[:interwiki:Bar:Article|Bar:Article]]
!! end
!! test
pre-save transform: context links ("pipe trick") with parens in title
!! options
pst title=[[Somearticle (context)]]
!! input
[[|Article]]
!! result
[[Article (context)|Article]]
!! end
!! test
pre-save transform: context links ("pipe trick") with comma in title
!! options
pst title=[[Someplace, Somewhere]]
!! input
[[|Otherplace]]
[[Otherplace, Elsewhere|]]
[[Otherplace, Elsewhere, Anywhere|]]
!! result
[[Otherplace, Somewhere|Otherplace]]
[[Otherplace, Elsewhere|Otherplace]]
[[Otherplace, Elsewhere, Anywhere|Otherplace]]
!! end
!! test
pre-save transform: context links ("pipe trick") with parens and comma
!! options
pst title=[[Someplace (IGNORED), Somewhere]]
!! input
[[|Otherplace]]
[[Otherplace (place), Elsewhere|]]
!! result
[[Otherplace, Somewhere|Otherplace]]
[[Otherplace (place), Elsewhere|Otherplace]]
!! end
!! test
pre-save transform: context links ("pipe trick") with comma and parens
!! options
pst title=[[Who, me? (context)]]
!! input
[[|Yes, you.]]
[[Me, Myself, and I (1937 song)|]]
!! result
[[Yes, you. (context)|Yes, you.]]
[[Me, Myself, and I (1937 song)|Me, Myself, and I]]
!! end
!! test
pre-save transform: context links ("pipe trick") with namespace
!! options
pst title=[[Ns:Somearticle]]
!! input
[[|Article]]
!! result
[[Ns:Article|Article]]
!! end
!! test
pre-save transform: context links ("pipe trick") with namespace and parens
!! options
pst title=[[Ns:Somearticle (context)]]
!! input
[[|Article]]
!! result
[[Ns:Article (context)|Article]]
!! end
!! test
pre-save transform: context links ("pipe trick") with namespace and comma
!! options
pst title=[[Ns:Somearticle, Context, Whatever]]
!! input
[[|Article]]
!! result
[[Ns:Article, Context, Whatever|Article]]
!! end
!! test
pre-save transform: context links ("pipe trick") with namespace, comma and parens
!! options
pst title=[[Ns:Somearticle, Context (context)]]
!! input
[[|Article]]
!! result
[[Ns:Article (context)|Article]]
!! end
!! test
pre-save transform: context links ("pipe trick") with namespace, parens and comma
!! options
pst title=[[Ns:Somearticle (IGNORED), Context]]
!! input
[[|Article]]
!! result
[[Ns:Article, Context|Article]]
!! end
###
### Message transform tests
###
!! test
message transform: magic variables
!! options
msg
!! input
{{SITENAME}}
!! result
MediaWiki
!! end
!! test
message transform: should not transform wiki markup
!! options
msg
!! input
''test''
!! result
''test''
!! end
!! test
TODO: message transform: in transcluded template (bug 4926)
!! options
msg
!! input
{{Includes}}
!! result
Foobar
!! end
!! test
TODO: message transform: in transcluded template (bug 4926)
!! options
msg
!! input
{{Includes2}}
!! result
Foo
!! end
!! test
{{#special:}} page name, known
!! options
msg
!! input
{{#special:Recentchanges}}
!! result
Special:Recentchanges
!! end
!! test
{{#special:}} page name, unknown
!! options
msg
!! input
{{#special:foobarnonexistent}}
!! result
No such special page
!! 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
#Image:test
!! input
[[:Image:test]]
!! result
Image:test
!! 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
!! end
!! test
BUG 1887: A