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

From Wikipedia, the free encyclopedia
-- Example Unit tests for [[Module:UnitTests]]. Click talk page to run tests.
require[[strict]]
local p = require('Module:UnitTests')

local frame0 = mw.getCurrentFrame()
local frame0_getTitle = frame0:getTitle()
local getCurrentFrame_getTitle = mw.getCurrentFrame():getTitle()
local arg = ...

function p._test(frame)
	return
		"# " .. frame:getTitle() .. "\n" ..
		"# " .. frame0:getTitle() .. "\n" ..
		"# " .. frame0_getTitle .. "\n" ..
		"# " .. getCurrentFrame_getTitle .. "\n" ..
		"# " .. mw.dumpObject(arg) .. "\n" ..
		""
end

function p._test0(frame)
	return
		"# Module:UnitTests/testcases\n" ..
		"# Module:UnitTests/testcases\n" ..
		"# Module:UnitTests/testcases\n" ..
		"# Module:UnitTests/testcases\n" ..
		"# nil\n" ..
	""
end

function p.preprocess(frame)
	--return frame.args[1]
	return frame:preprocess(frame.args[1])
end

function p.p1(frame)
	return frame:preprocess('{{#invoke:UnitTests/testcases | _test}}')
end

function p.p2(frame)
	return frame:preprocess('{{#invoke:UnitTests/testcases/frame | _test}}')
end

function p:test()
	local testcases_expected_result = "" ..
		"# Module:UnitTests/testcases\n" ..
		"# Module:UnitTests/testcases\n" ..
		"# Module:UnitTests/testcases\n" ..
		"# Module:UnitTests/testcases\n" ..
		""
	self:preprocess_equals('{{#invoke:UnitTests/testcases | _test}}', "\n" ..
		testcases_expected_result ..
		"# nil\n" ..
	"")
	self:preprocess_equals('{{#invoke:UnitTests/testcases | _test}}', "\n" ..
		testcases_expected_result ..
		"# nil\n" ..
	"", {nowiki=true})
	self:preprocess_equals('{{#invoke:UnitTests/testcases | _test}}', "\n" ..
		testcases_expected_result ..
		"# nil\n" ..
	"", {combined=true})
	local testcases_frame_expected_result = "" ..
		"# Module:UnitTests/testcases/frame\n" ..
		"# Module:UnitTests/testcases/frame\n" ..
		"# Module:UnitTests/testcases/frame\n" ..
		"# Module:UnitTests/testcases/frame\n" ..
		""
	self:preprocess_equals('{{#invoke:UnitTests/testcases/frame | _test}}', "\n" ..
		testcases_frame_expected_result ..
		"# nil\n" ..
	"")
	self:equals("<nowiki>mw.getCurrentFrame():preprocess( '{{#invoke:UnitTests/testcases/frame | _test}}' )</nowiki>",
		mw.getCurrentFrame():preprocess( '{{#invoke:UnitTests/testcases/frame | _test}}' ),
		"\n" ..
		testcases_frame_expected_result ..
		"# nil\n" ..
	"")
	self:equals("<nowiki>frame0:preprocess( '{{#invoke:UnitTests/testcases/frame | _test}}' )</nowiki>",
		frame0:preprocess( '{{#invoke:UnitTests/testcases/frame | _test}}' ),
		"\n" ..
		testcases_frame_expected_result ..
		"# nil\n" ..
	"")
	--[[self:equals("<nowiki>frame0:expandTemplate{ title = '#invoke:UnitTests/testcases/frame', args = { '_test' } }</nowiki>",
		frame0:expandTemplate{ title = '#invoke:UnitTests/testcases/frame', args = { '_test' } },
		"\n" ..
		testcases_frame_expected_result ..
		"# nil\n" ..
	"")]]
	self:equals("require('Module:UnitTests/testcases/frame')._test(mw.getCurrentFrame())",
		"\n"..require('Module:UnitTests/testcases/frame')._test(mw.getCurrentFrame()),
		"\n" ..
		testcases_expected_result ..
		'# "Module:UnitTests/testcases/frame"\n' ..
	"")
	self:equals("p._test(frame0)",
		"\n"..p._test(frame0),
		"\n" ..
		testcases_expected_result ..
		"# nil\n" ..
	"")
	self:equals("p._test(mw.getCurrentFrame())",
		"\n"..p._test(mw.getCurrentFrame()),
		"\n" ..
		testcases_expected_result ..
		"# nil\n" ..
	"")
	--[[self:preprocess_equals('{{#invoke:UnitTests/testcases | _test0}}', "\n" ..
		testcases_expected_result ..
		"# nil\n" ..
	"")
	self:preprocess_equals('{{#invoke:UnitTests/testcases | _test0}}', "\n" .. p._test0())
	]]
	self:equals("Blatant fail", "<span>String 1</span>", "<span>String 2</span>")
end

--[=[
function p:error1()
	error("p:error1")
end

function p.error2()
	error("p.error2")
end

function p:error3()
	error("p:error3")
end

function p.error3()
	error("p.error3")
end

function p.error4()
	error("p.error4")
end

function p:error4()
	error("p:error4")
end

function p:test_error5()
	error("p:test_error5")
end

function p:_test6()
	error("p:_test6")
end

function p.ttest_error7()
	error("p.test_error7")
end

function p._test8()
	error("p.test8")
end
--]=]

return p