!! Version 2 # Force the test runner to ensure the extension is loaded !! functionhooks af_search !! endfunctionhooks # This file tests the #af_search parser function !! test Test value not in array returns empty string !! wikitext {{#af_search: {{#af_list: a | b | c }} | d }} !! html !! end !! test Test value in list returns integer !! wikitext {{#af_search: {{#af_list: a | b | c }} | c }} !! html

integer__^__2

!! end !! test Test value in object returns string !! wikitext {{#af_search: {{#af_object: a=a | b=bb | c=c }} | c }} !! html

c

!! end !! test Test comparison is strict !! wikitext {{#af_search: {{#af_list: 1 | {{#af_int: 1 }} }} | 1 }} {{#af_search: {{#af_list: 1 | {{#af_int: 1 }} }} | {{#af_int: 1 }} }} !! html

integer__^__0 integer__^__1

!! end !! test Test search subarray !! wikitext {{#af_search: {{#af_list: {{#af_list: a | b | c }} | {{#af_list: d | e | f }} }} | {{#af_list: d | e | f }} }} !! html

integer__^__1

!! end !! test Test multiple occurrences return first key !! wikitext {{#af_search: {{#af_list: {{#af_list: a | b | c }} | {{#af_list: a | b | c }} }} | {{#af_list: a | b | c }} }} !! html

integer__^__0

!! end !! test Test too many arguments !! wikitext {{#af_search: {{#af_list: a | b | c }} | a | b }} !! html

ArrayFunctions (#af_search): Expected at most 2 positional parameters, 3 given.

!! end !! test Test too few arguments !! wikitext {{#af_search: {{#af_list: a | b | c }} }} !! html

ArrayFunctions (#af_search): Expected at least 2 positional parameters, 1 given.

!! end