Module:Mapframe/sandbox/testcases

-- Unit tests for Module:Example. Click talk page to run tests. local mapframeModule = require('Module:Mapframe/sandbox').test -- the module to be tested local ScribuntoUnit = require('Module:ScribuntoUnit') local suite = ScribuntoUnit:new

function suite:testGetParameterValue -- @params {Table}args, {String}param_id, [{Number}suffix] -- @returns {String|nil} local args = { display = "foo", type = "bar", type2 = "bar2", }   self:assertEquals(    	"foo",  mapframeModule.getParameterValue(args, "display"),    	"arg without suffix") self:assertEquals(   	"bar",  mapframeModule.getParameterValue(args, "type"),    	"arg without suffix (where there is also a same-named arg with a suffix)") self:assertEquals(   	"bar2", mapframeModule.getParameterValue(args, "type", 2),    	"arg with suffix") self:assertEquals(   	nil, mapframeModule.getParameterValue(args, "type", 3),    	"arg with suffix not present (same-named arg with different suffix is present)") self:assertEquals(   	nil, mapframeModule.getParameterValue(args, "display", 3),    	"arg with suffix not present (same-named arg without any suffix is present)") self:assertEquals(   	nil, mapframeModule.getParameterValue(args, "id"),    	"arg not present") self:assertEquals(  	nil, mapframeModule.getParameterValue(args, "id", 3),   	"-- arg with suffix not present (no same-named arg with or without any suffix)") end

function suite:testTrimArgs -- @param {Table&#x3c;String, String|Number&#x3e;}argsTable -- @returns {Table&#x3c;String, String|Number&#x3e;} local args = { foo = "foo", spaced = " spaced ", leadingSpace = "  leading space", trailingSpace = "trailingSapce   ", empty = "", number = 42, controlChar = "control" .. string.char(0x05) .. "char" }	local expected = { foo = "foo", spaced = "spaced", leadingSpace = "leading space", trailingSpace = "trailingSapce", number = 42, controlChar = "control char" }   self:assertDeepEquals(expected, mapframeModule.trimArgs(args)) end

function suite:testIsAffirmed -- @param {String} val -- @returns {Boolean} local affirmWords = { "add", "added", "affirm", "affirmed", "include", "included", "on", "true", "yes", "y" }	local otherWords = { "foo", "bar", "no", "n", ""	}	for _, word in pairs(affirmWords) do		self:assertTrue(mapframeModule.isAffirmed(word)) end for _, word in pairs(otherWords) do		self:assertFalse(mapframeModule.isAffirmed(word)) end end

function suite:testIsDeclined -- @param {String} val -- @returns {Boolean} local declineWords = { "decline", "declined", "exclude", "excluded", "false", "none", "not", "no", "n", "off", "omit", "omitted", "remove", "removed" }	local otherWords = { "foo", "bar", "yes", "y", ""	}	for _, word in pairs(declineWords) do		self:assertTrue(mapframeModule.isDeclined(word)) end for _, word in pairs(otherWords) do		self:assertFalse(mapframeModule.isDeclined(word)) end end

return suite