Module:Protect/testcases

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 a end

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

function p:test_protect self:equals(		'Keep location',		protect(error, {removeLocation = false})('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.f2 local 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, {raw = true})('foo'),		'Error: foo'	)

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

return p