Module:TNT/testcases
< Module:TNT
Jump to navigation
Jump to search
Revision as of 04:11, 28 April 2019 by test>Yurik
Documentation for this module may be created at Module:TNT/testcases/doc
local ScribuntoUnit = require('Module:ScribuntoUnit')
local p = ScribuntoUnit:new()
function p:module()
return self.frame and self.frame.args.module or 'TNT'
end
function p:invokeTNT(wikicode)
return '{{#invoke:' .. p:module() .. '|' .. wikicode .. '}}'
end
function p:test_msg()
-- dataset resolution
self:assertResultEquals('text message', p:invokeTNT('msg|I18n/Module:TNT/testcases.tab|text'), 'msg00')
self:assertResultEquals('text message', p:invokeTNT('msg|I18n/Module:TNT/testcases|text'), 'msg01')
self:assertResultEquals('text message', p:invokeTNT('msg| I18n/Module:TNT/testcases.tab |text'), 'msg02')
self:assertResultEquals('text message', p:invokeTNT('msg| I18n/Module:TNT/testcases |text'), 'msg03')
self:assertResultEquals('text message', p:invokeTNT('msg|Module:TNT/testcases.tab |text'), 'msg04')
self:assertResultEquals('text message', p:invokeTNT('msg|Module:TNT/testcases |text'), 'msg05')
-- spacing
self:assertResultEquals('text message', p:invokeTNT(' msg | I18n/Module:TNT/testcases.tab | text '), 'msg10')
self:assertResultEquals('text message', p:invokeTNT(' \n msg \n | \n I18n/Module:TNT/testcases.tab \n | \n text \n '), 'msg11')
self:assertResultEquals('текст', p:invokeTNT('msg|I18n/Module:TNT/testcases.tab|text|lang=ru'), 'msg12')
self:assertResultEquals('text message', p:invokeTNT('msg|I18n/Module:TNT/testcases.tab|text|lang=fr'), 'msg13')
-- 1 parameter
self:assertResultEquals('text message a', p:invokeTNT('msg|I18n/Module:TNT/testcases.tab|text_1|a'), 'msg20')
self:assertResultEquals('text message a', p:invokeTNT('msg|I18n/Module:TNT/testcases.tab|text_1| a '), 'msg21')
self:assertResultEquals('text message a', p:invokeTNT('msg|I18n/Module:TNT/testcases.tab|text_1| \na \n '), 'msg22')
self:assertResultEquals('текст абв', p:invokeTNT('msg|I18n/Module:TNT/testcases.tab|text_1|абв|lang=ru'), 'msg23')
-- multiple parameters
self:assertResultEquals('text message a and b', p:invokeTNT('msg|I18n/Module:TNT/testcases.tab|text_2|a|b'), 'msg30')
self:assertResultEquals('text message a and b', p:invokeTNT('msg|I18n/Module:TNT/testcases.tab|text_2| a | b '), 'msg31')
self:assertResultEquals('text message a and b', p:invokeTNT('msg|I18n/Module:TNT/testcases.tab|text_2| \na \n | \nb \n '), 'msg32')
self:assertResultEquals('текст абв и где', p:invokeTNT('msg|I18n/Module:TNT/testcases.tab|text_2|абв|где|lang=ru'), 'msg33')
-- parameters as part of wiki text
self:assertResultEquals('text message [[a|b]]', p:invokeTNT('msg|I18n/Module:TNT/testcases.tab|text_link|a|b'), 'msg40')
self:assertResultEquals('text message [[a|b]]', p:invokeTNT('msg|I18n/Module:TNT/testcases.tab|text_link| a | b '), 'msg41')
self:assertResultEquals('текст [[абв|где]]', p:invokeTNT('msg|I18n/Module:TNT/testcases.tab|text_link|абв|где|lang=ru'), 'msg42')
-- fallbacks
self:assertResultEquals('текст', p:invokeTNT('msg|I18n/Module:TNT/testcases.tab|text_no_en'), 'msg50')
self:assertResultEquals('текст', p:invokeTNT('msg|I18n/Module:TNT/testcases.tab|text_no_en|lang=ru'), 'msg51')
self:assertResultEquals('текст', p:invokeTNT('msg|I18n/Module:TNT/testcases.tab|text_no_en|lang=fr'), 'msg52')
end
function p:test_msg_errors()
self:assertResultEquals(
'<strong class="error"><span class="scribunto-error" id="mw-scribunto-error-0">Lua error: bad argument #1 to "get" (not a valid title).</span></strong>',
p:invokeTNT('msg'), 'msgerr00')
end
function p:test_link()
self:assertResultEquals('commons:Data:abc.tab', p:invokeTNT('link|abc.tab'), 'link00')
self:assertResultEquals('commons:Data:abc.tab', p:invokeTNT(' link | abc.tab '), 'link01')
self:assertResultEquals('commons:Data:abc.tab', p:invokeTNT(' link |\n abc.tab\n '), 'link02')
end
function p:test_doc()
local tnt = require('Module:' .. p:module())
self:assertEquals(
'{"paramOrder":["1","2"],"description":"DO NOT EDIT OR TRANSLATE unless you are changing unit tests","params":{"1":{"suggested":false,"type":"string","required":true,"label":"en_label_1","example":"en_example_1","description":"en_desc_1"},"2":{"suggested":true,"type":"string","required":false,"label":"fr_label_2","example":"pl_example_2","description":"en_desc_2"}}}',
tnt.getTemplateData('Module:TNT/testcases templatedata 1'),
'doc00')
self:assertEquals(
'{"paramOrder":["param1","param2"],"description":"DO NOT EDIT OR TRANSLATE unless you are changing unit tests","params":{"param2":{"suggested":true,"type":"string","required":false,"label":"fr_label_2","example":"pl_example_2","description":"en_desc_2"},"param1":{"suggested":false,"type":"string","required":true,"label":"en_label_1","example":"en_example_1","description":"en_desc_1"}}}',
tnt.getTemplateData('Module:TNT/testcases templatedata 2'),
'doc01')
end
return p