Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Module:Mapframe/sandbox/testcases

From Wikipedia, the free encyclopedia
-- 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<String, String|Number>}argsTable
	-- @returns {Table<String, String|Number>}
	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