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:Lang/codes/testcases

From Wikipedia, the free encyclopedia
local p = require("Module:UnitTests")

local get_ietf_parts = require("Module:Lang/sandbox").get_ietf_parts

local prepare

function p:check(code, expected)
	self:equals_deep(code, { get_ietf_parts(code) }, prepare(expected))
end

function p:test()
	local examples = {
		{ "de", { "de" } },
		{ "nav", { "nav" } },
		{ "1ca", { "1ca" } },
		{ "cmn-Latn", { "cmn", "latn" } },
		{ "he-hebr", { "he", "hebr" } },
		{ "de-ch", { "de", nil, "ch" } },
		{ "de-1901", { "de", nil, nil, "1901" } },
		{ "ru-petr1708", { "ru", nil, nil, "petr1708" } },
		{ "de-petr1708", {"de"} },
		{ "ca-valencia", { "ca", nil, nil, "valencia" } },
		{ "ru-cyrl-petr1708", {"ru", "cyrl"} },
		{ "ru-Cyril", {"ru"} },
		--[[
		{ "", { "" } },
		--]]
	}
	
	self:iterate(examples, "check")
end

function prepare(subtag_table)
	if not next(subtag_table) then
		return subtag_table
	end
	for i = 1, 4 do
		if subtag_table[i] == nil then
			subtag_table[i] = ""
		end
	end
	return subtag_table
end

return p