Editing Module:Template test case
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 94: | Line 94: | ||
function Template:getFullPage() | function Template:getFullPage() | ||
if | if self.template then | ||
local strippedTemplate, hasColon = self.template:gsub('^:', '', 1) | local strippedTemplate, hasColon = self.template:gsub('^:', '', 1) | ||
hasColon = hasColon > 0 | hasColon = hasColon > 0 | ||
Line 110: | Line 106: | ||
return mw.site.namespaces[10].name .. ':' .. strippedTemplate | return mw.site.namespaces[10].name .. ':' .. strippedTemplate | ||
end | end | ||
else | |||
return self.title.prefixedText | |||
end | end | ||
end | end | ||
Line 146: | Line 144: | ||
if format == 'code' then | if format == 'code' then | ||
invocation = '<code>' .. mw.text.nowiki(invocation) .. '</code>' | invocation = '<code>' .. mw.text.nowiki(invocation) .. '</code>' | ||
elseif format == 'plain' then | elseif format == 'plain' then | ||
invocation = mw.text.nowiki(invocation) | invocation = mw.text.nowiki(invocation) | ||
Line 160: | Line 156: | ||
function Template:getOutput() | function Template:getOutput() | ||
return self._invocation:getOutput{ | |||
template = self:getName(), | template = self:getName(), | ||
requireMagicWord = self.requireMagicWord, | requireMagicWord = self.requireMagicWord, | ||
} | } | ||
end | end | ||
Line 181: | Line 175: | ||
columns = 'renderColumns', | columns = 'renderColumns', | ||
rows = 'renderRows', | rows = 'renderRows', | ||
inline = 'renderInline', | inline = 'renderInline', | ||
default = 'renderDefault' | default = 'renderDefault' | ||
} | } | ||
Line 213: | Line 205: | ||
generalOptions.showcaption = yesno(generalOptions.showcaption) ~= false | generalOptions.showcaption = yesno(generalOptions.showcaption) ~= false | ||
generalOptions.collapsible = yesno(generalOptions.collapsible) | generalOptions.collapsible = yesno(generalOptions.collapsible) | ||
obj.options = generalOptions | obj.options = generalOptions | ||
Line 297: | Line 287: | ||
-- 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. | ||
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 | ||
break | |||
end | end | ||
end | end | ||
Line 327: | Line 316: | ||
local out = obj:getOutput() | local out = obj:getOutput() | ||
-- Remove the random parts from strip markers. | -- Remove the random parts from strip markers. | ||
out = out:gsub('( | out = out:gsub('(%cUNIQ).-(QINU%c)', '%1%2') | ||
return out | return out | ||
end | end | ||
Line 341: | Line 330: | ||
function TestCase:makeCollapsible(s) | function TestCase:makeCollapsible(s) | ||
local isEqual = self:templateOutputIsEqual() | local isEqual = self:templateOutputIsEqual() | ||
local root = mw.html.create('table') | local root = mw.html.create('table') | ||
root | root | ||
:addClass('collapsible') | |||
:addClass(isEqual and 'collapsed' or nil) | |||
:addClass(' | |||
:css('background-color', 'transparent') | :css('background-color', 'transparent') | ||
:css('width', '100%') | :css('width', '100%') | ||
Line 387: | Line 341: | ||
:tag('th') | :tag('th') | ||
:css('background-color', isEqual and 'lightgreen' or 'yellow') | :css('background-color', isEqual and 'lightgreen' or 'yellow') | ||
:wikitext(title) | :wikitext(self.options.title or self.templates[1]:makeHeader()) | ||
:done() | :done() | ||
:done() | :done() | ||
Line 395: | Line 349: | ||
:wikitext(s) | :wikitext(s) | ||
:newline() | :newline() | ||
return tostring(root) | return tostring(root) | ||
end | end | ||
Line 450: | Line 403: | ||
-- Template output | -- Template output | ||
for i, obj in ipairs(self.templates) do | for i, obj in ipairs(self.templates) do | ||
dataRow:tag('td') | |||
:newline() | |||
:wikitext(self.options.before) | |||
:wikitext(self:getTemplateOutput(obj)) | |||
:wikitext(self.options.after) | |||
end | end | ||
Line 499: | Line 433: | ||
for _, obj in ipairs(self.templates) do | for _, obj in ipairs(self.templates) do | ||
-- Build the row HTML | |||
-- | |||
if self.options.showheader then | if self.options.showheader then | ||
tableroot:tag('tr'):tag('td') | |||
:css('text-align', 'center') | |||
:css('font-weight', 'bold') | |||
:wikitext(obj:makeHeader()) | |||
end | end | ||
tableroot:tag('tr'):tag('td') | |||
:newline() | |||
:wikitext(self:getTemplateOutput(obj)) | |||
end | end | ||
Line 549: | Line 453: | ||
for i, obj in ipairs(self.templates) do | for i, obj in ipairs(self.templates) do | ||
local line = {} | local line = {} | ||
line[#line + 1] = | line[#line + 1] = '* ' | ||
if self.options.showcode then | if self.options.showcode then | ||
line[#line + 1] = obj:getInvocation('code') | line[#line + 1] = obj:getInvocation('code') | ||
Line 556: | Line 460: | ||
line[#line + 1] = ' ' | line[#line + 1] = ' ' | ||
end | end | ||
line[#line + 1] = self:getTemplateOutput(obj) | |||
ret[#ret + 1] = table.concat(line) | ret[#ret + 1] = table.concat(line) | ||
end | end | ||
if self.options.addline then | if self.options.addline then | ||
local line = {} | local line = {} | ||
line[#line + 1] = | line[#line + 1] = '* ' | ||
line[#line + 1] = self.options.addline | line[#line + 1] = self.options.addline | ||
ret[#ret + 1] = table.concat(line) | ret[#ret + 1] = table.concat(line) | ||
end | end | ||
return table.concat(ret, '\n') | return table.concat(ret, '\n') | ||
end | end | ||
Line 649: | Line 482: | ||
ret[#ret + 1] = obj:makeHeader() | ret[#ret + 1] = obj:makeHeader() | ||
end | end | ||
ret[#ret + 1] = self:getTemplateOutput(obj) | |||
end | end | ||
return table.concat(ret, '\n\n') | return table.concat(ret, '\n\n') | ||
Line 745: | Line 572: | ||
function TableInvocation:getOutput(options) | function TableInvocation:getOutput(options) | ||
return mw.getCurrentFrame():expandTemplate{ | return mw.getCurrentFrame():expandTemplate{ | ||
title = options.template, | title = options.template, |