Module:Side box/testcases
Appearance
![]() | This is the test cases page for the module Module:Side box. Results of the test cases. |
local mSideBox = require('Module:Side box')
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()
--------------------------------------------------------------------------------
-- Default values
--------------------------------------------------------------------------------
local d = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
function suite:assertArrayContainsString(expected, t)
-- This only works on arrays that only contain strings.
local sep = '|SEPARATOR|'
local concatenated = sep .. table.concat(t, sep) .. sep
self:assertStringContains(sep .. expected .. sep, concatenated, true)
end
function suite:assertNotArrayContainsString(expected, t)
-- This only works on arrays that only contain strings.
local sep = '|SEPARATOR|'
local concatenated = sep .. table.concat(t, sep) .. sep
self:assertNotStringContains(sep .. expected .. sep, concatenated, true)
end
--------------------------------------------------------------------------------
-- Test makeData
--------------------------------------------------------------------------------
function suite:testDataBlank()
self:assertEquals('table', type(mSideBox.makeData{}))
self:assertEquals('table', type(mSideBox.makeData{}.classes))
end
function suite:testDataMetadata()
suite:assertNotArrayContainsString('metadata', mSideBox.makeData{}.classes)
suite:assertNotArrayContainsString('metadata', mSideBox.makeData{metadata = 'no'}.classes)
suite:assertNotArrayContainsString('metadata', mSideBox.makeData{metadata = false}.classes)
suite:assertArrayContainsString('metadata', mSideBox.makeData{metadata = 'yes'}.classes)
suite:assertArrayContainsString('metadata', mSideBox.makeData{metadata = true}.classes)
suite:assertArrayContainsString('metadata', mSideBox.makeData{metadata = 'foo'}.classes)
end
--------------------------------------------------------------------------------
-- Test renderSidebox
--------------------------------------------------------------------------------
function suite.cleanPattern(s)
-- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally.
s = s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1')
return s
end
function suite.makePattern(tag, attr, s1, s2)
-- For making a pattern to use with assertStringContains inside a specific attribute and HTML tag.
s1 = suite.cleanPattern(s1)
if s2 then
s2 = suite.cleanPattern(s2)
end
local ssep = ''
if s2 then
ssep = '%s*:%s*'
end
s2 = s2 or ''
return string.format(
'<%s[^>]-%s="[^">]-%s%s%s[^">]-">',
tag,
attr,
s1,
ssep,
s2
)
end
return suite