Module:Int/testcases

来自Minecraft基岩版开发Wiki

Yes All tests passed.

Name Expected Actual
Yes testRenderIntMessage
Yes testRenderIntMessageWithLang
local p = require('Module:ScribuntoUnit'):new()
local m = require('Module:Int')

local function callWithArgs(msg, lang, args)
	local templateArgs = { msg }
	if args then
		for n, v in ipairs(args) do
			templateArgs[n+1] = v
		end
	end
	local frame = (mw.getCurrentFrame()
		:newChild{ args = templateArgs }
		:newChild{ args = { [1] = msg, lang = lang } })
	return m.renderIntMessage(frame)
end

function p:testRenderIntMessage()
	self:assertEquals('查看历史', callWithArgs('vector-view-history'))
	self:assertEquals('查看历史', callWithArgs('vector-view-history', nil, {'unused', 'data', 2.71}))
	self:assertEquals('查看$1条一般通知', callWithArgs('notification-link-text-expand-notice-count'))
	self:assertEquals('查看1条一般通知', callWithArgs('notification-link-text-expand-notice-count', nil, {'1'}))
	self:assertEquals('查看1条一般通知', callWithArgs('notification-link-text-expand-notice-count', nil, {1}))
end

function p:testRenderIntMessageWithLang()
	self:assertEquals('查看历史', callWithArgs('vector-view-history', ''))
	self:assertEquals('查看历史', callWithArgs('vector-view-history', 'zh-hans'))
	-- Apostrophes are invalid in language codes; they should be ignored rather than throwing an error
	self:assertEquals('查看历史', callWithArgs('vector-view-history', '"zh-hant"'))
	self:assertEquals('檢視歷史', callWithArgs('vector-view-history', 'zh-hant'))
end

return p