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: | Line 288: | ||
-- Add tracking categories. At the moment we are only tracking templates | -- Add tracking categories. At the moment we are only tracking templates | ||
-- that use any "heading" parameters. | -- that use any "heading" parameters or an "output" parameter. | ||
obj.categories = {} | obj.categories = {} | ||
for k, v in pairs(options) do | for k, v in pairs(options) do | ||
if type(k) == 'string' and k:find('heading') then | if type(k) == 'string' and k:find('heading') then | ||
obj.categories['Test cases using heading parameters'] = true | obj.categories['Test cases using heading parameters'] = true | ||
elseif k == 'output' then | |||
obj.categories['Test cases using output parameter'] = true | |||
end | end | ||
end | end | ||
Line 404: | Line 405: | ||
-- Template output | -- Template output | ||
for i, obj in ipairs(self.templates) do | for i, obj in ipairs(self.templates) do | ||
dataRow:tag('td') | if self.options.output == 'nowiki+' then | ||
:newline() | dataRow:tag('td') | ||
:wikitext(self.options.before) | :newline() | ||
:wikitext(self.options.before) | |||
:wikitext(self: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() | |||
:wikitext(mw.text.nowiki(self:getTemplateOutput(obj))) | |||
else | |||
dataRow:tag('td') | |||
:newline() | |||
:wikitext(self.options.before) | |||
:wikitext(self:getTemplateOutput(obj)) | |||
:wikitext(self.options.after) | |||
end | |||
end | end | ||
Line 441: | Line 457: | ||
dataRow:tag('th') | dataRow:tag('th') | ||
:attr('scope', 'row') | :attr('scope', 'row') | ||
:css('vertical-align', 'top') | |||
:css('text-align', 'left') | :css('text-align', 'left') | ||
:wikitext(obj:makeHeader()) | :wikitext(obj:makeHeader()) | ||
dataRow:tag('td') | dataRow:tag('td') | ||
:css('vertical-align', 'top') | |||
:css('padding', '0 1em') | :css('padding', '0 1em') | ||
:wikitext('→') | :wikitext('→') | ||
Line 456: | Line 474: | ||
-- Template output | -- Template output | ||
dataRow:tag('td') | if self.options.output == 'nowiki+' then | ||
:newline() | dataRow:tag('td') | ||
:wikitext(self:getTemplateOutput(obj)) | :newline() | ||
: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 | end | ||
Line 476: | Line 507: | ||
line[#line + 1] = ' ' | line[#line + 1] = ' ' | ||
end | end | ||
line[#line + 1] = self:getTemplateOutput(obj) | if self.options.output == 'nowiki+' then | ||
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) | ret[#ret + 1] = table.concat(line) | ||
end | end | ||
Line 498: | Line 538: | ||
ret[#ret + 1] = obj:makeHeader() | ret[#ret + 1] = obj:makeHeader() | ||
end | end | ||
ret[#ret + 1] = self:getTemplateOutput(obj) | if self.options.output == 'nowiki+' then | ||
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 | end | ||
return table.concat(ret, '\n\n') | return table.concat(ret, '\n\n') |