Module:Fiction-based redirects to list entries category handler/testcases

From Wikipedia, the free encyclopedia
-- Example Unit tests for [[Module:Fiction-based redirects to list entries category handler]]. Click talk page to run tests.
local p = require('Module:UnitTests')

function p:test_01_general()
	self:preprocess_equals_sandbox_many('{{#invoke:Fiction-based redirects to list entries category handler', 'test', {
		{'test=Agents of S.H.I.E.L.D. episode redirects to lists', "Series name: ''Agents of S.H.I.E.L.D.''\n\nArticle title: Agents of S.H.I.E.L.D.\n\nTemplate: Television episode redirect handler\n\nCategories: <nowiki>[[Category:Agents of S.H.I.E.L.D. episodes|*]][[Category:Episode redirects to lists]]</nowiki>"},
		{'test=Doctor Who character redirects to lists', "Series name: ''Doctor Who''\n\nArticle title: Doctor Who\n\nTemplate: Fictional character redirect\n\nCategories: <nowiki>[[Category:Doctor Who characters|*]][[Category:Redirects from fictional characters]]</nowiki>"},
		{'test=Doctor Who element redirects to lists', "Series name: ''Doctor Who''\n\nArticle title: Doctor Who\n\nTemplate: Fictional element redirect\n\nCategories: <nowiki>[[Category:Doctor Who|element]][[Category:Fictional element redirects]]</nowiki>"},
		{'test=Doctor Who location redirects', "Series name: ''Doctor Who''\n\nArticle title: Doctor Who\n\nTemplate: Fictional location redirect\n\nCategories: <nowiki>[[Category:Doctor Who locations|*]][[Category:Redirects from fictional locations]]</nowiki>"},
		{'test=Stranger Things (TV series) character redirects to lists', "Series name: ''Stranger Things''\n\nArticle title: Stranger Things (TV series)\n\nTemplate: Fictional character redirect\n\nCategories: <nowiki>[[Category:Stranger Things (TV series)|character]][[Category:Redirects from fictional characters]]</nowiki>"},
		{'test=Lost (2004 TV series) element redirects to lists', "Series name: ''Lost''\n\nArticle title: Lost (2004 TV series)\n\nTemplate: Fictional element redirect\n\nCategories: <nowiki>[[Category:Lost (2004 TV series)|element]][[Category:Fictional element redirects]]</nowiki>"},
		{'test=Lost (2004 TV series) location redirects', "Series name: ''Lost''\n\nArticle title: Lost (2004 TV series)\n\nTemplate: Fictional location redirect\n\nCategories: <nowiki>[[Category:Lost (2004 TV series)|location]][[Category:Redirects from fictional locations]]</nowiki>"}
	})
end

function p:test_02_Arrowverse_specific()
	self:preprocess_equals_sandbox_many('{{#invoke:Fiction-based redirects to list entries category handler', 'test', {
		{'test=Arrow (TV series) character redirects to lists', "Series name: ''Arrow''\n\nArticle title: Arrow (TV series)\n\nTemplate: Arrowverse character redirect\n\nCategories: <nowiki>[[Category:Arrow (TV series) characters|*]][[Category:Arrow (TV series) redirects|character]][[Category:Redirects from fictional characters]]</nowiki>"},
		{'test=Arrow (TV series) element redirects to lists', "Series name: ''Arrow''\n\nArticle title: Arrow (TV series)\n\nTemplate: Arrowverse element redirect\n\nCategories: <nowiki>[[Category:Arrow (TV series) redirects|element]][[Category:Fictional element redirects]]</nowiki>"},
		{'test=Arrow (TV series) episode redirects to lists', "Series name: ''Arrow''\n\nArticle title: Arrow (TV series)\n\nTemplate: Television episode redirect handler\n\nCategories: <nowiki>[[Category:Arrow (TV series) episodes|*]][[Category:Arrow (TV series) redirects|episode]][[Category:Episode redirects to lists]]</nowiki>"},
		{'test=Arrow (TV series) location redirects', "Series name: ''Arrow''\n\nArticle title: Arrow (TV series)\n\nTemplate: Arrowverse location redirect\n\nCategories: <nowiki>[[Category:Arrow (TV series) redirects|location]][[Category:Redirects from fictional locations]]</nowiki>"}
	})
end

