Module:Infobox television episode/testcases
-- Unit tests for Module:Infobox television episode. Click talk page to run tests.
local p = require('Module:UnitTests')
local function expandTemplate(template, value)
local frame = mw.getCurrentFrame()
return frame:expandTemplate{title = template, args = value}
end
function p:test_01_01_infobox_title_equal_to_article_title()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values', {
{'page_title_test=Long article title|title=' .. expandTemplate("Nowrap", {"Long article title"}), ''},
{'page_title_test=Long article title|title=Long article
title', ''},
{'page_title_test=Long article title|title=Long article
title', ''},
{'page_title_test=Long article title|title=Long article
title', ''},
{'page_title_test=Long article title|title=Long article
title', ''},
{'page_title_test=Long article title|title=Long article
title', ''},
{'page_title_test=Long article title (dab)|title=' .. expandTemplate("Nowrap", {"Long article title"}) .. '|series=dab', ''},
{'page_title_test=Long article title (dab)|title=Long article
title|series=dab', ''},
{'page_title_test=title|rtitle=Title', ''},
{'page_title_test=Agents of S.H.I.E.L.D. series finale|rtitle="The End Is at Hand" and "{{nowrap|What We\'re Fighting For}}"|series=Agents of S.H.I.E.L.D.', ''},
{'page_title_test=A Game of Pool (The Twilight Zone, 1959)|title=A Game of Pool|series=The Twilight Zone', 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_title_test=Just for the Record (Randall and Hopkirk (Deceased))|title=Just for the Record|series=Randall and Hopkirk (Deceased)', 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_title_test=Cassie (Skins series 1)|title=Cassie|series=Skins', 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_title_test=Debbie (Brooklyn Nine-Nine)|title=Debbie|series=Brooklyn Nine-Nine', 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_title_test=Debbie (Brooklyn Nine-Nine episode)|title=Debbie|series=Brooklyn Nine-Nine', 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_title_test=Title (dab)|title=Title (dab)', 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_title_test=Title (not a dab)|title=Title (not a dab)|series=Lost', 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_title_test=Test|title=Test', 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_title_test=Test (dab)|title=Test|series=dab', 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_title_test=Test (dab episode)|title=Test|series=dab', 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_title_test=Test|title=test', 'Category:Pages using infobox television episode with non-matching title'},
{'page_title_test=Long article title|title=' .. expandTemplate("Nowrap", {"Long article Title"}), 'Category:Pages using infobox television episode with non-matching title'},
{'page_title_test=Long article title|title=Long article
Title', 'Category:Pages using infobox television episode with non-matching title'},
{'page_title_test=Premiere (The Tonight Show Starring Jimmy Fallon)|title=Premiere|series=The Tonight Show Starring
Jimmy Fallon', 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_title_test=Premiere (The Tonight Show Starring Jimmy Fallon episode)|title=Premiere|series=The Tonight Show Starring
Jimmy Fallon', 'Category:Pages using infobox television episode with unnecessary title parameter'},
}, {nowiki=1})
end
function p:test_01_02_infobox_title_equal_to_article_title_special_cases()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values', {
{'page_test=HappyHolograms|title=#HappyHolograms', 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_test=HappyHolograms|title=#HappyHolograms2', 'Category:Pages using infobox television episode with non-matching title'},
{'page_test=Rehash (South Park)|title=#REHASH', ''},
{'page_test=Rehash (South Park)|title=#REHASH|series=South Park', 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_test=Rehash (South Park)|title=#REHASH2|series=South Park', 'Category:Pages using infobox television episode with non-matching title'},
{'page_test=Rick Potion No. 9|title=Rick Potion #9|series=Rick and Morty', 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_test=All things|page_title_test=All things|title=all things', 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_test=All things|page_title_test=All things|title=All Things', 'Category:Pages using infobox television episode with non-matching title'},
{'page_test=ISpy (Modern Family)|page_title_test=ISpy (Modern Family)|title=iSpy|series=Modern Family', 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_test=ISpy (Modern Family)|page_title_test=ISpy (Modern Family)|title=ISpy|series=Modern Family', 'Category:Pages using infobox television episode with non-matching title'},
{'page_test=ISpy (Modern Family)|page_title_test=ISpy (Modern Family)|title=I Spy|series=Modern Family', 'Category:Pages using infobox television episode with non-matching title'},
{'page_test=Google Behind the Screen|page_title_test=Google Behind the Screen|title=Google: Behind the Screen', 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_test=Google Behind the Screen|page_title_test=Google Behind the Screen|title=Google Behind the Screen', 'Category:Pages using infobox television episode with non-matching title'},
{'page_test=Eps1.0 hellofriend.mov|page_title_test=Eps1.0 hellofriend.mov|title=eps1.0_hellofriend.mov|italic_title=no', 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_test=Eps1.0 hellofriend.mov|page_title_test=Eps1.0 hellofriend.mov|title=eps1.0 hellofriend.mov|italic_title=no', 'Category:Pages using infobox television episode with non-matching title'},
{'page_test=Wvrdr error 100 oest-of-th3-gs.gid30n not found|page_title_test=Wvrdr error 100 oest-of-th3-gs.gid30n not found|title=wvrdr_error_100
{'page_test=Wvrdr error 100 oest-of-th3-gs.gid30n not found|page_title_test=Wvrdr error 100 oest-of-th3-gs.gid30n not found|title=wvrdr error 100
{'page_test=30 Rock: A One-Time Special|page_title_test=30 Rock: A One-Time Special|title=\'\'30 Rock\'\': A One-Time Special|italic_title=no', 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_test=30 Rock: A One-Time Special|page_title_test=30 Rock: A One-Time Special|title=30 Rock: A One-Time Special|italic_title=no', 'Category:Pages using infobox television episode with non-matching title'},
}, {nowiki=1})
end
function p:test_01_03_infobox_title_equal_to_article_title_quotes()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values', {
{'page_title_test=\'Test|title=' .. expandTemplate("Space+single", {}) .. "Test", 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_title_test=Test\'|title=Test' .. expandTemplate("Single+space", {}), 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_title_test=\'Test (dab)|title=' .. expandTemplate("Space+single", {}) .. "Test|series=dab", 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_title_test=\'Test\'|title=' .. expandTemplate("Space+single", {}) .. "Test" .. expandTemplate("Single+space", {}), 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_title_test=\'Test|title=' .. expandTemplate("Space+single", {}) .. "test", 'Category:Pages using infobox television episode with non-matching title'},
{'page_title_test="A" in a title|title=' .. expandTemplate("Space+single", {}) .. "A' in a title", 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_title_test=Bart Gets an "F"|title=Bart Gets an \'F' .. expandTemplate("Single+space", {}), 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_title_test="A" in a title (dab)|title=' .. expandTemplate("Space+single", {}) .. "A' in a title|series=dab", 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_title_test="A" in a title is an "F"|title=' .. expandTemplate("Space+single", {}) .. "A' in a title is an 'F" .. expandTemplate("Single+space", {}), 'Category:Pages using infobox television episode with unnecessary title parameter'},
{'page_title_test="A" in a title|title=' .. expandTemplate("Space+single", {}) .. '"a" in a title', 'Category:Pages using infobox television episode with non-matching title'},
}, {nowiki=1})
end
function p:test_02_image_auxiliary_values()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values', {
{'image=test|image_size=1', ''},
--{'image=', 'Category:Pages using infobox television episode with image-related values without an image'},
{'image_size=1', 'Category:Pages using infobox television episode with image-related values without an image'},
{'image_upright=1', 'Category:Pages using infobox television episode with image-related values without an image'},
{'image_alt=test', 'Category:Pages using infobox television episode with image-related values without an image'},
{'alt=test', 'Category:Pages using infobox television episode with image-related values without an image'},
{'caption=test', 'Category:Pages using infobox television episode with image-related values without an image'},
}, {nowiki=1})
end
function p:test_03_is_image_formatted_correctly()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values', {
{'image=image.jpg', ''},
{'image=File:image.jpg', 'image'},
{'image=File:image.jpg', 'image'},
{'image=Image:image.jpg', 'image'},
{'image=Image:image.jpg', 'image'},
}, {nowiki=1})
end
function p:test_04_is_image_size_using_px()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values', {
{'image=test|image_size=100', ''},
{'image=test|image_size=100px', 'image_size'},
}, {nowiki=1})
end
function p:test_05_links_only()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values|', {
{'series=Lost', ''},
{'prev=? (Lost)', ''},
{'next=? (Lost)', ''},
{'series=Lost', 'series'},
{'prev=? (Lost)', 'prev'},
{'next=? (Lost)', 'next'},
{"series=Lost", 'series'},
}, {nowiki=1})
end
function p:test_06_using_overall()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values', {
{'episode=1', ''},
{'season=1', ''},
{'series_no=1', ''},
{'episode=1 (1 overall)', 'episode'},
{'season=1 (1 overall)', 'season'},
{'series_no=1 (1 overall)', 'series_no'},
}, {nowiki=1})
end
function p:test_07_formatted()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values', {
{"rtitle=rtitle", ''},
{"rprev=rprev", ''},
{"rnext=rnext", ''},
{"image=image|image_alt=image_alt", ''},
{"image=image|alt=alt", ''},
{"image=image|caption=caption", ''},
{"based_on=based_on", ''},
{"music=music", ''},
{"guests=guests", ''},
{"series=American Horror Story|season_article=\'\'American Horror Story: Apocalypse\'\'", ''},
{"series=Lost (TV series)", 'series'},
{"episode=1", 'episode'},
{"season=1", 'season'},
{"series_no=1", 'series_no'},
{"episode_list=List of Lost episodes", 'episode_listepisode_list'},
{"producer=Executive producer: John", 'producer'},
}, {nowiki=1})
end
function p:test_08_incorrectly_linked()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values', {
{'episode=1', ''},
{'season=1', ''},
{'series_no=1', ''},
{'episode_list=List of Lost episodes', ''},
{'episode_list=List of Lost episodes', 'episode_list'},
}, {nowiki=1})
end
function p:test_09_has_icons()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values', {
{'director=' .. expandTemplate("USA", {}) .. 'test', 'Category:Pages using infobox television with flag icon'},
}, {nowiki=1})
end
-- function p:test_10_invalid_tags()
-- self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values', {
-- {'guests={{center|Name}}', 'guests'},
-- {'episode=Name', 'episode'},
-- {'episode=' .. expandTemplate("Small", {"Name"}), 'episode'},
-- }, {nowiki=1})
-- end
-- {'director=First name
Second name', 'director'},
-- {'director=First name
Second name', 'director'},
-- {'director=First name
Second name', 'director'},
function p:test_10_are_dates_formatted_correctly()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values', {
{'airdate=' .. expandTemplate("Start date", {"1999", "3", "4"}), ''},
{'released=' .. expandTemplate("Start date", {"1999", "3", "4"}), ''},
{'airdate=' .. expandTemplate("Start date and age", {"1999", "3", "4"}), 'Category:Pages using infobox television episode with nonstandard dates'},
{'airdate=' .. expandTemplate("Start and end dates", {"1939", "9", "1", "1945", "9", "2"}), 'Category:Pages using infobox television episode with nonstandard dates'},
{'airdate=' .. expandTemplate("Film date/sandbox", {"1999", "3", "4"}), 'Category:Pages using infobox television episode with unnecessary list markupCategory:Pages using infobox television episode with nonstandard dates'},
{'airdate=4/3/1999', 'Category:Pages using infobox television episode with nonstandard dates'},
{'airdate=March 4, 1999', 'Category:Pages using infobox television episode with nonstandard dates'},
{'released=4/3/1999', 'Category:Pages using infobox television episode with nonstandard dates'},
{'released=March 4, 1999', 'Category:Pages using infobox television episode with nonstandard dates'},
{'airdate=Unaired', ''},
{'released=Unaired', ''},
}, {nowiki=1})
end
function p:test_11_is_italic_title_valid_value()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values', {
{, },
{'italic_title=no', ''},
{'italic_title=n', 'italic_title'},
{'italic_title=y', 'italic_title'},
}, {nowiki=1})
end
function p:test_12_list_markup()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values', {
{'director=* First director', ''},
{'director=* First director * Second director', ''},
{'episode=1
2', ''},
{'director=' .. expandTemplate("Plainlist", {"|* First director * Second director"}), 'Category:Pages using infobox television episode with unnecessary list markup'},
{'director=' .. expandTemplate("Indented plainlist", {"|* First director * Second director"}), 'Category:Pages using infobox television episode with unnecessary list markup'},
{'director=' .. expandTemplate("Flatlist", {"|* First director * Second director"}), 'Category:Pages using infobox television episode with unnecessary list markup'},
{'director=' .. expandTemplate("Hlist", {"|First director|Second director"}), 'Category:Pages using infobox television episode with unnecessary list markup'},
{'director=' .. expandTemplate("Unbulleted list", {"|First director|Second director"}), 'Category:Pages using infobox television episode with unnecessary list markup'},
{'director=' .. expandTemplate("Bulleted list", {"|First director|Second director"}), 'Category:Pages using infobox television episode with unnecessary list markup'},
{'director=' .. expandTemplate("Ordered list", {"|First director|Second director"}), 'Category:Pages using infobox television episode with unnecessary list markup'},
{'director=' .. expandTemplate("Horizontal ordered list", {"|First director|Second director"}), 'Category:Pages using infobox television episode with unnecessary list markup'},
{'director=First director
Second director', 'Category:Pages using infobox television episode with unnecessary list markup'},
{'director=First director
Second director', 'Category:Pages using infobox television episode with unnecessary list markup'},
{'director=First director
Second director', 'Category:Pages using infobox television episode with unnecessary list markup'},
{'director=First director
Second director', 'Category:Pages using infobox television episode with unnecessary list markup'},
{'director=First director
Second director', 'Category:Pages using infobox television episode with unnecessary list markup'},
{'commentary=' .. expandTemplate("Plainlist", {"* First person * Second person"}), 'Category:Pages using infobox television episode with unnecessary list markup'},
}, {nowiki=1})
end
-- function p:test_13_are_refs_in_infobox()
-- self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values', {
-- {'airdate=' .. expandTemplate("Start date", {"1999", "3", "4"}) .. 'test', 'Category:Pages using infobox television episode with references in the infobox'},
-- {'director=First directortest', 'Category:Pages using infobox television episode with references in the infobox'},
-- {'caption=image captiontest', ''},
-- {'production=1234test', ''},
-- }, {nowiki=1})
-- end
function p:test_16_all_errors()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values', {
{'page_title_test=Test|title=Test|episode=1|image_size=1|series=Lost|director=' .. expandTemplate("USA", {}) .. 'test|airdate=4/3/1999', 'Category:Pages using infobox television episode with unnecessary title parameterCategory:Pages using infobox television episode with image-related values without an imageseriesepisodeCategory:Pages using infobox television with flag iconCategory:Pages using infobox television episode with nonstandard dates'},
}, {nowiki=1})
end
function p:test_17_italic_title()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'italic_title', {
{, },
{'page_title_test=', ''},
{'page_title_test=title', ''},
{'page_title_test=title (dab)', ''},
{'page_title_test=title|series=Lost', ''},
{'page_title_test=title (dab)|series=Lost', ''},
{'page_title_test=title (Lost)|series=Lost|italic_title=no', ''},
{'page_title_test=Agents of S.H.I.E.L.D. series finale|page_test=Agents of S.H.I.E.L.D. series finale|italic_title=no', ''},
{'page_title_test=title (Lost)|series=Lost', 'italic_dab'},
{'page_title_test=title (Lost episode)|series=Lost', 'italic_dab'},
{'page_title_test=title (Lost episode)|series=Lost', 'italic_dab'},
{'page_title_test=The End (The X-Files)|series=The X-Files', 'italic_dab'},
{'page_title_test=The End (The X-Files episode)|series=The X-Files', 'italic_dab'},
{'page_title_test=A Game of Pool (The Twilight Zone, 1959)|series=The Twilight Zone', 'italic_dab'},
{'page_title_test=Just for the Record (Randall and Hopkirk (Deceased))|series=Randall and Hopkirk (Deceased)', 'italic_dab'},
{'page_title_test=Premiere (The Tonight Show Starring Jimmy Fallon)|series=The Tonight Show Starring
Jimmy Fallon', 'italic_dab'},
{'page_title_test=Agents of S.H.I.E.L.D. series finale|page_test=Agents of S.H.I.E.L.D. series finale|series=Agents of S.H.I.E.L.D.', 'Category:Pages using infobox television episode with unnecessary manual displaytitle'},
{'page_title_test=The End (Lost)|page_test=Agents of S.H.I.E.L.D. series finale|series=Lost', 'italic_dabCategory:Pages using infobox television episode with unnecessary manual displaytitle'},
}, {nowiki=1})
end
local function handle_title(text)
return "\"" .. text .. "\""
end
local function handle_marks(text, side)
local left_template = "Space+single"
local right_template = "Single+space"
if side == "left" then
return handle_title(expandTemplate(left_template, {}) .. text)
elseif
side == "right" then
return handle_title(text .. expandTemplate(right_template, {}))
else
return handle_title(expandTemplate(left_template, {}) .. text .. expandTemplate(right_template, {}))
end
end
function p:test_18_above_title()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'above_title', {
{'rtitle=title', "title"},
{'rtitle="title1" and "title2"', handle_title("title1") .. " and " .. handle_title("title2")},
{'rtitle="whoami" and "Hello, Elliot"', handle_title("whoami") .. " and " .. handle_title("Hello, Elliot")},
{'rtitle="The End Is at Hand" and "' .. expandTemplate('nowrap', {"What We\'re Fighting For"}) .. '"', handle_title("The End Is at Hand") .. " and " .. handle_title(expandTemplate('nowrap', {'What We\'re Fighting For'}))},
{'rtitle="The Ed-touchables" and
"Nagged to Ed"', handle_title("The Ed-touchables") .. " and
" .. handle_title("Nagged to Ed")},
{'title=title', handle_title("title")},
{'title=title (dab)', handle_title("title (dab)")},
{'title=title (dab)|series=dab', handle_title("title (dab)")},
{'title=title (dab)|series=dab', handle_title("title (dab)")},
{'title=title (Randall and Hopkirk (Deceased))|series=Randall and Hopkirk (Deceased)', handle_title("title (Randall and Hopkirk (Deceased))")},
{'title=title (Randall and Hopkirk (Deceased))|series=Randall and Hopkirk (Deceased)', handle_title("title (Randall and Hopkirk (Deceased))")},
{'title=#title', handle_title("#title")},
{'page_title_test=title', handle_title("title")},
{'page_title_test=title|series=dab', handle_title("title")},
{'page_title_test=title (another title)', handle_title("title (another title)")},
{'page_title_test=title (another title)|series=dab', handle_title("title (another title)")},
{'page_title_test=title (dab)|series=dab', handle_title("title")},
{'page_title_test=title (dab)|series=dab', handle_title("title")},
{'page_title_test=title (Randall and Hopkirk (Deceased))|series=Randall and Hopkirk (Deceased)', handle_title("title")},
{'page_title_test=title (Randall and Hopkirk (Deceased))|series=Randall and Hopkirk (Deceased)', handle_title("title")},
{'page_title_test=A Game of Pool (The Twilight Zone, 1959)|series=The Twilight Zone', handle_title("A Game of Pool")},
{'page_title_test=\'title', handle_marks("title", "left", "'")},
{'page_title_test=title\'', handle_marks("title", "right", "'")},
{'page_title_test=\'title (dab)|series=dab', handle_marks("title", "left")},
{'page_title_test=\'title (another title)', handle_marks("title (another title)", "left")},
{'page_title_test=\'title (another title)|series=dab', handle_marks("title (another title)", "left")},
{'page_title_test=\'title\'', handle_marks("title", "both")},
{'page_title_test="A" in a title', handle_marks("A' in a title", "left")},
{'page_title_test=Bart Gets an "F"', handle_marks("Bart Gets an 'F", "right")},
{'page_title_test="A" in a title (dab)|series=dab', handle_marks("A' in a title", "left")},
{'page_title_test="A" in a title (another title)', handle_marks("A' in a title (another title)", "left")},
{'page_title_test="A" in a title (another title)|series=dab', handle_marks("A' in a title (another title)", "left")},
{'page_title_test="A" in a title is an "F"', handle_marks("A' in a title is an 'F", "both")},
{'page_title_test=The Old Man and the "C" Student', handle_title("The Old Man and the 'C' Student")},
{'page_test=HappyHolograms', handle_title("#HappyHolograms")},
{'page_test=Rick Potion No. 9', handle_title("Rick Potion #9")},
{'page_test=Rehash (South Park)|series=South Park', handle_title("#REHASH")},
{'page_test=All things', handle_title("all things")},
{'page_test=ISpy (Modern Family)|series=Modern Family', handle_title("iSpy")},
{'page_test=Google Behind the Screen|series=Backlight (TV program)', handle_title("Google: Behind the Screen")},
{'page_test=Eps1.0 hellofriend.mov|series=Mr. Robot|italic_title=no', handle_title("eps1.0_hellofriend.mov")},
{'page_test=Wvrdr error 100 oest-of-th3-gs.gid30n not found|series=Legends of Tomorrow|italic_title=no', handle_title("wvrdr_error_100
{'page_test=30 Rock: A One-Time Special|series=30 Rock|italic_title=no', handle_title("30 Rock: A One-Time Special")},
{'page_test=Advanced Dungeons & Dragons (Community)|series=Community|italic_title=no', handle_title("Advanced Dungeons & Dragons")},
}, {nowiki=1})
end
function p:test_18_above_title_no_bold()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'above_title', {
{'title=title|no_bold=yes', "\"title\""},
{'page_test=eps1.0_hellofriend.mov|no_bold=yes', "\"eps1.0_hellofriend.mov\""},
{'page_test=Strip Jack (Rebus)|no_bold=yes', "\"Strip Jack\""},
}, {nowiki=1})
end
function p:test_19_episode_list()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'episode_list', {
{'episode_list=List of Lost episodes', 'List of episodes'},
{'episode_list=EastEnders#Storylines', 'Storylines'},
{'episode_list=List of Lost episodes', 'List of Lost episodes'},
{"episode_list=List of Lost episodes", "List of Lost episodes"},
{'series=Lost (TV series)', 'List of episodes'},
{'series=Lost', 'List of episodes'},
{'series=Agents of S.H.I.E.L.D.', 'List of episodes'},
{'series=Agents of S.H.I.E.L.D.', 'List of episodes'},
{'series=Agents of S.H.I.E.L.D.', 'List of episodes'},
{'series=The X-Files', 'List of episodes'},
{'series=The X-Files', 'List of episodes'},
{'series=The X-Files', 'List of episodes'},
{'series=no page exists like this', ''},
}, {nowiki=1})
end
function p:test_20_validate_values_crossover_images()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values_crossover', {
{'image=test|image_size=1', ''},
{'image_size=1', 'Category:Pages using infobox television episode with image-related values without an image'},
{'image_upright=1', 'Category:Pages using infobox television episode with image-related values without an image'},
{'image_alt=test', 'Category:Pages using infobox television episode with image-related values without an image'},
{'alt=test', 'Category:Pages using infobox television episode with image-related values without an image'},
{'caption=test', 'Category:Pages using infobox television episode with image-related values without an image'},
}, {nowiki=1})
end
function p:test_21_validate_values_crossover_has_icons()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values_crossover', {
{'director1=' .. expandTemplate("USA", {}) .. 'test', 'Category:Pages using infobox television with flag icon'},
}, {nowiki=1})
end
function p:test_22_validate_values_crossover_airdates()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values_crossover', {
{'airdate_overall=' .. expandTemplate("Start date", {"1999", "3", "4"}), ''},
{'series1=series1|airdate1=' .. expandTemplate("Start date", {"1999", "3", "4"}), ''},
{'series1=series1|airdate1=' .. expandTemplate("Start date", {"1999", "3", "4"}) .. '|series2=series2|airdate2=' .. expandTemplate("Start date", {"1999", "3", "4"}), ''},
{'series1=series1|airdate1=' .. expandTemplate("Start date", {"1999", "3", "4"}) .. '|series2=series2|airdate2=' .. expandTemplate("Start date", {"1999", "3", "4"})
.. '|series3=series3|airdate3=' .. expandTemplate("Start date", {"1999", "3", "4"}), ''},
{'series1=series1|airdate1=' .. expandTemplate("Start date", {"1999", "3", "4"}) .. '|series2=series2|airdate2=' .. expandTemplate("Start date", {"1999", "3", "4"})
.. '|series3=series3|airdate3=' .. expandTemplate("Start date", {"1999", "3", "4"}) .. '|series4=series4|airdate4=' .. expandTemplate("Start date", {"1999", "3", "4"}), ''},
{'series1=series1|airdate1=' .. expandTemplate("Start date", {"1999", "3", "4"}) .. '|series2=series2|airdate2=' .. expandTemplate("Start date", {"1999", "3", "4"})
.. '|series3=series3|airdate3=' .. expandTemplate("Start date", {"1999", "3", "4"}) .. '|series4=series4|airdate4=' .. expandTemplate("Start date", {"1999", "3", "4"})
.. '|series5=series5|airdate5=' .. expandTemplate("Start date", {"1999", "3", "4"}), ''},
{'airdate_overall=4/3/1999', 'Category:Pages using infobox television episode with nonstandard dates'},
{'series1=series1|airdate1=4/3/1999', 'Category:Pages using infobox television episode with nonstandard dates'},
{'series1=series1|airdate1=' .. expandTemplate("Start date", {"1999", "3", "4"}) .. '|series2=series2|airdate2=4/3/1999',
'Category:Pages using infobox television episode with nonstandard dates'},
{'series1=series1|airdate1=' .. expandTemplate("Start date", {"1999", "3", "4"}) .. '|series2=series2|airdate2=' .. expandTemplate("Start date", {"1999", "3", "4"})
.. '|series3=series3|airdate3=4/3/1999', 'Category:Pages using infobox television episode with nonstandard dates'},
{'series1=series1|airdate1=' .. expandTemplate("Start date", {"1999", "3", "4"}) .. '|series2=series2|airdate2=' .. expandTemplate("Start date", {"1999", "3", "4"})
.. '|series3=series3|airdate3=' .. expandTemplate("Start date", {"1999", "3", "4"}) .. '|series4=series4|airdate4=4/3/1999',
'Category:Pages using infobox television episode with nonstandard dates'},
{'series1=series1|airdate1=' .. expandTemplate("Start date", {"1999", "3", "4"}) .. '|series2=series2|airdate2=' .. expandTemplate("Start date", {"1999", "3", "4"})
.. '|series3=series3|airdate3=' .. expandTemplate("Start date", {"1999", "3", "4"}) .. '|series4=series4|airdate4=' .. expandTemplate("Start date", {"1999", "3", "4"})
.. '|series5=series5|airdate5=4/3/1999', 'Category:Pages using infobox television episode with nonstandard dates'},
}, {nowiki=1})
end
function p:test_23_validate_values_crossover_links_only()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values_crossover', {
{'series1=Lost', ''},
{'series1=Lost|prev1=? (Lost)', ''},
{'series1=Lost|next1=? (Lost)', ''},
{'series1=Lost|series2=Lost', 'series'},
{'series1=Lost|prev1=? (Lost)', 'prev'},
{'series1=Lost|next1=? (Lost)', 'next'},
{"series1=Lost|prev1=? (Lost)", 'prev'},
{"series1=Lost|next1=? (Lost)", 'next'},
{'series1=Lost|series2=Lost', 'series'},
{'series1=Lost|prev1=? (Lost)|series2=Lost|prev2=? (Lost)', 'prev'},
{'series1=Lost|next1=? (Lost)|series2=Lost|next2=? (Lost)', 'next'},
{"series1=Lost|series2=Lost", 'series'},
{"series1=Lost|prev1=? (Lost)|series2=Lost|prev2=? (Lost)", 'prev'},
{"series1=Lost|next1=? (Lost)|series2=Lost|next2=? (Lost)", 'next'},
}, {nowiki=1})
end
function p:test_24_validate_values_crossover_using_overall()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values_crossover', {
{'series1=Lost|episode_no1=1', ''},
{'series1=Lost|season1=1', ''},
{'series1=Lost|episode_no1=1 (1 overall)', 'episode'},
{'series1=Lost|season1=1 (1 overall)', 'season'},
}, {nowiki=1})
end
function p:test_25_validate_values_crossover_linked_or_formatted()
self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values_crossover', {
{'series1=Lost|episode_no1=1', ''},
{'series1=Lost|season1=1', ''},
{'series1=Lost|episode_list1=List of Lost episodes', ''},
{'series1=Lost|episode_no1=1', 'episode'},
{'series1=Lost|season1=1', 'season'},
{'series1=Lost|episode_list1=List of Lost episodes', 'episode_list'},
{"series1=Lost|episode_no1=1", 'episode'},
{"series1=Lost|season1=1", 'season'},
{"series1=Lost|episode_list1=List of Lost episodes]]", 'episode_listepisode_list'},
}, {nowiki=1})
end
return p