# 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 are UTC, not local time !! input {{#time:c|15 January 2001}} !!result

2001-01-15T00:00:00+00:00

!! end !! test Time test in traditional range... !! input {{#time:Y|15 January 2001}} !! result

2001

!! end !! test Time test prior to 1970 Unix creation myth !! input {{#time:Y|5 April 1967}} !! result

1967

!! end !! test Time test after the 2038 32-bit Apocalype !! input {{#time:Y|28 July 2061}} !! result

2061

!! end !! test Explicitly specified timezone: UTC !! input {{#time:Y-m-d H:i| 2011-11-12 23:00 UTC }} !! result

2011-11-12 23:00

!! end !! test Explicitly specified timezone: Europe/Paris (UTC+1) !! input {{#time:Y-m-d H:i| 2011-11-12 23:00 Europe/Paris }} !! result

2011-11-12 22:00

!! end !! test Explicitly specified timezone: America/New_York (UTC-5) !! input {{#time:Y-m-d H:i| 2011-11-12 23:00 America/New_York }} !! result

2011-11-13 04:00

!! end !! test Explicitely specified output language (Dutch) !! input {{#time:d F Y|1988-02-28|nl}} !! result

28 februari 1988

!! end !! test Bug 19093: Default values don't fall through in switch !! input <{{#switch: foo | bar | #default = DEF }}> <{{#switch: foo | #default | bar = DEF }}> !! result

<DEF> <DEF>

!! end !! test {{#ifexist}} !! input {{#ifexist:Media:Foobar.jpg|Found|Not found}} {{#ifexist:ParserFunctions page|Found|Not found}} {{#ifexist:Missing|Found|Not found}} !! result

Found Found Not found

!! 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

no yes no no yes yes (empty) (empty) yes no

!! 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

yes yes no no no

!! 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

correct error 3 error 3 empty

!! 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

no yes empty empty no empty

!! end !! test Bug 22866: #ifexpr should evaluate "-0" as false !! input {{#ifexpr: (-1)*0 | true | false }} !! result

false

!! end