Module:Annotated link/testcases
Appearance
From Wikipedia, the free encyclopedia
-- Unit tests for [[Module:Annotated link]]. Run all tests on the talk page. -- Due to the changable nature of short descriptions; some of these tests may need to be updated before running them. localp=require('Module:UnitTests') --[[ empty params ]] functionp:test__no_name_param() self:preprocess_equals('{{#invoke:Annotated link|main}}','<span style="color:#d33">[[Module:Annotated link]] requires a page name (including namespace).</span>[[Category:Pages displaying alarming messages about Module:Annotated link]]',{nowiki=1}) end functionp:test__no_name_value() self:preprocess_equals('{{#invoke:Annotated link|main|name=}}','<span style="color:#d33">[[Module:Annotated link]] requires a page name (including namespace).</span>[[Category:Pages displaying alarming messages about Module:Annotated link]]',{nowiki=1}) end functionp:test__no_display_value() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|display=}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – Explicit short description") end functionp:test__no_quote_value() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|quote=}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – Explicit short description") end functionp:test__no_abbr_value() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|abbr=}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – Explicit short description") end functionp:test__no_abbr_value__abbr_title() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|abbr=|abbr_title=Abbreviation}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – Explicit short description") end functionp:test__no_abbr__no_abbr_title_value() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|abbr=|abbr_title=}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – Explicit short description") end functionp:test__no_aka_value() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|aka=}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – Explicit short description") end functionp:test__no_wedge_value() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|wedge=}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – Explicit short description") end functionp:test__no_dash_value() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|dash=}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – Explicit short description") end functionp:test__no_desc_first_letter_case_value() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|desc_first_letter_case=}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – Explicit short description") end functionp:test__no_link_lang_value() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|link_lang=}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – Explicit short description") end -- tests for empty |link_lang_italic= |link_lang_nocat= |link_lang_size= |link_lang_cat= |link_lang_rtl= ? functionp:test__no_aka_lang_value() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|aka_lang=}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – Explicit short description") end -- tests for empty |aka_lang_italic= |aka_lang_nocat= |aka_lang_size= |aka_lang_cat= |aka_lang_rtl= ? functionp:test__no_wedge_lang_value() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|wedge_lang=}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – Explicit short description") end -- tests for empty |wedge_lang_italic= |wedge_lang_nocat= |wedge_lang_size= |wedge_lang_cat= |wedge_lang_rtl= ? functionp:test__no_only_value() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|only=}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – Explicit short description") end functionp:test__no_prefer_value() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|prefer=}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – Explicit short description") end functionp:test__no_fallback_value() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/no explicit short description|fallback=}}',"[[:Template:GetShortDescription/no explicit short description|Template:GetShortDescription/no explicit short description]]") end --[[ nonexistent page name ]] functionp:test__nonexistent_page_name() self:preprocess_equals('{{#invoke:Annotated link|main|name=Intentionally permanent red link}}','[[:Intentionally permanent red link|Intentionally permanent red link]]') end --[[ unknown param ]] functionp:test__no_unknown_value() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|unknown=}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – Explicit short description") end functionp:test__unknown_value() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|unknown=unknown}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – Explicit short description") end --[[ none but name ]] functionp:test__short_description_exists() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – Explicit short description") end functionp:test__short_description_does_not_exist() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/no explicit short description}}',"[[:Template:GetShortDescription/no explicit short description|Template:GetShortDescription/no explicit short description]]") end --[[ template links ]] functionp:test__template_link__only_explicit() self:preprocess_equals('{{#invoke:Annotated link|main|name=Template:Annotated link|only=explicit}}',"{{[[:Template:Annotated link|Annotated link]]}}") end functionp:test__template_link_code__only_explicit() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=code|name=Template:annotated link|only=explicit}}',"<code>{{[[:Template:annotated link|annotated link]]}}</code>",{combine=1}) end functionp:test__template_link_no__only_explicit() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:Annotated link|only=explicit}}',"[[:Template:Annotated link|Template:Annotated link]]") end functionp:test__template_link_no__display__only_explicit() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:Annotated link|display=Annotated link|only=explicit}}',"[[:Template:Annotated link|Annotated link]]") end --[[ name and display ]] functionp:test__display__short_description_exists() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|display=Test page}}',"[[:Template:GetShortDescription/explicit short description|Test page]] – Explicit short description") end functionp:test__display__short_description_does_not_exist() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/no explicit short description|display=Test page}}',"[[:Template:GetShortDescription/no explicit short description|Test page]]") end --[[ name and quote ]] functionp:test__quote__short_description_exists() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|quote=yes}}','"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]]" – Explicit short description') end functionp:test__quote__short_description_does_not_exist() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/no explicit short description|quote=yes}}','"[[:Template:GetShortDescription/no explicit short description|Template:GetShortDescription/no explicit short description]]"') end --[[ name and abbr ]] functionp:test__abbr__short_description_exists() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|abbr=ESD}}','[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] (<abbr>ESD</abbr>) – Explicit short description',{combined=1}) end functionp:test__abbr__short_description_does_not_exist() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/no explicit short description|abbr=NESD}}','[[:Template:GetShortDescription/no explicit short description|Template:GetShortDescription/no explicit short description]] (<abbr>NESD</abbr>)',{combined=1}) end --[[ name, abbr and abbr_title ]] functionp:test__abbr__abbr_title__short_description_exists() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|abbr=ESD|abbr_title=Explicit Short Description}}','[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] (<abbr title="Explicit Short Description">ESD</abbr>) – Explicit short description',{combined=1}) end functionp:test__abbr__abbr_title__short_description_does_not_exist() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/no explicit short description|abbr=NESD|abbr_title=No Explicit Short Description}}','[[:Template:GetShortDescription/no explicit short description|Template:GetShortDescription/no explicit short description]] (<abbr title="No Explicit Short Description">NESD</abbr>)',{combined=1}) end --[[ name and aka ]] functionp:test__aka__short_description_exists() self:preprocess_equals("{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|aka=Fred's test page}}","[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]], also known as Fred's test page – Explicit short description") end functionp:test__aka__short_description_does_not_exist() self:preprocess_equals("{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/no explicit short description|aka=Fred's test page}}","[[:Template:GetShortDescription/no explicit short description|Template:GetShortDescription/no explicit short description]], also known as Fred's test page") end --[[ name and wedge ]] functionp:test__wedge__short_description_exists() self:preprocess_equals("{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|wedge=[[Tight Fit]]}}","[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]], [[Tight Fit]] – Explicit short description") end functionp:test__wedge__short_description_does_not_exist() self:preprocess_equals("{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/no explicit short description|wedge=[[Tight Fit]]}}","[[:Template:GetShortDescription/no explicit short description|Template:GetShortDescription/no explicit short description]], [[Tight Fit]]") end --[[ name, abbr and aka ]] functionp:test__abbr__aka__short_description_exists() self:preprocess_equals("{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|abbr=ESD|aka=Fred's test page}}","[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] (<abbr>ESD</abbr>), also known as Fred's test page – Explicit short description",{combined=1}) end functionp:test__abbr__aka__short_description_does_not_exist() self:preprocess_equals("{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/no explicit short description|abbr=NESD|aka=Fred's test page}}","[[:Template:GetShortDescription/no explicit short description|Template:GetShortDescription/no explicit short description]] (<abbr>NESD</abbr>), also known as Fred's test page",{combined=1}) end --[[ name, abbr and wedge ]] functionp:test__abbr__wedge__short_description_exists() self:preprocess_equals("{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|abbr=ESD|wedge=[[Tight Fit]]}}","[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] (<abbr>ESD</abbr>), [[Tight Fit]] – Explicit short description",{combined=1}) end functionp:test__abbr__wedge__short_description_does_not_exist() self:preprocess_equals("{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/no explicit short description|abbr=NESD|wedge=[[Tight Fit]]}}","[[:Template:GetShortDescription/no explicit short description|Template:GetShortDescription/no explicit short description]] (<abbr>NESD</abbr>), [[Tight Fit]]",{combined=1}) end --[[ name, abbr, aka and wedge ]] functionp:test__abbr__aka__wedge__short_description_exists() self:preprocess_equals("{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|abbr=ESD|aka=Fred's test page|wedge=[[Tight Fit]]}}","[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] (<abbr>ESD</abbr>), also known as Fred's test page, [[Tight Fit]] – Explicit short description",{combined=1}) end functionp:test__abbr__aka__wedge__short_description_does_not_exist() self:preprocess_equals("{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/no explicit short description|abbr=NESD|aka=Fred's test page|wedge=[[Tight Fit]]}}","[[:Template:GetShortDescription/no explicit short description|Template:GetShortDescription/no explicit short description]] (<abbr>NESD</abbr>), also known as Fred's test page, [[Tight Fit]]",{combined=1}) end --[[ name, aka and wedge ]] functionp:test__aka__wedge__short_description_exists() self:preprocess_equals("{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|aka=Fred's test page|wedge=[[Tight Fit]]}}","[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]], also known as Fred's test page, [[Tight Fit]] – Explicit short description") end functionp:test__aka__wedge__short_description_does_not_exist() self:preprocess_equals("{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/no explicit short description|aka=Fred's test page|wedge=[[Tight Fit]]}}","[[:Template:GetShortDescription/no explicit short description|Template:GetShortDescription/no explicit short description]], also known as Fred's test page, [[Tight Fit]]") end --[[ name and link_lang en ]] functionp:test__link_lang_en() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/no explicit short description|link_lang=en}}',"[[:Template:GetShortDescription/no explicit short description|Template:GetShortDescription/no explicit short description]]") end --[[ name, display and link_lang fr ]] functionp:test__display__link_lang_fr() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/no explicit short description|display=La page de test de Fred|link_lang=fr}}','<span title="French-language text"><i lang="fr">[[:Template:GetShortDescription/no explicit short description|La page de test de Fred]]</i></span>',{combined=1}) end --[[ name, display, quote and link_lang fr ]] functionp:test__display__quote__link_lang_fr() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/no explicit short description|display=La page de test de Fred|quote=yes|link_lang=fr}}','"<span title="French-language text"><i lang="fr">[[:Template:GetShortDescription/no explicit short description|La page de test de Fred]]</i></span>"',{combined=1}) end --[[ name, aka and aka_lang ja ]] functionp:test__aka__aka_lang_ja() self:preprocess_equals("{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/no explicit short description|aka=フレッドのテストページ|aka_lang=ja}}",'[[:Template:GetShortDescription/no explicit short description|Template:GetShortDescription/no explicit short description]], also known as <span title="Japanese-language text"><span lang="ja">フレッドのテストページ</span></span>',{combined=1}) end --[[ name, wedge and wedge_lang ga ]] functionp:test__wedge__wedge_lang_ga() self:preprocess_equals("{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/no explicit short description|wedge=Leathanach tástála Fred|wedge_lang=ga}}",'[[:Template:GetShortDescription/no explicit short description|Template:GetShortDescription/no explicit short description]], <span title="Irish-language text"><i lang="ga">Leathanach tástála Fred</i></span>',{combined=1}) end --[[ name and mixed language ]] functionp:test__mixed_language() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/no explicit short description|display=La page de test de Fred|link_lang=fr|aka=フレッドのテストページ|aka_lang=ja|wedge=Leathanach tástála Fred|wedge_lang=ga}}','<span title="French-language text"><i lang="fr">[[:Template:GetShortDescription/no explicit short description|La page de test de Fred]]</i></span>, also known as <span title="Japanese-language text"><span lang="ja">フレッドのテストページ</span></span>, <span title="Irish-language text"><i lang="ga">Leathanach tástála Fred</i></span>',{combined=1}) end functionp:test__dash_value_comma() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|dash=,}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]], Explicit short description") end functionp:test__desc_first_letter_case_upper() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|desc_first_letter_case=upper}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – Explicit short description") end --[[ categorisation of short descriptions with no spaces being displayed ]] functionp:test__categorise_no_space_descriptions() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description with no spaces}}','[[:Template:GetShortDescription/explicit short description with no spaces|Template:GetShortDescription/explicit short description with no spaces]] – Spacelessness<span style="display:none" class="category-spaceless-annotation">Pages displaying short descriptions with no spaces</span>[[Category:Pages displaying short descriptions with no spaces via Module:Annotated link]]',{nowiki=1}) end functionp:test__categorise_no_space_descriptions__space_cat() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description with no spaces|space_cat=meow}}',"[[:Template:GetShortDescription/explicit short description with no spaces|Template:GetShortDescription/explicit short description with no spaces]] – Spacelessness") end --[[ basic passthrough to Module:GetShortDescription ]] --[[ only explicit ]] functionp:test__only_explicit__explicit_exists() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|only=explicit}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – Explicit short description") end functionp:test__only_explicit__explicit_does_not_exist() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/no explicit short description|only=explicit}}',"[[:Template:GetShortDescription/no explicit short description|Template:GetShortDescription/no explicit short description]]") end --[[ only wikidata ]] functionp:test__only_wikidata__wikidata_exists() self:preprocess_equals('{{#invoke:Annotated link|main|name=Wikipedia|only=wikidata}}',"[[:Wikipedia|Wikipedia]] – free multilingual online encyclopedia") end functionp:test__only_wikidata__wikidata_does_not_exist() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|only=wikidata}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]]") end --[[ prefer explicit ]] functionp:test__only_explicit__explicit_exists__wikidata_exists() self:preprocess_equals('{{#invoke:Annotated link|main|name=Wikipedia|prefer=explicit}}',"[[:Wikipedia|Wikipedia]] – Free online crowdsourced encyclopedia") end functionp:test__only_explicit__explicit_does_not_exist__wikidata_exists() self:preprocess_equals('{{#invoke:Annotated link|main|name=Example|prefer=explicit}}','[[:Example|Example]] – Wikimedia disambiguation page<span style="display:none" class="category-wikidata-fallback-annotation">Pages displaying wikidata descriptions as a fallback</span>[[Category:Pages displaying wikidata descriptions as a fallback via Module:Annotated link]]',{nowiki=1}) end --[[ prefer wikidata ]] functionp:test__only_wikidata__wikidata_exists__explicit_exists() self:preprocess_equals('{{#invoke:Annotated link|main|name=Wikipedia|prefer=wikidata}}',"[[:Wikipedia|Wikipedia]] – free multilingual online encyclopedia") end functionp:test__only_wikidata__wikidata_does_not_exist__explicit_exists() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|prefer=wikidata}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – Explicit short description") end -- [[ fallback ]] functionp:test__only_explicit__fallback__explicit_does_not_exist() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/no explicit short description|only=explicit|fallback=this is a fallback}}',"[[:Template:GetShortDescription/no explicit short description|Template:GetShortDescription/no explicit short description]] – this is a fallback") end functionp:test__only_wikidata__fallback__wikidata_does_not_exist() self:preprocess_equals('{{#invoke:Annotated link|main|template_link=no|name=Template:GetShortDescription/explicit short description|only=wikidata|fallback=this is a fallback}}',"[[:Template:GetShortDescription/explicit short description|Template:GetShortDescription/explicit short description]] – this is a fallback") end -- [[ prefix_parentheses ]] functionp:test__prefix_parentheses() self:preprocess_equals('{{#invoke:Annotated_link|main|name=Jimmy Wales|dash=,|prefix_parentheses=y|desc_first_letter_case=lower}}',"[[:Jimmy Wales|Jimmy Wales]] (born 1966), co-founder of Wikipedia") self:preprocess_equals('{{#invoke:Annotated_link|main|name=Jimmy Wales|dash=,|desc_first_letter_case=lower}}',"[[:Jimmy Wales|Jimmy Wales]], co-founder of Wikipedia (born 1966)") end --[[ test the test; sanity check; should fail ]] --function p:test_the_test() -- self:preprocess_equals('{{#invoke:Annotated link|main|name=Example}}', "test the test") --end --[[ foreign language wikidata ]] -- Testing |desc_lang_italic= |desc_lang_nocat= |desc_lang_size= |desc_lang_cat= |desc_lang_rtl= |desc_lang_no= will require a wikidata description in a language other than English to be returned returnp