mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/ParserFunctions
synced 2024-11-15 11:59:54 +00:00
192 lines
2.9 KiB
Plaintext
192 lines
2.9 KiB
Plaintext
# Force the test runner to ensure the extension is loaded
|
|
# fixme... this doesn't seem to work :D
|
|
#!! 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
|
|
|
|
!! test
|
|
Input times should probably be UTC, not local time
|
|
!! input
|
|
{{#time:c|15 January 2001}}
|
|
!!result
|
|
<p>2001-01-15T00:00:00+00:00
|
|
</p>
|
|
!! end
|
|
|
|
!! test
|
|
Time test in traditional range...
|
|
!! input
|
|
{{#time:Y|15 January 2001}}
|
|
!! result
|
|
<p>2001
|
|
</p>
|
|
!! end
|
|
|
|
!! test
|
|
Time test prior to 1970 Unix creation myth
|
|
!! input
|
|
{{#time:Y|5 April 1967}}
|
|
!! result
|
|
<p>1967
|
|
</p>
|
|
!! end
|
|
|
|
!! test
|
|
Time test after the 2038 32-bit Apocalype
|
|
!! input
|
|
{{#time:Y|28 July 2061}}
|
|
!! result
|
|
<p>2061
|
|
</p>
|
|
!! end
|
|
|
|
!! test
|
|
Bug 19093: Default values don't fall through in switch
|
|
!! input
|
|
<{{#switch: foo | bar | #default = DEF }}>
|
|
<{{#switch: foo | #default | bar = DEF }}>
|
|
!! result
|
|
<p><DEF>
|
|
<DEF>
|
|
</p>
|
|
!! end
|
|
|
|
!! test
|
|
{{#ifexist}}
|
|
!! input
|
|
{{#ifexist:Media:Foobar.jpg|Found|Not found}}
|
|
{{#ifexist:ParserFunctions page|Found|Not found}}
|
|
{{#ifexist:Missing|Found|Not found}}
|
|
!! result
|
|
<p>Found
|
|
Found
|
|
Not found
|
|
</p>
|
|
!! end
|
|
|
|
!! test
|
|
#if
|
|
!! input
|
|
{{#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}}
|
|
!! result
|
|
<p>no
|
|
yes
|
|
no
|
|
no
|
|
yes
|
|
yes
|
|
(empty)
|
|
(empty)
|
|
yes
|
|
no
|
|
</p>
|
|
!! end
|
|
|
|
!! test
|
|
#ifeq
|
|
!!input
|
|
{{#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}}
|
|
!! result
|
|
<p>yes
|
|
yes
|
|
no
|
|
no
|
|
no
|
|
</p>
|
|
!! end
|
|
|
|
!! test
|
|
#iferror
|
|
!!input
|
|
{{#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
|
|
!! result
|
|
<p>correct
|
|
error
|
|
3
|
|
error
|
|
3
|
|
empty
|
|
</p>
|
|
!! end
|
|
|
|
|
|
!! test
|
|
#ifexpr
|
|
!! input
|
|
{{#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
|
|
!! result
|
|
<p>no
|
|
yes
|
|
empty
|
|
empty
|
|
no
|
|
empty
|
|
</p>
|
|
!! end
|
|
|
|
!! test
|
|
Bug 22866: #ifexpr should evaluate "-0" as false
|
|
!! input
|
|
{{#ifexpr: (-1)*0 | true | false }}
|
|
!! result
|
|
<p>false
|
|
</p>
|
|
!! end
|
|
|
|
!! test
|
|
#urldecode
|
|
!! input
|
|
{{#urldecode:}}
|
|
{{#urldecode:foo%20bar}}
|
|
{{#urldecode:%D0%9C%D0%B5%D0%B4%D0%B8%D0%B0%D0%92%D0%B8%D0%BA%D0%B8}}
|
|
{{#urldecode: some unescaped string}}
|
|
!! result
|
|
<p>foo bar
|
|
МедиаВики
|
|
some unescaped string
|
|
</p>
|
|
!! end
|