Module:Icon/testcases: Difference between revisions

Content deleted Content added
add check for noviewer class
define a data table locally to make the tests more stable, and add a test for link suppression
Line 2:
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()
 
local ICON_DATA = {
fa = {
image = "Featured article star.svg",
tooltip = "Featured article",
link = true,
},
ga = {
image = "Symbol support vote.svg",
tooltip = "Good article",
link = false,
},
_DEFAULT = {
image = "Symbol question.svg",
link = false,
}
}
 
-- Use a shortcut function to call mIcon._main using the icon data we define
-- above.
local function icon(args)
return mIcon._main(args, ICON_DATA)
end
 
function suite:assertIsFileLink(s)
Line 9 ⟶ 32:
 
function suite:testIsFileLink()
self:assertIsFileLink(mIcon._mainicon{})
self:assertIsFileLink(mIcon._mainicon{'fa'})
self:assertIsFileLink(mIcon._mainicon{'qwertyuiop'})
end
 
function suite:testGA()
self:assertStringContains('Symbol support vote.svg', mIcon._mainicon{'ga'}, true)
self:assertStringContains('Good article', mIcon._mainicon{'ga'}, true)
end
 
function suite:testDefaultSize()
self:assertStringContains('16x16px', mIcon._mainicon{})
end
 
function suite:testCustomSize()
self:assertStringContains('320px', mIcon._mainicon{size = '320px'})
end
 
function suite:testAlias()
self:assertStringContains('Former featured article', mIcon._main{'dfa'})
end
 
function suite:testCodeWhitespace()
self:assertStringContains('Featured article', mIcon._mainicon{' fa '})
end
 
function suite:testCodeCapitalization()
self:assertStringContains('Featured article', mIcon._mainicon{'FA'})
end
 
function suite:testClassParameter()
self:assertStringContains('Featured article', mIcon._mainicon{class = 'fa'})
end
 
function suite:testClassParameterOverride()
self:assertNotStringContains('Featured article', mIcon._mainicon{'fa', class = 'ga'})
self:assertNotStringContains('Featured article', mIcon._mainicon{'fa', class = ''})
end
 
function suite:testLinkSuppression()
local linkPattern = '|link=[|%]]'
self:assertStringContains(linkPattern, icon{'ga'})
self:assertNotStringContains(linkPattern, icon{'fa'})
end
 
-- Functions that test the original data
 
function suite:testAlias()
self:assertStringContains('Former featured article', mIcon._main{'dfa'})
end