Module:LC zh/testcases/doc

From Test Wiki

This is the documentation page for Module:LC zh/testcases

Lua error: Module:TNT:172: '''Missing JsonConfig extension, or not properly configured; Cannot load https://commons.wikimedia.org/wiki/Data:I18n/Lua banner.tab. See https://www.mediawiki.org/wiki/Extension:JsonConfig#Supporting_Wikimedia_templates'''. --- Unit tests for Module:LC zh. Click talk page to run tests. -- -- self:preprocess_equals( "Lua error: Unknown content type code "nil".", "" ) -- -- self:preprocess_equals_many( -- "Lua error: Unknown content type code "", "".", -- { -- { "", "" }, -- } -- ) -- -- @var table local p = require( Module:UnitTests )

local current_frame = mw.getCurrentFrame()

-- Title.pageLang.code is an expensive function in Scribunto, thus not using -- pageLang.code here -- -- @var string local page_lang_code = current_frame:preprocess( "en" )

-- @var string local ui_lang_code = current_frame:callParserFunction{ name = "int", args = { "lang" } }

-- @var string local function lang_code_type( lang_code ) if lang_code == "zh" then return "zh" elseif ( lang_code == "zh-hans" or lang_code == "zh-cn" or lang_code == "zh-my" or lang_code == "zh-sg" ) then return "zh-hans" elseif ( lang_code == "zh-hant" or lang_code == "zh-tw" ) then return "zh-hant" elseif ( lang_code == "zh-hk" or lang_code == "zh-mo" ) then return "zh-hk" else return nil end end

-- @var string local function ui_lang_code_type() return lang_code_type( ui_lang_code ) end

-- @return table local function provide_test_main() return { { "lang = ", error = true }, { "lang = |type = N", error = true }, { "lang = |type = N|ns = ", "" }, { "lang = |type = N|ns = User", page_lang_code == "zh" and "-{zh:User; zh-hans:用户; zh-hant:使用者; zh-hk:用戶;}-" or ui_lang_code_type() == "zh" and "User" or ui_lang_code_type() == "zh-hans" and "用户" or ui_lang_code_type() == "zh-hant" and "使用者" or ui_lang_code_type() == "zh-hk" and "用戶" or "User" }, { "lang = |type = N|ns = Help", page_lang_code == "zh" and "-{zh:Help; zh-hans:帮助; zh-hant:說明;}-" or ui_lang_code_type() == "zh" and "Help" or ui_lang_code_type() == "zh-hans" and "帮助" or ui_lang_code_type() == "zh-hant" and "說明" or ui_lang_code_type() == "zh-hk" and "說明" or "Help" }, { "lang = |type = T", error = true }, { "lang = |type = T|ns = User", error = true }, { "lang = |type = T|ns = User|zh-hans = Example|zh-hant = Example", page_lang_code == "zh" and "-{zh:User; zh-hans:用户; zh-hant:使用者; zh-hk:用戶;}-:" .. "-{zh-hans:Example; zh-hant:Example;}-" or ui_lang_code_type() == "zh-hans" and "用户:Example" or ui_lang_code_type() == "zh-hant" and "使用者:Example" or ui_lang_code_type() == "zh-hk" and "用戶:Example" or "User:Example" }, { "lang = |type = T|ns = Help|zh-hans = 示例|zh-hant = 範例", page_lang_code == "zh" and "-{zh:Help; zh-hans:帮助; zh-hant:說明;}-:" .. "-{zh-hans:示例; zh-hant:範例;}-" or ui_lang_code_type() == "zh-hans" and "帮助:示例" or ui_lang_code_type() == "zh-hant" and "說明:範例" or ui_lang_code_type() == "zh-hk" and "說明:範例" or "Help:示例" }, { "lang = |type = T|ns = Help|zh-hant = 範例", page_lang_code == "zh" and "-{zh:Help; zh-hans:帮助; zh-hant:說明;}-:" .. "範例" or ui_lang_code_type() == "zh-hans" and "帮助:範例" or ui_lang_code_type() == "zh-hant" and "說明:範例" or ui_lang_code_type() == "zh-hk" and "說明:範例" or "Help:範例" }, { "lang = |type = T|hide_ns = 1|ns = Help", error = true }, { "lang = |type = T|hide_ns = 1|ns = Help|zh-hans = 示例|zh-hant = 範例", page_lang_code == "zh" and "-{zh-hans:示例; zh-hant:範例;}-" or ui_lang_code_type() == "zh-hans" and "示例" or ui_lang_code_type() == "zh-hant" and "範例" or ui_lang_code_type() == "zh-hk" and "範例" or "示例" }, { "lang = |type = H", error = true }, { "lang = |type = H|zh-hans = 用户|zh-hant = 使用者|zh-hk = 用戶", page_lang_code == "zh" and "" .. "" .. "" .. "-{zh-hans:用户; zh-hant:使用者; zh-hk:用戶;}-" or ui_lang_code_type() == "zh-hans" and "" .. "" .. "" .. "用户" or ui_lang_code_type() == "zh-hant" and "" .. "" .. "" .. "使用者" or ui_lang_code_type() == "zh-hk" and "" .. "" .. "" .. "用戶" or "" .. "" .. "" .. "用户" }, { "lang = |type = C", error = true }, { "lang = |type=C|zh-hans=示例|zh-hant=範例", page_lang_code == "zh" and "-{zh-hans:示例; zh-hant:範例;}-" or ui_lang_code_type() == "zh-hans" and "示例" or ui_lang_code_type() == "zh-hant" and "範例" or ui_lang_code_type() == "zh-hk" and "範例" or "示例" }, } end

