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', ''}, {'page_title_test=Just for the Record (Randall and Hopkirk (Deceased))|title=Just for the Record|series=Randall and Hopkirk (Deceased)', ''}, {'page_title_test=Cassie (Skins series 1)|title=Cassie|series=Skins', ''}, {'page_title_test=Debbie (Brooklyn Nine-Nine)|title=Debbie|series=Brooklyn Nine-Nine', ''}, {'page_title_test=Debbie (Brooklyn Nine-Nine episode)|title=Debbie|series=Brooklyn Nine-Nine', ''}, {'page_title_test=Title (dab)|title=Title (dab)', ''}, {'page_title_test=Title (not a dab)|title=Title (not a dab)|series=Lost', ''}, {'page_title_test=Test|title=Test', ''}, {'page_title_test=Test (dab)|title=Test|series=dab', ''}, {'page_title_test=Test (dab episode)|title=Test|series=dab', ''}, {'page_title_test=Test|title=test', ''}, {'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=Premiere (The Tonight Show Starring Jimmy Fallon)|title=Premiere|series=The Tonight Show Starring Jimmy Fallon', ''}, {'page_title_test=Premiere (The Tonight Show Starring Jimmy Fallon episode)|title=Premiere|series=The Tonight Show Starring Jimmy Fallon', ''}, }, {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', },		{'page_test=HappyHolograms|title=#HappyHolograms2', },		{'page_test=Rehash (South Park)|title=#REHASH', },		{'page_test=Rehash (South Park)|title=#REHASH|series=South Park', },		{'page_test=Rehash (South Park)|title=#REHASH2|series=South Park', },		{'page_test=Rick Potion No. 9|title=Rick Potion #9|series=Rick and Morty', },		{'page_test=All things|page_title_test=All things|title=all things', },		{'page_test=All things|page_title_test=All things|title=All Things', },		{'page_test=ISpy (Modern Family)|page_title_test=ISpy (Modern Family)|title=iSpy|series=Modern Family', },		{'page_test=ISpy (Modern Family)|page_title_test=ISpy (Modern Family)|title=ISpy|series=Modern Family', },		{'page_test=ISpy (Modern Family)|page_title_test=ISpy (Modern Family)|title=I Spy|series=Modern Family', ''}, {'page_test=Google Behind the Screen|page_title_test=Google Behind the Screen|title=Google: Behind the Screen', ''}, {'page_test=Google Behind the Screen|page_title_test=Google Behind the Screen|title=Google Behind the Screen', ''}, {'page_test=Eps1.0 hellofriend.mov|page_title_test=Eps1.0 hellofriend.mov|title=eps1.0_hellofriend.mov|italic_title=no', ''}, {'page_test=Eps1.0 hellofriend.mov|page_title_test=Eps1.0 hellofriend.mov|title=eps1.0 hellofriend.mov|italic_title=no', ''}, {'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 not found|italic_title=no', ''}, {'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 not found|italic_title=no', ''}, {'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', ''}, {'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', ''}, }, {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", },		{'page_title_test=Test\'|title=Test' .. expandTemplate("Single+space", {}), },		{'page_title_test=\'Test (dab)|title=' .. expandTemplate("Space+single", {}) .. "Test|series=dab", },		{'page_title_test=\'Test\'|title=' .. expandTemplate("Space+single", {}) .. "Test" .. expandTemplate("Single+space", {}), },		{'page_title_test=\'Test|title=' .. expandTemplate("Space+single", {}) .. "test", },		{'page_title_test="A" in a title|title=' .. expandTemplate("Space+single", {}) .. "A' in a title", },		{'page_title_test=Bart Gets an "F"|title=Bart Gets an \'F' .. expandTemplate("Single+space", {}), },		{'page_title_test="A" in a title (dab)|title=' .. expandTemplate("Space+single", {}) .. "A' in a title|series=dab", }, {'page_title_test="A" in a title is an "F"|title=' .. expandTemplate("Space+single", {}) .. "A' in a title is an 'F" .. expandTemplate("Single+space", {}), ''}, {'page_title_test="A" in a title|title=' .. expandTemplate("Space+single", {}) .. '"a" in a 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=', },		{'image_size=1', },		{'image_upright=1', },		{'image_alt=test', },		{'alt=test', },		{'caption=test', ''},   }, {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=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', },   }, {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', },		{'prev=? (Lost)', },		{'next=? (Lost)', },		{"series=Lost", },		{"series=Lost", },		{"prev=? (Lost)", },		{"next=? (Lost)", },   }, {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)', },		{'season=1 (1 overall)', },		{'series_no=1 (1 overall)', },   }, {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)", },		{"prev=prev", },		{"next=next", },		{"episode=1", },		{"season=1", },		{"series_no=1", },		{"episode_list=List of Lost episodes", },		{"producer=Executive producer: John", },   }, {nowiki=1}) end

