Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F2752272
funcsParserTests.txt
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
8 KB
Referenced Files
None
Subscribers
None
funcsParserTests.txt
View Options
!! Version 2
# Force the test runner to ensure the extension is loaded
!! functionhooks
time
!! endfunctionhooks
# fixme: #time seems to be accepting input as local time, which strikes me as wrong
!! article
ParserFunctions page
!! text
A sample page so we can test ifexist.
This used to be a Main Page, but that caused duplicate article
warnings when running the normal tests at the same time.
!! endarticle
!! article
File:Dionysos-Brunnen am Kölner Dom.jpg
!! text
blah blah
!! endarticle
!! article
File:Redirect_to_Foobar.jpg
!! text
#REDIRECT[[File:Foobar.jpg]]
!! endarticle
!! article
File:Redirect_to_nowhere.jpg
!! text
#REDIRECT[[File:Missing target file.jpg]]
!! endarticle
!! test
Input times are UTC, not local time
!! wikitext
{{#time:c|15 January 2001}}
!! html
<p>2001-01-15T00:00:00+00:00
</p>
!! end
!! test
Time test in traditional range...
!! wikitext
{{#time:Y|15 January 2001}}
!! html
<p>2001
</p>
!! end
!! test
Time test prior to 1970 Unix creation myth
!! wikitext
{{#time:Y|5 April 1967}}
!! html
<p>1967
</p>
!! end
!! test
Time test after the 2038 32-bit Apocalype
!! wikitext
{{#time:Y|28 July 2061}}
!! html
<p>2061
</p>
!! end
!! test
Explicitly specified timezone: UTC
!! wikitext
{{#time:Y-m-d H:i| 2011-11-12 23:00 UTC }}
!! html
<p>2011-11-12 23:00
</p>
!! end
!! test
Explicitly specified timezone: Europe/Paris (UTC+1)
!! wikitext
{{#time:Y-m-d H:i| 2011-11-12 23:00 Europe/Paris }}
!! html
<p>2011-11-12 22:00
</p>
!! end
!! test
Explicitly specified timezone: America/New_York (UTC-5)
!! wikitext
{{#time:Y-m-d H:i| 2011-11-12 23:00 America/New_York }}
!! html
<p>2011-11-13 04:00
</p>
!! end
!! test
Explicitly specified output language (Dutch)
!! wikitext
{{#time:d F Y|1988-02-28|nl}}
!! html
<p>28 februari 1988
</p>
!! end
!! test
#timel: UTC
!! wikitext
{{#timel: Y-m-d H:i | 15 January 2001}}
!! html
<p>2001-01-15 00:00
</p>
!! end
!! test
#timel: Melbourne
!! options
wgLocaltimezone=Australia/Melbourne
!! wikitext
{{#timel: Y-m-d H:i | 16 January 2001}}
!! html
<p>2001-01-16 11:00
</p>
!! end
!! test
#timef: one parameter
!! wikitext
{{#timef:15 January 2001}}
!! html
<p>00:00, 15 January 2001
</p>
!! end
!! test
#timef: date only
!! wikitext
{{#timef:15 January 2001|date}}
!! html
<p>15 January 2001
</p>
!! end
!! test
#timef: time only
!! wikitext
{{#timef:15 January 2001|time}}
!! html
<p>00:00
</p>
!! end
!! test
#timef: "pretty" format
!! wikitext
{{#timef:15 January 2001|pretty}}
!! html
<p>15 January
</p>
!! end
!! test
#timef: Japanese target language
!! options
language=ja
!! wikitext
{{#timef:15 January 2001}}
!! html
<p>2001年1月15日 (月) 00:00
</p>
!! end
!! test
#timef: ja parameter
!! wikitext
{{#timef:15 January 2001|both|ja}}
!! html
<p>2001年1月15日 (月) 00:00
</p>
!! end
!! test
#timefl: one parameter
!! options
wgLocaltimezone=Australia/Melbourne
!! wikitext
{{#timefl:17 January 2001}}
!! html
<p>11:00, 17 January 2001
</p>
!! end
!! test
#titleparts
!! wikitext
{{#titleparts:A/b/c/d}}
{{#titleparts:A/b/c/d|1}}
{{#titleparts:A/b/c/d|2}}
{{#titleparts:A/b/c/d|-3}}
{{#titleparts:A/b/c/d||1}}
{{#titleparts:A/b/c/d||2}}
{{#titleparts:A/b/c/d||-2}}
{{#titleparts:A/b/c/d|1|1}}
{{#titleparts:A/b/c/d|1|2}}
{{#titleparts:A/b/c/d|1|-2}}
!! html
<p>A/b/c/d
A
A/b
A
A/b/c/d
b/c/d
c/d
A
b
c
</p>
!! end
!! test
#titleparts stops splitting after 25 parts
!! wikitext
{{#titleparts:A/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/!/!/!|24}}
{{#titleparts:A/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/!/!/!|25}}
{{#titleparts:A/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/!/!/!|-1}}
{{#titleparts:A/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/!/!/!||-1}}
!! html
<p>A/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x
A/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/!/!/!
A/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x
!/!/!
</p>
!! end
!! test
Zero parameters in #if and such
!! wikitext
[{{#ifexpr:}},{{#if:}},{{#ifeq:}},{{#switch:}},{{#ifexist:}}]
!! html
<p>[,,,,]
</p>
!! end
!! test
Empty condition in #if and such
!! wikitext
Empty ifexpr is {{#ifexpr:|true|false}}
Empty if is {{#if:|true|false}}
Empty ifeq is {{#ifeq:||equal|not equal}}
Empty switch is {{#switch:|=empty|#default=something else}}
Empty ifexist is {{#ifexist:|true|false}}
!! html
<p>Empty ifexpr is false
Empty if is false
Empty ifeq is equal
Empty switch is empty
Empty ifexist is false
</p>
!! end
!! test
Missing or all-empty outputs
!! wikitext
[{{#ifexpr: 1}},{{#ifexpr: 1|}},{{#ifexpr: 1||}}]
[{{#if: 1}},{{#if: 1|}},{{#if: 1||}}]
[{{#ifeq: 1|1}},{{#ifeq: 1|1|}},{{#ifeq: 1|1||}}]
[{{#switch: 1}},{{#switch: 1|}}]
[{{#ifexist: ParserFunctions page}},{{#ifexist: ParserFunctions page|}},{{#ifexist: ParserFunctions page||}}]
!! html
<p>[,,]
[,,]
[,,]
[,]
[,,]
</p>
!! end
!! test
Preserve tags in #switch default value
!! wikitext
{{#switch:a|b|<div>c</div>}}
!! html
<div>c</div>
!! end
!! test
Bug 19093: Default values don't fall through in switch
!! wikitext
<{{#switch: foo | bar | #default = DEF }}>
<{{#switch: foo | #default | bar = DEF }}>
!! html
<p><DEF>
<DEF>
</p>
!! end
!! test
{{#ifexist}}
!! wikitext
{{#ifexist:Media:Foobar.jpg|Found|Not found}}
{{#ifexist:ParserFunctions page|Found|Not found}}
{{#ifexist:Missing|Found|Not found}}
!! html
<p>Found
Found
Not found
</p>
!! end
!! test
{{#ifexist:}} media redirect (bug 32031)
!! wikitext
{{#ifexist:Media:Redirect_to_Foobar.jpg|Found|Not found}}
{{#ifexist:Media:Redirect_to_nowhere.jpg|Found|Not found}}
{{#ifexist:Media:Missing file.jpg|Found|Not found}}
{{#ifexist:Media:Dionysos-Brunnen am Kölner Dom.jpg|Found|Not found}}
!! html
<p>Found
Not found
Not found
Not found
</p>
!!end
!! test
#if
!! wikitext
{{#if: | yes | no}}
{{#if: string | yes | no}}
{{#if: | yes | no}}
{{#if:
| yes | no}}
{{#if: 1==2 | yes | no}}
{{#if: foo | yes }}
{{#if: | yes }}(empty)
{{#if: foo | | no}}(empty)
{{#if: {{{1}}} | yes | no}}
{{#if: {{{1|}}} | yes | no}}
!! html
<p>no
yes
no
no
yes
yes
(empty)
(empty)
yes
no
</p>
!! end
!! test
#ifeq
!! wikitext
{{#ifeq: 01 | 1 | yes | no}}
{{#ifeq: 0 | -0 | yes | no}}
{{#ifeq: foo | bar | yes | no}}
{{#ifeq: foo | Foo | yes | no}}
{{#ifeq: "01" | "1" | yes | no}}
!! html
<p>yes
yes
no
no
no
</p>
!! end
!! test
#ifeq entities
!! wikitext
{{#ifeq: {{PAGENAME:*foo&bar}} | *foo&bar | yes | no}}
{{#ifeq: a'b | a'b | yes | no}}
{{#ifeq: a'b | a&#39;b | yes | no}}
{{#ifeq: foo | Foo | *yes | *no}}
!! html
<p>yes
yes
no
</p>
<ul><li>no</li></ul>
!! end
!! test
#iferror
!! wikitext
{{#iferror: {{#expr: 1 + 2 }} | error | correct }}
{{#iferror: {{#expr: 1 + X }} | error | correct }}
{{#iferror: {{#expr: 1 + 2 }} | error }}
{{#iferror: {{#expr: 1 + X }} | error }}
{{#iferror: {{#expr: 1 + 2 }} }}
{{#iferror: {{#expr: 1 + X }} }}empty
!! html
<p>correct
error
3
error
3
empty
</p>
!! end
!! test
#ifexpr
!! wikitext
{{#ifexpr: | yes | no}}
{{#ifexpr: 1 > 0 | yes }}
{{#ifexpr: 1 < 0 | yes }}empty
{{#ifexpr: 1 > 0 | | no}}empty
{{#ifexpr: 1 < 0 | | no}}
{{#ifexpr: 1 > 0 }}empty
!! html
<p>no
yes
empty
empty
no
empty
</p>
!! end
!! test
Bug 22866: #ifexpr should evaluate "-0" as false
!! wikitext
{{#ifexpr: (-1)*0 | true | false }}
!! html
<p>false
</p>
!! end
!! test
Templates: Parser functions don't strip whitespace from positional parameters
!! wikitext
{{#if: {{foo}}
| no-pre-then
| no-pre-else
}}
!! html
<p>no-pre-then
</p>
!! end
!! test
#switch
!! wikitext
{{#switch:foo&bar|foo&bar=yes|no}}
{{#switch:foo&bar|fred=1|foo&bar|g=yes|no}}
{{#switch:foo&bar|fred=1|foo&'bar|g=yes|no}}
{{#switch:foo|bar|baz=no|*default}}
{{#switch:none|foo=1|bar=2|#default=no match|baz=3}}
{{#switch:none|foo=1|bar=2|#default=ignored|baz=3|Second default}}
{{#switch:|a&#39;b}}
!! html
<p>yes
yes
no
</p>
<ul><li>default</li></ul>
<p>no match
Second default
a&#39;b
</p>
!!end
!! test
#switch #default should match next and not last named parameter
!! wikitext
<{{#switch: foo | #default | bar = DEF }}>
<{{#switch: foo | #default | bar = DEF | baz = GHI }}>
!! html
<p><DEF>
<DEF>
</p>
!! end
!! test
#switch should not match #default as a prefix
!! wikitext
<{{#switch: foo | #defaultWTF? = This is crazy }}>
<{{#switch: foo | #defaultWTF? | bar = This is crazy }}>
!! html
<p><>
<>
</p>
!! end
!! test
#switch Test php truthy
!! wikitext
{{#switch: 01 | 1 = yes | no}}
{{#switch: 0 | -0 = yes | no}}
{{#switch: foo | bar = yes | no}}
{{#switch: foo | Foo = yes | no}}
{{#switch: "01" | "1" = yes | no}}
{{#switch: 1 | 02 | 01 = yes | no}}
{{#switch: 1 | "01" | "1" = yes | no}}
!! html
<p>yes
yes
no
no
no
yes
no
</p>
!! end
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Jul 3, 19:48 (1 d, 7 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
de/01/2c98d027f92f0584fd57f18aab2b
Default Alt Text
funcsParserTests.txt (8 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment