Module:Category handler/testcases
Appearance
From Wikipedia, the free encyclopedia
-- Unit tests for [[Module:Category handler]]. Click talk page to run tests. localm_category_handler=require('Module:Category handler/sandbox') localchmain=m_category_handler._main localScribuntoUnit=require('Module:ScribuntoUnit') localsuite=ScribuntoUnit:new() -- Define table of defaults locald={} -- Values d.absent=nil d.blank='' d.negation='¬' d.yes='yes' d.no='no' d.subpageOnly='only' d.subpageNo='no' -- Categories d.category='Category:Somecat' d.category1='Category:Somecat1' d.category2='Category:Somecat2' -- Pages d.article='Somearticle' d.file='File:Example.png' d.talk='Talk:Foo' d.archive='User talk:Example/Archive 5' d.subpage='User:Example/test' d.basepage='User:Example' -- Params d.archiveParam='talk' -------------------------------------------------------------------------------- -- Test nil -------------------------------------------------------------------------------- functionsuite:test_nil() self:assertEquals(d.absent,chmain{nil}) end -------------------------------------------------------------------------------- -- Test defaults -------------------------------------------------------------------------------- functionsuite:test_default_current_page() -- Will test either module or module talk space, neither of which are categorised by default. self:assertEquals(d.absent,chmain{d.category}) end functionsuite:test_default_main() self:assertEquals(d.category,chmain{d.category,page=d.article}) end functionsuite:test_default_file() self:assertEquals(d.category,chmain{d.category,page=d.file}) end -------------------------------------------------------------------------------- -- Test numbered parameters -------------------------------------------------------------------------------- functionsuite:test_numbered_main() self:assertEquals(d.category,chmain{ [1]=d.category, main=1, page=d.article }) end functionsuite:test_numbered_two_params() self:assertEquals(d.category2,chmain{ [1]=d.category1, [2]=d.category2, main=1, file=2, page=d.file }) end -------------------------------------------------------------------------------- -- Test overriding defaults -------------------------------------------------------------------------------- functionsuite:test_numbered_main() self:assertEquals(d.absent,chmain{ main=d.category, page=d.file }) end -------------------------------------------------------------------------------- -- Test blank namespace parameters -------------------------------------------------------------------------------- functionsuite:test_blank_namespace_talk() self:assertEquals(d.blank,chmain{ talk=d.blank, other=d.category, page=d.talk }) end -------------------------------------------------------------------------------- -- Test other parameter -------------------------------------------------------------------------------- functionsuite:test_other_only() self:assertEquals(d.category,chmain{ other=d.category, }) end -------------------------------------------------------------------------------- -- Test nocat parameter -------------------------------------------------------------------------------- functionsuite:test_nocat_true() self:assertEquals(d.absent,chmain{d.category,page=d.file,nocat=true}) end functionsuite:test_nocat_blank() self:assertEquals(d.category,chmain{d.category,page=d.file,nocat=''}) end functionsuite:test_nocat_yes() self:assertEquals(d.absent,chmain{d.category,page=d.file,nocat=d.yes}) end functionsuite:test_nocat_false() self:assertEquals(d.category,chmain{ [d.archiveParam]=d.category, page=d.archive, nocat=false }) end functionsuite:test_nocat_no() self:assertEquals(d.category,chmain{ [d.archiveParam]=d.category, page=d.archive, nocat=d.no }) end -------------------------------------------------------------------------------- -- Test categories parameter -------------------------------------------------------------------------------- functionsuite:test_categories_true() self:assertEquals(d.category,chmain{ [d.archiveParam]=d.category, page=d.archive, categories=true }) end functionsuite:test_categories_blank() self:assertEquals(d.category,chmain{d.category,page=d.file,categories=''}) end functionsuite:test_categories_yes() self:assertEquals(d.category,chmain{ [d.archiveParam]=d.category, page=d.archive, categories=d.yes }) end functionsuite:test_categories_false() self:assertEquals(d.absent,chmain{ file=d.category, page=d.file, categories=false }) end functionsuite:test_categories_no() self:assertEquals(d.absent,chmain{ file=d.category, page=d.file, categories=d.no }) end -------------------------------------------------------------------------------- -- Test category2 parameter -------------------------------------------------------------------------------- functionsuite:test_category2_no() self:assertEquals(d.absent,chmain{ other=d.category, category2=d.no }) end functionsuite:test_category2_blank() self:assertEquals(d.absent,chmain{ other=d.category, category2=d.blank }) end functionsuite:test_category2_negation() self:assertEquals(d.category,chmain{ other=d.category, category2=d.negation }) end functionsuite:test_category2_blacklist() self:assertEquals(d.category,chmain{ other=d.category, page=d.archive, categories=d.yes }) end -------------------------------------------------------------------------------- -- Test subpage parameter -------------------------------------------------------------------------------- functionsuite:test_subpage_no_basepage() self:assertEquals(d.category,chmain{ other=d.category, page=d.basepage, subpage=d.subpageNo }) end functionsuite:test_subpage_no_subpage() self:assertEquals(d.absent,chmain{ other=d.category, page=d.subpage, subpage=d.subpageNo }) end functionsuite:test_subpage_only_basepage() self:assertEquals(d.absent,chmain{ other=d.category, page=d.basepage, subpage=d.subpageOnly }) end functionsuite:test_subpage_only_subpage() self:assertEquals(d.category,chmain{ other=d.category, page=d.subpage, subpage=d.subpageOnly }) end -------------------------------------------------------------------------------- -- Test blacklist -------------------------------------------------------------------------------- functionsuite:test_blacklist_archives() self:assertEquals(d.absent,chmain{ other=d.category, page='User talk:Example/Archive 5', }) end functionsuite:test_blacklist_archives_lowercase() self:assertEquals(d.absent,chmain{ other=d.category, page='User talk:Example/archive 5', }) end functionsuite:test_blacklist_archives_notarchive() self:assertEquals(d.category,chmain{ other=d.category, page='User talk:Example/Archove 5', }) end functionsuite:test_blacklist_archives_incident_archive() self:assertEquals(d.category,chmain{ other=d.category, page="Wikipedia:Administrators' noticeboard/IncidentArchive 5", }) end functionsuite:test_blacklist_main_page() self:assertEquals(d.absent,chmain{ other=d.category, page='Main Page', }) end functionsuite:test_blacklist_main_page_talk() self:assertEquals(d.category,chmain{ other=d.category, page='Talk:Main Page', }) end functionsuite:test_blacklist_cascade() self:assertEquals(d.absent,chmain{ other=d.category, page='Wikipedia:Cascade-protected items', }) end functionsuite:test_blacklist_cascade_slash() self:assertEquals(d.absent,chmain{ other=d.category, page='Wikipedia:Cascade-protected items/', }) end functionsuite:test_blacklist_cascade_subpage() self:assertEquals(d.absent,chmain{ other=d.category, page='Wikipedia:Cascade-protected items/Foo', }) end functionsuite:test_blacklist_cascade_not_subpage() self:assertEquals(d.category,chmain{ other=d.category, page='Wikipedia:Cascade-protected itemsFoo', }) end functionsuite:test_blacklist_cascade_talk() self:assertEquals(d.category,chmain{ other=d.category, page='Wikipedia talk:Cascade-protected items', }) end functionsuite:test_blacklist_ubx() self:assertEquals(d.absent,chmain{ other=d.category, page='User:UBX', }) end functionsuite:test_blacklist_ubx_talk() self:assertEquals(d.absent,chmain{ other=d.category, page='User talk:UBX', }) end functionsuite:test_blacklist_ubx_subpage() self:assertEquals(d.absent,chmain{ other=d.category, page='User:UBX/Userboxes', }) end functionsuite:test_blacklist_ubx_talk_subpage() self:assertEquals(d.absent,chmain{ other=d.category, page='User talk:UBX/Userboxes', }) end functionsuite:test_blacklist_template_index_basepage() self:assertEquals(d.category,chmain{ other=d.category, page='Wikipedia:Template index', }) end functionsuite:test_blacklist_template_index_slash() self:assertEquals(d.absent,chmain{ other=d.category, page='Wikipedia:Template index/', }) end functionsuite:test_blacklist_template_index_not_subpage() self:assertEquals(d.category,chmain{ other=d.category, page='Wikipedia:Template indexFoo', }) end functionsuite:test_blacklist_template_index_subpage() self:assertEquals(d.absent,chmain{ other=d.category, page='Wikipedia:Template index/Cleanup', }) end -------------------------------------------------------------------------------- -- Test namespace params -------------------------------------------------------------------------------- functionsuite:test_main() self:assertEquals(d.category,chmain{ main=d.category, page='Some article', }) end functionsuite:test_talk() self:assertEquals(d.category,chmain{ talk=d.category, page='Talk:Some article', }) end functionsuite:test_user() self:assertEquals(d.category,chmain{ user=d.category, page='User:Example', }) end functionsuite:test_user_talk() self:assertEquals(d.category,chmain{ talk=d.category, page='User talk:Example', }) self:assertEquals(d.absent,chmain{ ['user talk']=d.category, page='User talk:Example', }) self:assertEquals(d.absent,chmain{ ['user_talk']=d.category, page='User talk:Example', }) end functionsuite:test_wikipedia() self:assertEquals(d.category,chmain{ wikipedia=d.category, page='Wikipedia:Example', }) end functionsuite:test_wikipedia() self:assertEquals(d.category,chmain{ wikipedia=d.category, page='Wikipedia:Example', }) end functionsuite:test_project() self:assertEquals(d.category,chmain{ project=d.category, page='Wikipedia:Example', }) end functionsuite:test_wp() self:assertEquals(d.category,chmain{ wp=d.category, page='Wikipedia:Example', }) end functionsuite:test_file() self:assertEquals(d.category,chmain{ file=d.category, page='File:Example.png', }) end functionsuite:test_image() self:assertEquals(d.category,chmain{ image=d.category, page='File:Example.png', }) end functionsuite:test_mediawiki() self:assertEquals(d.category,chmain{ mediawiki=d.category, page='MediaWiki:Protectedpagetext', }) end functionsuite:test_template() self:assertEquals(d.category,chmain{ template=d.category, page='Template:Example', }) end functionsuite:test_help() self:assertEquals(d.category,chmain{ help=d.category, page='Help:Editing', }) end functionsuite:test_category() self:assertEquals(d.category,chmain{ category=d.category, page='Category:Wikipedians', }) end functionsuite:test_category() self:assertEquals(d.category,chmain{ category=d.category, page='Category:Wikipedians', }) end functionsuite:test_portal() self:assertEquals(d.category,chmain{ portal=d.category, page='Portal:France', }) end functionsuite:test_draft() self:assertEquals(d.category,chmain{ draft=d.category, page='Draft:Example', }) end functionsuite:test_timedtext() self:assertEquals(d.category,chmain{ timedtext=d.category, page='TimedText:Example', }) end functionsuite:test_module() self:assertEquals(d.category,chmain{ module=d.category, page='Module:Sandbox', }) end functionsuite:test_special() self:assertEquals(d.category,chmain{ special=d.category, page='Special:WhatLinksHere', }) end functionsuite:test_media() self:assertEquals(d.category,chmain{ media=d.category, page='Media:Example.png', }) end returnsuite