This module contains testcases for its parent module, For.
See also[]
-- <nowiki>
--------------------------------------------------------------------------------
-- @todo Don't hardcode i18n messages and the page name. Dunno how to do that.
-- @todo DRY up test cases, since `_main` and `main` are nearly identical.
-- @todo Make tests truly exhaustive (e.g. '_b_cd_').
-- @todo Fix `main` tests, since they probably won't work on the parent frame.
--------------------------------------------------------------------------------
local inputs = {
['nil'] = {
[''] = {nil, nil, nil, nil, nil, nil},
['a'] = {'a', nil, nil, nil, nil, nil},
['ab'] = {'a', 'b', nil, nil, nil, nil},
['abc'] = {'a', 'b', 'c', nil, nil, nil},
['abcd'] = {'a', 'b', 'c', 'd', nil, nil},
['abcde'] = {'a', 'b', 'c', 'd', 'e', nil}
},
['empty string'] = {
[''] = {'', '', '', '', '', ''},
['a'] = {'a', '', '', '', '', ''},
['ab'] = {'a', 'b', '', '', '', ''},
['abc'] = {'a', 'b', 'c', '', '', ''},
['abcd'] = {'a', 'b', 'c', 'd', '', ''},
['abcde'] = {'a', 'b', 'c', 'd', 'e', ''}
},
['whitespace only'] = {
[''] = {'\n \t', '\n \t', '\n \t', '\n \t', '\n \t', '\n \t'},
['a'] = {'a', '\n \t', '\n \t', '\n \t', '\n \t', '\n \t'},
['ab'] = {'a', 'b', '\n \t', '\n \t', '\n \t', '\n \t'},
['abc'] = {'a', 'b', 'c', '\n \t', '\n \t', '\n \t'},
['abcd'] = {'a', 'b', 'c', 'd', '\n \t', '\n \t'},
['abcde'] = {'a', 'b', 'c', 'd', 'e', '\n \t'}
}
}
local outputs = {
[''] = table.concat{
'<dl>',
'</dl>'
},
['a'] = table.concat{
'<dl>',
'<dd>',
'<span class="dablink">',
'<i>',
'For a, see [[For/testcases (disambiguation)]].',
'</i>',
'</span>',
'</dd>',
'</dl>'
},
['ab'] = table.concat{
'<dl>',
'<dd>',
'<span class="dablink">',
'<i>',
'For a, see [[b]].',
'</i>',
'</span>',
'</dd>',
'</dl>'
},
['abc'] = table.concat{
'<dl>',
'<dd>',
'<span class="dablink">',
'<i>',
'For a, see [[b]] or [[c]].',
'</i>',
'</span>',
'</dd>',
'</dl>'
},
['abcd'] = table.concat{
'<dl>',
'<dd>',
'<span class="dablink">',
'<i>',
'For a, see [[b]] or [[c]].',
'</i>',
'</span>',
'</dd>',
'<dd>',
'<span class="dablink">',
'<i>',
'For d, see [[For/testcases (disambiguation)]].',
'</i>',
'</span>',
'</dd>',
'</dl>'
},
['abcde'] = table.concat{
'<dl>',
'<dd>',
'<span class="dablink">',
'<i>',
'For a, see [[b]] or [[c]].',
'</i>',
'</span>',
'</dd>',
'<dd>',
'<span class="dablink">',
'<i>',
'For d, see [[e]].',
'</i>',
'</span>',
'</dd>',
'</dl>'
}
}
return {
_main = {
options = {
mode = 'method',
nowiki = true
},
tests = {
{
inputs['nil'][''],
outputs['']
},
{
inputs['nil']['a'],
outputs['a']
},
{
inputs['nil']['ab'],
outputs['ab']
},
{
inputs['nil']['abc'],
outputs['abc']
},
{
inputs['nil']['abcd'],
outputs['abcd']
},
{
inputs['nil']['abcde'],
outputs['abcde']
},
{
inputs['empty string'][''],
outputs['']
},
{
inputs['empty string']['a'],
outputs['a']
},
{
inputs['empty string']['ab'],
outputs['ab']
},
{
inputs['empty string']['abc'],
outputs['abc']
},
{
inputs['empty string']['abcd'],
outputs['abcd']
},
{
inputs['empty string']['abcde'],
outputs['abcde']
},
{
inputs['whitespace only'][''],
outputs['']
},
{
inputs['whitespace only']['a'],
outputs['a']
},
{
inputs['whitespace only']['ab'],
outputs['ab']
},
{
inputs['whitespace only']['abc'],
outputs['abc']
},
{
inputs['whitespace only']['abcd'],
outputs['abcd']
},
{
inputs['whitespace only']['abcde'],
outputs['abcde']
}
}
},
main = {
options = {
mode = 'invocation',
template = true,
nowiki = true
},
tests = {
{
table.concat(inputs['nil'][''], '|'),
outputs['']
},
{
table.concat(inputs['nil']['a'], '|'),
outputs['a']
},
{
table.concat(inputs['nil']['ab'], '|'),
outputs['ab']
},
{
table.concat(inputs['nil']['abc'], '|'),
outputs['abc']
},
{
table.concat(inputs['nil']['abcd'], '|'),
outputs['abcd']
},
{
table.concat(inputs['nil']['abcde'], '|'),
outputs['abcde']
},
{
table.concat(inputs['empty string'][''], '|'),
outputs['']
},
{
table.concat(inputs['empty string']['a'], '|'),
outputs['a']
},
{
table.concat(inputs['empty string']['ab'], '|'),
outputs['ab']
},
{
table.concat(inputs['empty string']['abc'], '|'),
outputs['abc']
},
{
table.concat(inputs['empty string']['abcd'], '|'),
outputs['abcd']
},
{
table.concat(inputs['empty string']['abcde'], '|'),
outputs['abcde']
},
{
table.concat(inputs['whitespace only'][''], '|'),
outputs['']
},
{
table.concat(inputs['whitespace only']['a'], '|'),
outputs['a']
},
{
table.concat(inputs['whitespace only']['ab'], '|'),
outputs['ab']
},
{
table.concat(inputs['whitespace only']['abc'], '|'),
outputs['abc']
},
{
table.concat(inputs['whitespace only']['abcd'], '|'),
outputs['abcd']
},
{
table.concat(inputs['whitespace only']['abcde'], '|'),
outputs['abcde']
}
}
}
}