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:ISO 3166/testcases

From Wikipedia, the free encyclopedia
local p = {}
local arguments = {
	{'Canada'},
	{'United States'},
	{'The United States of America'},
	{'The Gambia'},
	{'The Netherlands'},
	{'The Kingdom of the Netherlands'},
	{'US'},
	{'US', 'New York'},
	{'USA', 'New York'},
	{'US-New York'},
	{'USA-New York'},
	{'US-NY'},
	{'USA-NY'},
	{'United States', 'New York'},
	{'United States', 'New York (State)'},
	{'United States', '[[New York (State)]]'},
	{'United States', '[[New York (State)|Test]]'},
	{'Guinea-Bissau'},
	{'Guinea-Bissau-L'},
	{'Guinea-Bissau', 'L'},
	{'United-States'},
	{'United States-New-York'},
	{'GB-ENG'},
	{'GB-ENG-Greenwich'},
	{'GB-ENG', 'Greenwich'},
	{'Wales-Belfast'},
	{'Northern Ireland-Belfast'},
	{'UK-Stoke-on-Trent'},
	{'GB-ENG-Stoke-on-Trent'},
	{'UK', 'Stoke-on-Trent'},
	{'UK', 'Stoke on Trent'},
	{'United  States'},
	{'[[United States|THE PLACE]]'},
	{'{{flagu|United States}}'},
	{'{{flag|India}}'},
	{'[[File:Flag_of_Canada.svg|20px]]'},
	{'{{CAN}}'},
	{[[C"A'NA‘DA(AAA)']]},
	{'Canada-'},
	{'-Canada-'},
	{'-Canada'},
	{'Taiwan, Province of China'},
	{'Taiwan'},
	{'Republic of China'},
	{'Republic of China', isoname='yes'},
	{'TW'},
	{'TWN'},
	{'158'},
	{'20'},
	{'{{PRC}}'},
	{'[ [Canada ] ]'},
	{'Áfghanistan'},
	{'United States<ref name=A>{{cite web|url=http://www.example.com}}</ref>'},
	{'United States<ref name="B" />'},
	{'United States<nowiki><code><sup>1</sup></code></nowiki>'},
	{'[[Russia]]', '[[Sakha Republic]]'},
	{'CA', 'BC', lang='fr'},
	{'Foo'},
	{'Foo-Bar'},
	{'Foo', 'Bar'},
	{'USA-Foo'},
	{'USA', 'Foo'}
}
local function stripOnly(params, special)
	local code = (special == 'code' and '<td><code><nowiki>' or '<td>')
	if params[1] then
		code = code..(special == 'sandbox' and '{{#invoke:ISO 3166/sandbox' or '{{#invoke:ISO 3166')..'|strip'..'|'..params[1]..'}}'
	end
	if params[2] then
		code = code..' '..(special == 'sandbox' and '{{#invoke:ISO 3166/sandbox' or '{{#invoke:ISO 3166')..'|strip'..'|'..params[2]..'}}'
	end
	return code..(special == 'code' and '</nowiki></code></td>' or '</td>')
end
local function makeCell(func, params, special)
	if func == 'strip' then
		return stripOnly(params, special)
	end
	local code = ''
	code = code..(special == 'code' and '<td><code><nowiki>' or '<td>')..'{{'
	code = code..(special == 'sandbox' and '#invoke:ISO 3166/sandbox' or '#invoke:ISO 3166')
	code = code..'|'..func
	for k,v in ipairs(params) do
		code = code..'|'..v
	end
	for k,v in pairs(params) do
		if type(k) ~= 'number' then
			code = code..'|'..k..'='..v
		end
	end
	code = code..'}}'..(special == 'code' and '</nowiki></code></td>' or '</td>')
	return code
end
local function makeRow(frame, func, params)
	local out = ''
	out = out..makeCell(func, params) -- Live
	out = out..makeCell(func, params, 'sandbox') -- Sandbox
	out = out..makeCell(func, params, 'code') -- Code
	return frame:preprocess('<tr>'..out..'</tr>')
end
function p.run(frame)
	local out = '<tr><th>Live</th><th>Sandbox</th><th>Code</th></tr>'
	for k,v in ipairs(arguments) do
		out = out..makeRow(frame, frame.args[1], v)
	end
	return '<table class="wikitable">'..out..'</table>'
end
return p