Module:Protect/testcases explained

local p = require('Module:UnitTests')local protect = require('Module:Protect')

local o = function o.f1(a) if not a then error('missing argument') end return aend

function o:f2(a) if not a then error('missing argument') end return aend

function p:test_protect self:equals('Keep location', protect(error,)('foo', 3), self.frame:preprocess('') )

self:equals('.', protect(o.f1)('Foo'), 'Foo' ) self:equals('.', protect(o.f1)(o, 'Foo'), o ) self:equals(':', protect(o.f2)('Foo'), self.frame:preprocess('') ) self:equals(':', protect(o.f2)(o, 'Foo'), 'Foo' ) protect(o.f2)protect(o.f2)local a = o.f2local b = o.f2

self:equals('Success', protect(mw.clone)('Foo'), 'Foo' ) self:equals('Default error', protect(error)('foo'), self.frame:preprocess('') ) self:equals('No caught message', protect(error), self.frame:preprocess('') ) self:equals('Custom errFormat', protect(error, 'Failure (%s)')('foo'), self.frame:preprocess('') ) self:equals('Raw errFormat', protect(error,)('foo'), 'Error: foo' )

self:equals('Custom raw errFormat', protect(error, 'Failure (%s)',)('foo'), 'Failure (foo)' ) self:equals('Remove location', protect(error)('foo', 3), self.frame:preprocess('') )end

return p