Jump to content

Module:Sandbox/Mr. Stradivarius/Check ISO 639-1/testcases

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Mr. Stradivarius (talk | contribs) at 09:37, 13 December 2013 (check all codes from ISO 639-1 language matrix). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
-- Unit tests for [[Module:Check ISO 639-1]]. Click talk page to run tests.
local p = require('Module:UnitTests')

local isoModule = require('Module:Check ISO 639-1') -- the module to be tested
local checkISO = isoModule.main
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()

function suite:testMain()
	self:assertEquals('en', checkISO{'en'})
	self:assertEquals('en', checkISO{'EN'})
	self:assertEquals('en', checkISO{' en '})
	self:assertEquals('en', checkISO{' EN '})
	self:assertEquals('en', checkISO{'en', nocat='true'})
	self:assertEquals('en', checkISO{'en', nocat='yes'})
	self:assertEquals('en', checkISO{'en', nocat='y'})
	self:assertEquals('en', checkISO{'en', nocat='1'})
	self:assertEquals('en', checkISO{'en', nocat='  yes  '})
	self:assertEquals('en', checkISO{'en', nocat=true})
	self:assertEquals('<strong class="error">Error: "eng" is not a valid [[List of ISO 639-1 codes|ISO 639-1 code]]</strong>[[Category:Pages with invalid ISO 639-1 language codes|eng]]', checkISO{'eng'})
	self:assertEquals('<strong class="error">Error: "eng" is not a valid [[List of ISO 639-1 codes|ISO 639-1 code]]</strong>[[Category:Pages with invalid ISO 639-1 language codes|eng]]', checkISO{'  eng  '})
	self:assertEquals('<strong class="error">Error: "English" is not a valid [[List of ISO 639-1 codes|ISO 639-1 code]]</strong>[[Category:Pages with invalid ISO 639-1 language codes|English]]', checkISO{'English'})
	self:assertEquals('<strong class="error">Error: "English" is not a valid [[List of ISO 639-1 codes|ISO 639-1 code]]</strong>', checkISO{'English', nocat='true'})
	self:assertEquals('<strong class="error">Error: "English" is not a valid [[List of ISO 639-1 codes|ISO 639-1 code]]</strong>', checkISO{'English', nocat='yes'})
	self:assertEquals('<strong class="error">Error: "English" is not a valid [[List of ISO 639-1 codes|ISO 639-1 code]]</strong>', checkISO{'English', nocat='y'})
	self:assertEquals('<strong class="error">Error: "English" is not a valid [[List of ISO 639-1 codes|ISO 639-1 code]]</strong>', checkISO{'English', nocat='1'})
	self:assertEquals('<strong class="error">Error: "English" is not a valid [[List of ISO 639-1 codes|ISO 639-1 code]]</strong>', checkISO{'English', nocat='  yes  '})
	self:assertEquals('<strong class="error">Error: "English" is not a valid [[List of ISO 639-1 codes|ISO 639-1 code]]</strong>', checkISO{'English', nocat=true})
	self:assertEquals('<strong class="error">Error: "English" is not a valid [[List of ISO 639-1 codes|ISO 639-1 code]]</strong>[[Category:Pages with invalid ISO 639-1 language codes|English]]', checkISO{'English', nocat='false'})
	self:assertEquals('', checkISO{''})
	self:assertEquals('', checkISO{'  '})
	self:assertEquals('', checkISO{{}})
	self:assertEquals('', checkISO{true})
	self:assertEquals('', checkISO{nil})
end

local codes = {
	'ab', 'af', 'an', 'ar', 'as', 'az', 'be', 'bg', 'bn', 'bo', 'br', 'bs', 'ca', 'ce', 'co', 'cs', 'cu', 'cy', 'da', 'de',
	'el', 'en', 'eo', 'es', 'et', 'eu', 'fa', 'fi', 'fj', 'fo', 'fr', 'fy', 'ga', 'gd', 'gl', 'gv', 'he', 'hi', 'hr', 'ht',
	'hu', 'hy', 'id', 'is', 'it', 'ja', 'jv', 'ka', 'kg', 'ko', 'ku', 'kw', 'ky', 'la', 'lb', 'li', 'ln', 'lt', 'lv', 'mg',
	'mk', 'mn', 'mo', 'ms', 'mt', 'my', 'nb', 'ne', 'nl', 'nn', 'no', 'oc', 'pl', 'pt', 'rm', 'ro', 'ru', 'sc', 'se', 'sk',
	'sl', 'so', 'sq', 'sr', 'sv', 'sw', 'tk', 'tr', 'ty', 'uk', 'ur', 'uz', 'vi', 'vo', 'yi', 'zh' 
}

function suite.getAllCodeOutput()
	local ret = ''
	for _, code in ipairs(codes) do
		ret = ret .. '\n# code: "' .. code .. '"; result: "' .. checkISO{code, nocat=true} .. '"'
	end
	return ret
end

return suite