function p:test_main() self:preprocess_expect_error( "Lua error: Unknown content type code "nil"." ) self:preprocess_equals_many( "Lua error: Unknown content type code "", "".", provide_test_main() ) end

function p:test_template() self:preprocess_expect_error( "Lua error: Unknown content type code "nil"." ) self:preprocess_equals_many( "Lua error: Unknown content type code "", "".", provide_test_main() ) end

-- TODO function p:test_template_localized_link() self:preprocess_equals( "[[:Special:MyLanguage/{{{1}}}|{{{1}}}]][[:{{{1}}}| ]]", "[[Special:MyLanguage/{{{1}}}|{{{1}}}]][[:{{{1}}}| ]]", { nowiki = true }) if page_lang_code == "zh" and ui_lang_code_type() ~= nil then if ui_lang_code_type() == "zh" then self:preprocess_equals( "[[:Special:MyLanguage/{{{1}}}|{{{1}}}]][[:{{{1}}}| ]]", "[[Special:MyLanguage/{{{1}}}|{{{1}}}]][[:{{{1}}}| ]]", { nowiki = true }) elseif ui_lang_code_type() == "zh-hans" then self:preprocess_equals( "[[:Special:MyLanguage/{{{1}}}|{{{1}}}]][[:{{{1}}}| ]]", "[[Special:MyLanguage/{{{1}}}|{{{1}}}]][[:{{{1}}}| ]]", { nowiki = true }) elseif ui_lang_code_type() == "zh-hant" then self:preprocess_equals( "[[:Special:MyLanguage/{{{1}}}|{{{1}}}]][[:{{{1}}}| ]]", "[[Special:MyLanguage/{{{1}}}|{{{1}}}]][[:{{{1}}}| ]]", { nowiki = true }) elseif ui_lang_code_type() == "zh-hk" then self:preprocess_equals( "[[:Special:MyLanguage/{{{1}}}|{{{1}}}]][[:{{{1}}}| ]]", "[[Special:MyLanguage/{{{1}}}|{{{1}}}]][[:{{{1}}}| ]]", { nowiki = true }) end end end

function p:test_template_localized_link_sandbox() self:preprocess_equals( "Template:Localized link/sandbox", "[[Special:MyLanguage/{{{1}}}|{{{1}}}]][[:{{{1}}}| ]]", { nowiki = true }) if page_lang_code == "zh" and ui_lang_code_type() ~= nil then if ui_lang_code_type() == "zh" then self:preprocess_equals( "Template:Localized link/sandbox", "[[Special:MyLanguage/{{{1}}}|{{{1}}}]][[:{{{1}}}| ]]", { nowiki = true }) elseif ui_lang_code_type() == "zh-hans" then self:preprocess_equals( "Template:Localized link/sandbox", "[[Special:MyLanguage/{{{1}}}|{{{1}}}]][[:{{{1}}}| ]]", { nowiki = true }) elseif ui_lang_code_type() == "zh-hant" then self:preprocess_equals( "Template:Localized link/sandbox", "[[Special:MyLanguage/{{{1}}}|{{{1}}}]][[:{{{1}}}| ]]", { nowiki = true }) elseif ui_lang_code_type() == "zh-hk" then self:preprocess_equals( "Template:Localized link/sandbox", "[[Special:MyLanguage/{{{1}}}|{{{1}}}]][[:{{{1}}}| ]]", { nowiki = true }) end end end

return p