Module:Template test case: Difference between revisions

Add test cases using "output" parameter to Category:Test cases using output parameter. Updated all formats to allow "output=nowiki" or "output=nowiki+" to change display of template output, similar to the "nowiki" parameter in Module:UnitTests. Tested in /sandbox. See examples in /testcases, Template:Test case/testcases, Template:Test case nowiki/testcases, and Template:Collapsible test case/testcases.
m (fix regex – was broken in 2015 by https://gerrit.wikimedia.org/r/#/c/mediawiki/core/+/214404/)
(Add test cases using "output" parameter to Category:Test cases using output parameter. Updated all formats to allow "output=nowiki" or "output=nowiki+" to change display of template output, similar to the "nowiki" parameter in Module:UnitTests. Tested in /sandbox. See examples in /testcases, Template:Test case/testcases, Template:Test case nowiki/testcases, and Template:Collapsible test case/testcases.)
Line 288:
 
-- Add tracking categories. At the moment we are only tracking templates
-- that use any "heading" parameters or an "output" parameter.
obj.categories = {}
for k, v in pairs(options) do
if type(k) == 'string' and k:find('heading') then
obj.categories['Test cases using heading parameters'] = true
elseif k == 'output' then
break
obj.categories['Test cases using output parameter'] = true
end
end
Line 404 ⟶ 405:
-- Template output
for i, obj in ipairs(self.templates) do
if self.options.output == 'nowiki+' then
dataRow:tag('td')
dataRow:newlinetag('td')
:newline()
:wikitext(self.options.before)
:wikitext(self:getTemplateOutput(obj).options.before)
:wikitext(self.options.after:getTemplateOutput(obj))
:wikitext(self.options.after)
:wikitext('<pre style="white-space: pre-wrap;">')
:wikitext(mw.text.nowiki(self:getTemplateOutput(obj)))
:wikitext('</pre>')
elseif self.options.output == 'nowiki' then
dataRow:tag('td')
:newline()
line[#line + 1] = :wikitext(mw.text.nowiki(self:getTemplateOutput(obj)))
else
dataRow:tag('td')
:newline()
:wikitext(self.options.before)
ret[#ret + 1] = :wikitext(self:getTemplateOutput(obj))
:wikitext(self.options.after)
end
end
Line 441 ⟶ 457:
dataRow:tag('th')
:attr('scope', 'row')
:css('vertical-align', 'top')
:css('text-align', 'left')
:wikitext(obj:makeHeader())
dataRow:tag('td')
:css('vertical-align', 'top')
:css('padding', '0 1em')
:wikitext('→')
Line 456 ⟶ 474:
-- Template output
if self.options.output == 'nowiki+' then
dataRow:tag('td')
dataRow:newlinetag('td')
:newline()
:wikitext(self:getTemplateOutput(obj))
:wikitext(self:getTemplateOutput(obj))
:wikitext('<pre style="white-space: pre-wrap;">')
:wikitext(mw.text.nowiki(self:getTemplateOutput(obj)))
:wikitext('</pre>')
elseif self.options.output == 'nowiki' then
dataRow:tag('td')
:newline()
:wikitext(mw.text.nowiki(self:getTemplateOutput(obj)))
else
dataRow:tag('td')
:newline()
:wikitext(self:getTemplateOutput(obj))
end
end
 
Line 476 ⟶ 507:
line[#line + 1] = ' '
end
if self.options.output == 'nowiki+' then
line[#line + 1] = self:getTemplateOutput(obj)
line[#line + 1] = self:getTemplateOutput(obj)
line[#line + 1] = '<pre style="white-space: pre-wrap;">'
line[#line + 1] = mw.text.nowiki(self:getTemplateOutput(obj))
line[#line + 1] = '</pre>'
elseif self.options.output == 'nowiki' then
line[#line + 1] = mw.text.nowiki(self:getTemplateOutput(obj))
else
line[#line + 1] = self:getTemplateOutput(obj)
end
ret[#ret + 1] = table.concat(line)
end
Line 498 ⟶ 538:
ret[#ret + 1] = obj:makeHeader()
end
if self.options.output == 'nowiki+' then
ret[#ret + 1] = self:getTemplateOutput(obj)
ret[#ret + 1] = self:getTemplateOutput(obj) .. '<pre style="white-space: pre-wrap;">' .. mw.text.nowiki(self:getTemplateOutput(obj)) .. '</pre>'
elseif self.options.output == 'nowiki' then
ret[#ret + 1] = mw.text.nowiki(self:getTemplateOutput(obj))
else
ret[#ret + 1] = self:getTemplateOutput(obj)
end
end
return table.concat(ret, '\n\n')
Anonymous user