Module:Sandbox/kkuo/testcases
Documentation for this module may be created at Module:Sandbox/kkuo/testcases/doc
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()
local cclicense = require('Module:Sandbox/kkuo')
function suite:getMockFrame(args)
return {
getParent = function() return { args = args } end,
args = {},
expandTemplate = function(_, templateData) return templateData end
}
end
function suite:testCC0()
local frame = self:getMockFrame({zero = "yes"})
local res = cclicense.main(frame)
self:assertEquals('This file is licensed under the [https://creativecommons.org/publicdomain/zero/1.0/ CC0 1.0 Universal] license.', res.args.title)
self:assertTrue(res.args.description:find('without asking permission', 1, true) ~= nil)
self:assertEquals('CC0 1.0', res.args.shortname)
self:assertEquals('CC0 1.0 Universal', res.args.longname)
self:assertEquals('https://creativecommons.org/publicdomain/zero/1.0/', res.args.link)
self:assertTrue(res.args.icons:find('Cc-zero.svg|32px', 1, true) ~= nil)
self:assertEquals('false', res.args.linkreq)
self:assertEquals('false', res.args.attrreq)
self:assertEquals('false', res.args.nonfree)
end
function suite:testCCBY40Default()
local frame = self:getMockFrame({version = "4.0"})
local res = cclicense.main(frame)
self:assertEquals('https://creativecommons.org/licenses/by/4.0/', res.args.link)
self:assertEquals('This file is licensed under the [https://creativecommons.org/licenses/by/4.0/ Creative Commons Attribution 4.0 International] license.', res.args.title)
end
function suite:testCCBYSA40WithAttribution()
local frame = self:getMockFrame({by = "1", sa = "true", version = "4.0", attribution = "Canonical Ltd."})
local res = cclicense.main(frame)
self:assertEquals('This file is licensed under the [https://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0 International] license.', res.args.title)
self:assertTrue(res.args.description:find('You are free:', 1, true) ~= nil)
self:assertTrue(res.args.description:find('to share', 1, true) ~= nil)
self:assertTrue(res.args.description:find('to remix', 1, true) ~= nil)
self:assertTrue(res.args.description:find('attribution', 1, true) ~= nil)
self:assertTrue(res.args.description:find('share alike', 1, true) ~= nil)
self:assertEquals('Canonical Ltd.', res.args.attribution)
self:assertEquals('CC BY-SA 4.0', res.args.shortname)
self:assertEquals('https://creativecommons.org/licenses/by-sa/4.0/', res.args.link)
self:assertTrue(res.args.icons:find('Cc-by.svg|32px', 1, true) ~= nil)
self:assertTrue(res.args.icons:find('Cc-sa.svg|32px', 1, true) ~= nil)
self:assertEquals('true', res.args.linkreq)
self:assertEquals('true', res.args.attrreq)
self:assertEquals('false', res.args.nonfree)
end
function suite:testNDPrecedenceOverSA()
local frame = self:getMockFrame({by = "1", nd = "1", sa = "1"})
local res = cclicense.main(frame)
self:assertTrue(res.args.description:find('no derivatives', 1, true) ~= nil)
self:assertTrue(res.args.description:find('share alike', 1, true) == nil)
self:assertTrue(res.args.description:find('to remix', 1, true) == nil)
self:assertEquals('true', res.args.nonfree)
end
return suite