Module:Icon/testcases: Difference between revisions
Appearance
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: | Line 2: | ||
local ScribuntoUnit = require('Module:ScribuntoUnit') |
local ScribuntoUnit = require('Module:ScribuntoUnit') |
||
local suite = ScribuntoUnit:new() |
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) |
|||
⚫ | |||
function suite:assertIsFileLink(s) |
function suite:assertIsFileLink(s) |
||
Line 9: | Line 32: | ||
function suite:testIsFileLink() |
function suite:testIsFileLink() |
||
self:assertIsFileLink( |
self:assertIsFileLink(icon{}) |
||
self:assertIsFileLink( |
self:assertIsFileLink(icon{'fa'}) |
||
self:assertIsFileLink( |
self:assertIsFileLink(icon{'qwertyuiop'}) |
||
end |
end |
||
function suite:testGA() |
function suite:testGA() |
||
self:assertStringContains('Symbol support vote.svg', |
self:assertStringContains('Symbol support vote.svg', icon{'ga'}, true) |
||
self:assertStringContains('Good article', |
self:assertStringContains('Good article', icon{'ga'}, true) |
||
end |
end |
||
function suite:testDefaultSize() |
function suite:testDefaultSize() |
||
self:assertStringContains('16x16px', |
self:assertStringContains('16x16px', icon{}) |
||
end |
end |
||
function suite:testCustomSize() |
function suite:testCustomSize() |
||
self:assertStringContains('320px', |
self:assertStringContains('320px', icon{size = '320px'}) |
||
⚫ | |||
⚫ | |||
⚫ | |||
end |
end |
||
function suite:testCodeWhitespace() |
function suite:testCodeWhitespace() |
||
self:assertStringContains('Featured article', |
self:assertStringContains('Featured article', icon{' fa '}) |
||
end |
end |
||
function suite:testCodeCapitalization() |
function suite:testCodeCapitalization() |
||
self:assertStringContains('Featured article', |
self:assertStringContains('Featured article', icon{'FA'}) |
||
end |
end |
||
function suite:testClassParameter() |
function suite:testClassParameter() |
||
self:assertStringContains('Featured article', |
self:assertStringContains('Featured article', icon{class = 'fa'}) |
||
end |
end |
||
function suite:testClassParameterOverride() |
function suite:testClassParameterOverride() |
||
self:assertNotStringContains('Featured article', |
self:assertNotStringContains('Featured article', icon{'fa', class = 'ga'}) |
||
self:assertNotStringContains('Featured article', |
self:assertNotStringContains('Featured article', icon{'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 |
|||
⚫ | |||
⚫ | |||
end |
end |
||
Revision as of 05:46, 29 August 2021
![]() | This is the test cases page for the module Module:Icon. Results of the test cases. |
local mIcon = require('Module:Icon/sandbox')
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)
self:assertStringContains('^%[%[File:[^%]]+%]%]$', s)
self:assertStringContains('|class=noviewer', s, true)
end
function suite:testIsFileLink()
self:assertIsFileLink(icon{})
self:assertIsFileLink(icon{'fa'})
self:assertIsFileLink(icon{'qwertyuiop'})
end
function suite:testGA()
self:assertStringContains('Symbol support vote.svg', icon{'ga'}, true)
self:assertStringContains('Good article', icon{'ga'}, true)
end
function suite:testDefaultSize()
self:assertStringContains('16x16px', icon{})
end
function suite:testCustomSize()
self:assertStringContains('320px', icon{size = '320px'})
end
function suite:testCodeWhitespace()
self:assertStringContains('Featured article', icon{' fa '})
end
function suite:testCodeCapitalization()
self:assertStringContains('Featured article', icon{'FA'})
end
function suite:testClassParameter()
self:assertStringContains('Featured article', icon{class = 'fa'})
end
function suite:testClassParameterOverride()
self:assertNotStringContains('Featured article', icon{'fa', class = 'ga'})
self:assertNotStringContains('Featured article', icon{'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
return suite