Module:Icon/testcases
Appearance
From Wikipedia, the free encyclopedia
localmIcon=require('Module:Icon/sandbox') localScribuntoUnit=require('Module:ScribuntoUnit') localsuite=ScribuntoUnit:new() -- Use a shortcut function to call mIcon._main using custom icon data. localfunctionicon(args) localdata={ fa={ image="Featured article star.svg", tooltip="Featured article", link=true, }, ga={ image="Symbol support vote.svg", tooltip="Good article", link=false, }, wikipedia={ image="Wikipedia-logo.svg", tooltip="Wikipedia page", }, _DEFAULT={ image="Symbol question.svg", link=false, } } returnmIcon._main(args,data) end functionsuite:assertIsFileLink(s) self:assertStringContains('^%[%[File:[^%]]+%]%]$',s) self:assertStringContains('|class=noviewer',s,true) end locallinkPattern='|link=[|%]]' functionsuite:assertLinkIsSuppressed(s) self:assertStringContains(linkPattern,s) end functionsuite:assertLinkIsNotSuppressed(s) self:assertNotStringContains(linkPattern,s) end suite["test _main: when no icon code is specified, a file link is output"]=function(self) self:assertIsFileLink(icon{}) end suite["test _main: when an existing icon code is specified, a file link is output"]=function(self) self:assertIsFileLink(icon{'fa'}) end suite["test _main: when an nonexistent icon code is specified, a file link is output"]=function(self) self:assertIsFileLink(icon{'nonexistentcode'}) end suite["test _main: when an existing code is specified, the relevant image is displayed"]=function(self) self:assertStringContains('Symbol support vote.svg',icon{'ga'},true) end suite["test _main: when an existing code is specified, the relevant tooltip is displayed"]=function(self) self:assertStringContains('Good article',icon{'ga'},true) end suite["test _main: when no dimensions are specified, the image is output as 16x16 pixels"]=function(self) self:assertStringContains('16x16px',icon{}) end suite["test _main: when custom dimensions are specified, the image is output with those dimensions"]=function(self) self:assertStringContains('320px',icon{size='320px'}) end suite["test _main: codes can have surrounding whitespace"]=function(self) self:assertStringContains('Featured article',icon{' fa '}) end suite["test _main: codes can be upper case"]=function(self) self:assertStringContains('Featured article',icon{'FA'}) end suite["test _main: codes can be specified with the 'class' parameter"]=function(self) self:assertStringContains('Featured article',icon{class='fa'}) end suite["test _main: the class parameter has precedence over the first positional parameter"]=function(self) self:assertNotStringContains('Featured article',icon{'fa',class='ga'}) end suite["test _main: the class parameter has precedence over the first positional parameter, even if the class parameter is the empty string"]=function(self) self:assertNotStringContains('Featured article',icon{'fa',class=''}) end suite["test _main: links are suppressed when the entry in the data table has 'link' set to false"]=function(self) self:assertLinkIsSuppressed(icon{'ga'}) end suite["test _main: links are not suppressed when the entry in the data table has 'link' set to true"]=function(self) self:assertNotStringContains(linkPattern,icon{'fa'}) end suite["test _main: links are not suppressed when the entry in the data table has no value for 'link'"]=function(self) self:assertNotStringContains(linkPattern,icon{'wikipedia'}) end suite["test Module:Icon/data: codes can be specified as aliases"]=function(self) self:assertStringContains('Former featured article',mIcon._main{'dfa'}) end returnsuite