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:Protect/testcases

From Wikipedia, the free encyclopedia
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('{{Error|Error: Module:Protect/testcases:22: foo}}')
	)

	self:equals(
		'.',
		protect(o.f1)('Foo'),
		'Foo'
	)
	
	self:equals(
		'.',
		protect(o.f1)(o, 'Foo'),
		o
	)
	
	self:equals(
		':',
		protect(o.f2)('Foo'),
		self.frame:preprocess('{{Error|Error: missing argument}}')
	)
	
	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('{{Error|Error: foo}}')
	)
	
	self:equals(
		'No caught message',
		protect(error)(),
		self.frame:preprocess('{{Error|Error: (no message)}}')
	)
	
	self:equals(
		'Custom errFormat',
		protect(error, 'Failure (%s)')('foo'),
		self.frame:preprocess('{{Error|Failure (foo)}}')
	)
	
	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('{{Error|Error: foo}}')
	)
end

return p