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 211: | Line 203: | ||
generalOptions.showcode = yesno(generalOptions.showcode) | generalOptions.showcode = yesno(generalOptions.showcode) | ||
generalOptions.showheader = yesno(generalOptions.showheader) ~= false | generalOptions.showheader = yesno(generalOptions.showheader) ~= false | ||
generalOptions.collapsible = yesno(generalOptions.collapsible) | generalOptions.collapsible = yesno(generalOptions.collapsible) | ||
obj.options = generalOptions | obj.options = generalOptions | ||
Line 297: | Line 286: | ||
-- 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 315: | ||
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 329: | ||
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 340: | ||
: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 348: | ||
:wikitext(s) | :wikitext(s) | ||
:newline() | :newline() | ||
return tostring(root) | return tostring(root) | ||
end | end | ||
Line 411: | Line 363: | ||
if self.options.showheader then | if self.options.showheader then | ||
-- Caption | -- Caption | ||
tableroot | |||
:addClass(self.options.class) | |||
:cssText(self.options.style) | |||
:tag('caption') | |||
:wikitext(self.options.caption or self:message('columns-header')) | |||
-- Headers | -- Headers | ||
Line 450: | Line 400: | ||
-- 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 430: | ||
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 450: | ||
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 457: | ||
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 | ||
return table.concat(ret, '\n') | return table.concat(ret, '\n') | ||
end | end | ||
Line 649: | Line 473: | ||
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 563: | ||
function TableInvocation:getOutput(options) | function TableInvocation:getOutput(options) | ||
return mw.getCurrentFrame():expandTemplate{ | return mw.getCurrentFrame():expandTemplate{ | ||
title = options.template, | title = options.template, |