!! Version 2
# Force the test runner to ensure the extension is loaded
# Use '#switch' to do the detection, since we might not have
# string functions enabled (yet) -- they are force-enabled on a per-test
# basis by the ParserTestGlobals hook.
!! functionhooks
switch
!! endfunctionhooks

# @todo expand

!! test
#len
!! wikitext
{{#len:}}
{{#len:0}}
{{#len:test}}
!! html
<p>0
1
4
</p>
!! end

!! test
#urldecode
!! wikitext
{{#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}}
!! html
<p>foo bar
МедиаВики
some unescaped string
</p>
!! end

!! test
#pos
!! wikitext
{{#pos:Žmržlina|žlina}}
{{#pos:stringstring|str|4}}
!! html
<p>3
6
</p>
!! end

!! test
#pos with too large offset (T209600)
!! wikitext
{{#pos:FooBar|Foo|32}}
!! html

!! end

!! test
#explode with negative offset (T403241)
!! wikitext
{{#explode:Foo*Bar|*|-1}}
!! html
<p>Bar
</p>
!! end

!! test
#explode with bad negative offset (T403241)
!! wikitext
{{#explode:Foo*Bar|*|- 1}}
!! html

!! end
