Module:Wikt-lang/testcases
Appearance
This is the test cases page for the module Module:Wikt-lang. Results of the test cases. |
-- Unit tests for [[Module:Wikt-lang]]. Click talk page to run tests.
local p = require('Module:UnitTests')
local m_Language = require('Module:Wikt-lang')
local name_from_tag = require('Module:Lang')._name_from_tag
function p:test_1_link()
self:preprocess_equals_preprocess_many('{{#invoke:Wikt-lang/sandbox|main|', '}}', '{{#invoke:Wikt-lang|wiktlang|', '}}',
{
{"grc|δημοκρᾰτῐ́ᾱ"},
{"ha|àzàhàr̃iyyā̀"},
{"la|coëō"},
{"nci|Quetzalcōātl"},
{"ru|ру́сский язы́к"},
{"he|שלום"},
{"sh|ćá|ća"}, -- fake word with c-acute and tonal acute; add a real word if you know one
}, {nowiki=1})
end
function p:test_2_private_codes()
self:preprocess_equals_preprocess_many('{{#invoke:Wikt-lang/sandbox|main|', '}}', '{{#invoke:Wikt-lang|wiktlang|', '}}',
{
{"cel-x-proto|*beru"}, -- this private code is taken from Module:Lang's data
{"cel-x-bryproto|test"},
{"gem-x-proto|test"},
{"gmw-x-proto|test"},
{"grk-x-proto|test́к"},
{"ine-x-bsproto|test"},
{"ine-x-proto|test"},
{"non-x-proto|test"},
{"poz-x-polproto|test"},
{"sem-x-proto|test"},
{"sla-x-proto|test"},
{"zle-x-ort|test"},
}, {nowiki=1})
end
local function get_test_patterns(main)
local data = require('Module:Wikt-lang/data/sandbox')
local language_codes = {}
if main then
for code, values in pairs(data["languages"]) do
table.insert(language_codes, {code, values.name})
end
end
local function comp(a, b)
return a[1] < b[1]
end
table.sort(language_codes, comp)
return language_codes
end
function p:test_3_all_database_links()
local wiktionary_test_patterns = get_test_patterns(true)
local full_test_patterns = {}
for i = 1, #wiktionary_test_patterns do
local code = wiktionary_test_patterns[i][1]
table.insert(full_test_patterns, {code .. "|test", code .. "|test"})
end
self:preprocess_equals_preprocess_many('{{#invoke:Wikt-lang/sandbox|main|', '}}', '{{#invoke:Wikt-lang|wiktlang|no_cat=yes|', '}}', full_test_patterns, {nowiki=1})
end
function p:test_4_errors()
self:preprocess_equals_preprocess_many('{{#invoke:Wikt-lang/sandbox|main|', '}}', '{{#invoke:Wikt-lang|wiktlang|', '}}',
{
-- not a valid code
{"abcd|test"},
-- not a valid private code
{"abc-x-proto|test"},
-- no code
{""},
-- text, but no code
{"|test"},
-- display text, but no code
{"||test"},
-- no text
{"la|"},
-- no link text
{"la||test"},
-- invalid unnamed |4=
{"la|test|test|number 4"},
-- invalid parameter (|test=)
{"la|test|test|test=number 4"},
}, {nowiki=1})
end
return p