function p:test_03_no_italic()
	self:preprocess_equals_sandbox_many('{{#invoke:Fiction-based redirects to list entries category handler', 'test|no_italic=yes', {
		{'test=Marvel Cinematic Universe location redirects', "Series name: Marvel Cinematic Universe\n\nArticle title: Marvel Cinematic Universe\n\nTemplate: Fictional location redirect\n\nCategories: <nowiki>[[Category:Marvel Cinematic Universe redirects|location]][[Category:Redirects from fictional locations]]</nowiki>"},
	})
end

function p:test_04_media_single()
	self:preprocess_equals_sandbox_many('{{#invoke:Fiction-based redirects to list entries category handler', 'test|media=Television', {
		{'test=Arrow (TV series) character redirects to lists', "Series name: ''Arrow''\n\nArticle title: Arrow (TV series)\n\nTemplate: Arrowverse character redirect\n\nCategories: <nowiki>[[Category:Arrow (TV series) characters|*]][[Category:Arrow (TV series) redirects|character]][[Category:Television character redirects to lists]]</nowiki>"},
		{'test=Arrow (TV series) element redirects to lists', "Series name: ''Arrow''\n\nArticle title: Arrow (TV series)\n\nTemplate: Arrowverse element redirect\n\nCategories: <nowiki>[[Category:Arrow (TV series) redirects|element]][[Category:Television element redirects to lists]]</nowiki>"},
		{'test=Arrow (TV series) location redirects', "Series name: ''Arrow''\n\nArticle title: Arrow (TV series)\n\nTemplate: Arrowverse location redirect\n\nCategories: <nowiki>[[Category:Arrow (TV series) redirects|location]][[Category:Television location redirects]]</nowiki>"},
	})
end

function p:test_05_media_multi()
	self:preprocess_equals_sandbox_many('{{#invoke:Fiction-based redirects to list entries category handler', 'test|media=Television', {
		{'media2=Film|test=Arrow (TV series) character redirects to lists', "Series name: ''Arrow''\n\nArticle title: Arrow (TV series)\n\nTemplate: Arrowverse character redirect\n\nCategories: <nowiki>[[Category:Arrow (TV series) characters|*]][[Category:Arrow (TV series) redirects|character]][[Category:Television character redirects to lists]][[Category:Film character redirects to lists]]</nowiki>"},
		{'media2=Film|media3=Comics|test=Arrow (TV series) element redirects to lists', "Series name: ''Arrow''\n\nArticle title: Arrow (TV series)\n\nTemplate: Arrowverse element redirect\n\nCategories: <nowiki>[[Category:Arrow (TV series) redirects|element]][[Category:Television element redirects to lists]][[Category:Film element redirects to lists]][[Category:Comics element redirects to lists]]</nowiki>"},
	})
end

function p:test_06_main_category()
	self:preprocess_equals_sandbox_many('{{#invoke:Fiction-based redirects to list entries category handler', 'test|media=Television', {
		{'test=Doctors character redirects to lists|main=Doctors (2000 TV series)', "Series name: ''Doctors''\n\nArticle title: Doctors\n\nTemplate: Fictional character redirect\n\nCategories: <nowiki>[[Category:Doctors (2000 TV series) characters|*]][[Category:Television character redirects to lists]]</nowiki>"},
		{'test=No-series character redirects to lists|main=Lost (2004 TV series)', "Series name: ''No-series''\n\nArticle title: No-series\n\nTemplate: Fictional character redirect\n\nCategories: <nowiki>[[Category:Lost (2004 TV series) characters|*]][[Category:Television character redirects to lists]]</nowiki>"},
	})
end

function p:test_07_no_series_category()
	self:preprocess_equals_sandbox_many('{{#invoke:Fiction-based redirects to list entries category handler', 'test|media=Television', {
		{'test=No-series character redirects to lists', "Series name: ''No-series''\n\nArticle title: No-series\n\nTemplate: Fictional character redirect\n\nCategories: <nowiki>[[Category:Fiction redirect categories with non-existent parent categories]][[Category:Television character redirects to lists]]</nowiki>"},
		{'test=No-series episode redirects to lists', "Series name: ''No-series''\n\nArticle title: No-series\n\nTemplate: Television episode redirect handler\n\nCategories: <nowiki>[[Category:Fiction redirect categories with non-existent parent categories]][[Category:Episode redirects to lists]]</nowiki>"},
	})
end

return p