Difference between revisions of "Module:Arguments/testcases"
Jump to navigation
Jump to search
blackwiki>Mr. Stradivarius (add some test structures) |
blackwiki>Mr. Stradivarius (getting there) |
||
| Line 3: | Line 3: | ||
local suite = ScribuntoUnit:new() | local suite = ScribuntoUnit:new() | ||
| − | function suite.expandTestTemplate(funcName) | + | ------------------ Template invocations used by the module -------------------- |
| + | -- Module talk:Arguments/testInvoke: | ||
| + | -- {{#invoke:arguments/testcases|{{{function|}}}|firstInvokeArg}} | ||
| + | -- Module talk:Arguments/testTemplate: | ||
| + | -- {{Module talk:Arguments/testInvoke|{{{1|}}}|{{{2|}}}|blank=|function={{{function|}}}}} | ||
| + | |||
| + | function suite.expandTestTemplate(funcName, para1, para2) | ||
local frame = mw.getCurrentFrame() | local frame = mw.getCurrentFrame() | ||
| − | local val = frame:preprocess('{{Module talk:Arguments/testTemplate|function=' .. funcName .. '}}') | + | local val = frame:preprocess('{{Module talk:Arguments/testTemplate|' .. para1 .. '|' .. para2 .. '|function=' .. funcName .. '}}') |
return val | return val | ||
end | end | ||
function suite.createInvokeFunction(funcName, key, options) | function suite.createInvokeFunction(funcName, key, options) | ||
| − | + | suite[funcName] = function (frame) | |
options = options or {} | options = options or {} | ||
local args = getArgs(frame, options) | local args = getArgs(frame, options) | ||
return args[key] | return args[key] | ||
end | end | ||
| + | end | ||
| + | |||
| + | function suite:testDefaultPrecedence() | ||
| + | suite.createInvokeFunction('defaultPrecedenceFirst', 1) | ||
| + | local first = suite.expandTestTemplate('defaultPrecedence', 'firstTemplateArg', 'secondTemplateArg') | ||
| + | self:assertEquals('firstInvokeArg', first) | ||
end | end | ||
Revision as of 01:25, 10 December 2013
Documentation for this module may be created at Module:Arguments/testcases/doc
local getArgs = require('Module:Arguments').getArgs
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()
------------------ Template invocations used by the module --------------------
-- Module talk:Arguments/testInvoke:
-- {{#invoke:arguments/testcases|{{{function|}}}|firstInvokeArg}}
-- Module talk:Arguments/testTemplate:
-- {{Module talk:Arguments/testInvoke|{{{1|}}}|{{{2|}}}|blank=|function={{{function|}}}}}
function suite.expandTestTemplate(funcName, para1, para2)
local frame = mw.getCurrentFrame()
local val = frame:preprocess('{{Module talk:Arguments/testTemplate|' .. para1 .. '|' .. para2 .. '|function=' .. funcName .. '}}')
return val
end
function suite.createInvokeFunction(funcName, key, options)
suite[funcName] = function (frame)
options = options or {}
local args = getArgs(frame, options)
return args[key]
end
end
function suite:testDefaultPrecedence()
suite.createInvokeFunction('defaultPrecedenceFirst', 1)
local first = suite.expandTestTemplate('defaultPrecedence', 'firstTemplateArg', 'secondTemplateArg')
self:assertEquals('firstInvokeArg', first)
end
function suite.main(frame)
local args = getArgs(frame)
return args[1]
end
function suite.test()
local frame = mw.getCurrentFrame()
local mainVal = frame:preprocess('{{Module talk:Arguments/testInvoke|function=main}}')
return mainVal
end
return suite