Jump to content

Module:Template test case: Difference between revisions

allow Template.outputEquals to compare more than two template objects
(add a Template.outputEquals function)
(allow Template.outputEquals to compare more than two template objects)
Line 24: Line 24:
}
}


function Template.outputEquals(obj1, obj2)
function Template.outputEquals(...)
-- This function accepts 2 or more template objects and compares their
-- output. If all the outputs are equal, it returns true, and if any of them
-- are different, it returns false.
local n = select('#', ...)
if n < 2 then
error('Template.outputEquals requires at least two arguments', 2)
end
local function normaliseOutput(obj)
local function normaliseOutput(obj)
local out = obj:getOutput()
local out = obj:getOutput()
Line 31: Line 38:
return out
return out
end
end
return normaliseOutput(obj1) == normaliseOutput(obj2)
local prevOutput = normaliseOutput(select(1, ...))
for i = 2, n do
local output = normaliseOutput(select(i, ...))
if output ~= prevOutput then
return false
end
prevOutput = output
end
return true
end
end


Cookies help us deliver our services. By using our services, you agree to our use of cookies.