function p:test_08_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=1', },		{'season=1', },		{'series_no=1', },		{'episode_list=List of Lost episodes', },   }, {nowiki=1}) end

function p:test_09_has_icons self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values', {		{'director=' .. expandTemplate("USA", {}) .. 'test', ''},	}, {nowiki=1}) end

-- function p:test_10_invalid_tags -- 	self:preprocess_equals_sandbox_many('{{#invoke:Infobox television episode', 'validate_values', { -- 		{'guests={{center|Name}}', }, -- 		{'episode= Name ', }, -- 		{'episode=' .. expandTemplate("Small", {"Name"}), ''}, -- 	}, {nowiki=1}) -- end

-- {'director=First name Second name', ''}, -- {'director=First name Second name', ''}, -- {'director=First name Second name', ''},

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"}), },		{'airdate=' .. expandTemplate("Start and end dates", {"1939", "9", "1", "1945", "9", "2"}), },		{'airdate=' .. expandTemplate("Film date/sandbox", {"1999", "3", "4"}), },		{'airdate=4/3/1999', },		{'airdate=March 4, 1999', },		{'released=4/3/1999', },		{'released=March 4, 1999', },		{'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=y', ''},   }, {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"}), },		{'director=' .. expandTemplate("Indented plainlist", {"|* First director * Second director"}), },		{'director=' .. expandTemplate("Flatlist", {"|* First director * Second director"}), },		{'director=' .. expandTemplate("Hlist", {"|First director|Second director"}), },		{'director=' .. expandTemplate("Unbulleted list", {"|First director|Second director"}), },		{'director=' .. expandTemplate("Bulleted list", {"|First director|Second director"}), },		{'director=' .. expandTemplate("Ordered list", {"|First director|Second director"}), },		{'director=' .. expandTemplate("Horizontal ordered list", {"|First director|Second director"}), ''}, {'director=First director Second director', ''}, {'director=First director Second director', ''}, {'director=First director Second director', ''}, {'director=First director Second director', ''}, {'director=First director  Second director', ''}, {'commentary=' .. expandTemplate("Plainlist", {"* First person * Second person"}), ''}, }, {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"}) .. ' ', }, -- 		{'director=First director ', }, -- 		{'caption=image caption ', }, -- 		{'production=1234 ', }, --    }, {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', ''},   }, {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.', ''}, {'page_title_test=The End (Lost)|page_test=Agents of S.H.I.E.L.D. series finale|series=Lost', 'italic_dab'}, }, {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 not found")}, {'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', },		{'image_upright=1', },		{'image_alt=test', },		{'alt=test', },		{'caption=test', },	}, {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', ''},	}, {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', ''}, {'series1=series1|airdate1=4/3/1999', ''}, {'series1=series1|airdate1=' .. expandTemplate("Start date", {"1999", "3", "4"}) .. '|series2=series2|airdate2=4/3/1999', ''},		{'series1=series1|airdate1=' .. expandTemplate("Start date", {"1999", "3", "4"}) .. '|series2=series2|airdate2=' .. expandTemplate("Start date", {"1999", "3", "4"}) .. '|series3=series3|airdate3=4/3/1999', ''}, {'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', ''},		{'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', ''}, }, {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', },		{'series1=Lost|prev1=? (Lost)', },		{'series1=Lost|next1=? (Lost)', },		{"series1=Lost", },		{"series1=Lost|prev1=? (Lost)", },		{"series1=Lost|next1=? (Lost)", },		{'series1=Lost|series2=Lost', },		{'series1=Lost|prev1=? (Lost)|series2=Lost|prev2=? (Lost)', },		{'series1=Lost|next1=? (Lost)|series2=Lost|next2=? (Lost)', },		{"series1=Lost|series2=Lost", },		{"series1=Lost|prev1=? (Lost)|series2=Lost|prev2=? (Lost)", },		{"series1=Lost|next1=? (Lost)|series2=Lost|next2=? (Lost)", ''},   }, {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)', },		{'series1=Lost|season1=1 (1 overall)', },   }, {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', },		{'series1=Lost|season1=1', },		{'series1=Lost|episode_list1=List of Lost episodes', },		{"series1=Lost|episode_no1=1", },		{"series1=Lost|season1=1", },		{"series1=Lost|episode_list1=List of Lost episodes]]", ''},   }, {nowiki=1}) end

return p