跳转到内容

模組:Namespace/testcases

维基百科,自由的百科全书
-- [[Module:Namespace]]的單元測試,前往討論頁以執行測試。

require('strict')

local p = {}

--[=[
-- 生成測試的方式

local nsid_list = {}
local fn = 'namespaceName'

for nsid, _ in pairs(mw.site.namespaces) do
	if type(nsid) == 'number' then 
		table.insert(nsid_list, nsid)
	end
end

table.sort(nsid_list)

for _, nsid in ipairs(nsid_list) do
	local wikitext = '{{#invoke:Namespace|' .. fn .. '|zh-hant|' .. nsid .. '}}'
	mw.log("		{'" .. nsid .. "', '" .. mw.getCurrentFrame():preprocess(wikitext) .. "'},")
end
]=]

--[=[
-- 生成測試的方式(偽命名空間)

local data = mw.loadData('Module:Namespace/data')
local fn = 'ispseudo'

for _, nsid in ipairs(data['PseudoNamespace']['list']) do
	local wikitext = '{{#invoke:Namespace|' .. fn .. '|' .. nsid .. '}}'
	mw.log("	self:preprocess_equals('" .. wikitext .. "', '" .. mw.getCurrentFrame():preprocess(wikitext) .. "')")
end
]=]

-- lua api

local ScribuntoUnit = require('Module:ScribuntoUnit')

p.lua = ScribuntoUnit:new()

-- wikitext api

p.wikitext = require('Module:UnitTests')

p.wikitext['test namespaceName'] = function (self)
	self:preprocess_equals_many('{{#invoke:Namespace|namespaceName|zh-hant|', '}}', {
		{'-2', '媒體'},
		{'-1', '特殊'},
		{'0', '條目'},
		{'1', '討論'},
		{'2', '用戶'},
		{'3', '用戶討論'},
		{'4', '專案'},
		{'5', '專案討論'},
		{'6', '檔案'},
		{'7', '檔案討論'},
		{'8', '介面'},
		{'9', '介面討論'},
		{'10', '模板'},
		{'11', '模板討論'},
		{'12', '幫助'},
		{'13', '幫助討論'},
		{'14', '分類'},
		{'15', '分類討論'},
		{'100', '主題'},
		{'101', '主題討論'},
		{'102', '維基專題'},
		{'103', '維基專題討論'},
		{'118', '草稿'},
		{'119', '草稿討論'},
		{'126', 'MOS'},
		{'127', 'MOS talk'},
		{'710', '字幕'},
		{'711', '字幕討論'},
		{'828', '模組'},
		{'829', '模組討論'},
		{'1728', ''},
		{'1729', ''},
		{'2600', '結構式討論'},
	})
end

p['test conversionNamespaceName'] = function (self)
	self:preprocess_equals_many('{{#invoke:Namespace|conversionNamespaceName|zh-hant|', '}}', {
		{'-2', '媒體'},
		{'-1', '特殊'},
		{'0', '條目'},
		{'1', '討論'},
		{'2', '用戶'},
		{'3', '用戶討論'},
		{'4', '維基百科'},
		{'5', '維基百科討論'},
		{'6', '檔案'},
		{'7', '檔案討論'},
		{'8', 'MediaWiki'},
		{'9', 'MediaWiki討論'},
		{'10', '模板'},
		{'11', '模板討論'},
		{'12', '幫助'},
		{'13', '幫助討論'},
		{'14', '分類'},
		{'15', '分類討論'},
		{'100', '主題'},
		{'101', '主題討論'},
		{'102', '維基專題'},
		{'103', '維基專題討論'},
		{'118', '草稿'},
		{'119', '草稿討論'},
		{'126', 'MOS'},
		{'127', 'MOS talk'},
		{'710', '字幕'},
		{'711', '字幕討論'},
		{'828', '模組'},
		{'829', '模組討論'},
		{'1728', ''},
		{'1729', ''},
		{'2600', '結構式討論'},
	})
end

p.wikitext['test isPseudoNamespace'] = function (self)
	self:preprocess_equals_many('{{#invoke:Namespace|ispseudo|', '}}', {
		{'LTA', 'LTA'},
		{'NC', 'NC'},
		{'NT', 'NT'},
		{'RSP', 'RSP'},
	})
end

----

function p.run_lua_tests(frame)
	return p.lua.run(frame)
end

function p.run_wikitext_tests(frame)
	return p.wikitext:run(frame)
end

return p