Jump to content

Module:Citation/CS1/testcases/errors

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Trappist the monk (talk | contribs) at 13:45, 10 June 2020. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
-- Unit tests for [[Module:Citation/CS1]]. Click talk page to run tests.
local p = require('Module:UnitTests')

function p:test_web()
    self:preprocess_equals_preprocess_many(
    	'{{cite web/new|', '}}',
		'{{cite web|', '}}',
		{
			{ [==[ ]==] },
			{ [==[ unrecognized_thing ]==] }, -- finds and then discards unrecognized_thing
			{ [==[ unrecognized_thing |unrecognized_thing2 ]==] }, -- finds and then discards unrecognized_things
			{ [==[ last = Last |unrecognized_thing ]==] },
			{ [==[ last = Last |unrecognized_thing |unrecognized_thing2 ]==] },
			{ [==[ unrecognized_parameter = unrecognized ]==] }, -- finds and then discards unrecognized parameter
			{ [==[ unrecognized_parameter = unrecognized  |unrecognized_parameter2 = unrecognized2 ]==] }, -- finds and then discards unrecognized parameters
			{ [==[ last=Last |1=unrecognized1 ]==] },
			{ [==[ last=Last |unrecognized_parameter = unrecognized |unrecognized_parameter2 = unrecognized2 ]==] },
		},
		{nowiki=false, templatestyles=true}
	)
end


--[[--------------------------< W I K I L I N K _ I N _ U R L >------------------------------------------------
]]

function p:test_wikilink_in_url()
    self:preprocess_equals_preprocess_many(
    	'{{cite journal/new|journal=Journal|', '}}', '{{cite journal|journal=Journal|', '}}',
		{
			{''},																-- no pmc, no title, no url, no title-link 0000
			{'title-link=Title'},												-- title-link 0001
			{'url=//example.com'},												-- url 0010
			{'url=//example.com |title-link=Title'},							-- url, title-link 0011
			{'title=Title'},													-- title 0100
			{'title=Title |title-link=Title'},									-- title, title-link 0101
			{'title=Title |url=//example.com'},								-- title, url 0110
			{'title=Title |url=//example.com |title-link=Title'},				-- title, url, title-link 0111
			{'pmc=12345'},														-- pmc 1000
			{'pmc=12345 |title-link=Title'},									-- pmc, title-link 1001
			{'pmc=12345 |url=//example.com'},									-- pmc, url 1010
			{'pmc=12345 |url=//example.com |title-link=Title'},				-- pmc, url, title-link 1011
			{'pmc=12345 |title=Title'},										-- pmc, title  1100
			{'pmc=12345 |title=Title |title-link=Title'},						-- pmc, title, title-link 1101
			{'pmc=12345 |title=Title |url=//example.com'},						-- pmc, title, url 1110
			{'pmc=12345 |title=Title |url=//example.com |title-link=Title'},	-- pmc, title, url, title-link 1111
		},
		{nowiki=false, templatestyles=true}
	)
end




--[[--------------------------< T E S T _ V A U T H O R S >----------------------------------------------------
]]

function p:test_vauthors()
    self:preprocess_equals_preprocess_many(
    	'{{cite book/new|', '}}', '{{cite book|', '}}',
		{
			{'title=Title |vauthors=Black ABC'},								-- too many initials
			{'title=Title |vauthors=Black A-B'},								-- hyphenated initials
			{'title=Title |vauthors=Black AB II'},								-- invalid generational suffix
			{'title=Title |vauthors=Black AB 3d'},								-- invalid generational suffix
			{'title=Title |vauthors=Black, AB, Brown, CD'},						-- improper puncutation
			{'title=Title |vauthors=Black AB; Brown CD'},						-- improper puncutation
			{'title=Title |vauthors=Black AB, Brown CD,'},						-- improper puncutation
			{'title=Title |vauthors=Black AB Brown CD'},						-- missing comma
			{'title=Title |vauthors=Black A B'},								-- spaced initials
		},
		{nowiki=false, templatestyles=true}
	)
end
return p