Jump to content

Module:Category handler/testcases

Kufuma Wikipedia

Documentation for this module may be created at Module:Category handler/testcases/doc

-- Unit tests for [[Module:Category handler]]. Click talk page to run tests. local m_category_handler = require('Module:Category handler/sandbox') local chmain = m_category_handler._main local ScribuntoUnit = require('Module:ScribuntoUnit') local suite = ScribuntoUnit:new()  -- Define table of defaults local d = {}  -- 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 --------------------------------------------------------------------------------  function suite:test_nil()  self:assertEquals(d.absent, chmain{nil}) end  -------------------------------------------------------------------------------- -- Test defaults --------------------------------------------------------------------------------  function suite: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  function suite:test_default_main()  self:assertEquals(d.category, chmain{d.category, page = d.article}) end  function suite:test_default_file()  self:assertEquals(d.category, chmain{d.category, page = d.file}) end  -------------------------------------------------------------------------------- -- Test numbered parameters --------------------------------------------------------------------------------  function suite:test_numbered_main()  self:assertEquals(d.category, chmain{ [1] = d.category, main = 1, page = d.article }) end  function suite: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 --------------------------------------------------------------------------------  function suite:test_numbered_main()  self:assertEquals(d.absent, chmain{ main = d.category, page = d.file }) end  -------------------------------------------------------------------------------- -- Test blank namespace parameters --------------------------------------------------------------------------------  function suite:test_blank_namespace_talk()  self:assertEquals(d.blank, chmain{ talk = d.blank, other = d.category, page = d.talk }) end  -------------------------------------------------------------------------------- -- Test other parameter --------------------------------------------------------------------------------  function suite:test_other_only()  self:assertEquals(d.category, chmain{ other = d.category, }) end  -------------------------------------------------------------------------------- -- Test nocat parameter --------------------------------------------------------------------------------  function suite:test_nocat_true()  self:assertEquals(d.absent, chmain{d.category, page = d.file, nocat = true}) end  function suite:test_nocat_blank()  self:assertEquals(d.category, chmain{d.category, page = d.file, nocat = ''}) end  function suite:test_nocat_yes()  self:assertEquals(d.absent, chmain{d.category, page = d.file, nocat = d.yes}) end  function suite:test_nocat_false()  self:assertEquals(d.category, chmain{ [d.archiveParam] = d.category, page = d.archive, nocat = false }) end  function suite:test_nocat_no()  self:assertEquals(d.category, chmain{ [d.archiveParam] = d.category, page = d.archive, nocat = d.no }) end  -------------------------------------------------------------------------------- -- Test categories parameter --------------------------------------------------------------------------------  function suite:test_categories_true()  self:assertEquals(d.category, chmain{ [d.archiveParam] = d.category, page = d.archive, categories = true }) end  function suite:test_categories_blank()  self:assertEquals(d.category, chmain{d.category, page = d.file, categories = ''}) end  function suite:test_categories_yes()  self:assertEquals(d.category, chmain{ [d.archiveParam] = d.category, page = d.archive, categories = d.yes }) end  function suite:test_categories_false()  self:assertEquals(d.absent, chmain{ file = d.category, page = d.file, categories = false }) end  function suite:test_categories_no()  self:assertEquals(d.absent, chmain{ file = d.category, page = d.file, categories = d.no }) end  -------------------------------------------------------------------------------- -- Test category2 parameter --------------------------------------------------------------------------------  function suite:test_category2_no()  self:assertEquals(d.absent, chmain{ other = d.category, category2 = d.no }) end  function suite:test_category2_blank()  self:assertEquals(d.absent, chmain{ other = d.category, category2 = d.blank }) end  function suite:test_category2_negation()  self:assertEquals(d.category, chmain{ other = d.category, category2 = d.negation }) end  function suite:test_category2_blacklist()  self:assertEquals(d.category, chmain{ other = d.category, page = d.archive, categories = d.yes }) end  -------------------------------------------------------------------------------- -- Test subpage parameter --------------------------------------------------------------------------------  function suite:test_subpage_no_basepage()  self:assertEquals(d.category, chmain{ other = d.category, page = d.basepage, subpage = d.subpageNo }) end  function suite:test_subpage_no_subpage()  self:assertEquals(d.absent, chmain{ other = d.category, page = d.subpage, subpage = d.subpageNo }) end  function suite:test_subpage_only_basepage()  self:assertEquals(d.absent, chmain{ other = d.category, page = d.basepage, subpage = d.subpageOnly }) end  function suite:test_subpage_only_subpage()  self:assertEquals(d.category, chmain{ other = d.category, page = d.subpage, subpage = d.subpageOnly }) end  -------------------------------------------------------------------------------- -- Test blacklist --------------------------------------------------------------------------------  function suite:test_blacklist_archives()  self:assertEquals(d.absent, chmain{ other = d.category, page = 'User talk:Example/Archive 5', }) end  function suite:test_blacklist_archives_lowercase()  self:assertEquals(d.absent, chmain{ other = d.category, page = 'User talk:Example/archive 5', }) end  function suite:test_blacklist_archives_notarchive()  self:assertEquals(d.category, chmain{ other = d.category, page = 'User talk:Example/Archove 5', }) end  function suite:test_blacklist_archives_incident_archive()  self:assertEquals(d.category, chmain{ other = d.category, page = "Wikipedia:Administrators' noticeboard/IncidentArchive 5", }) end  function suite:test_blacklist_main_page()  self:assertEquals(d.absent, chmain{ other = d.category, page = 'Main Page', }) end  function suite:test_blacklist_main_page_talk()  self:assertEquals(d.category, chmain{ other = d.category, page = 'Talk:Main Page', }) end  function suite:test_blacklist_cascade()  self:assertEquals(d.absent, chmain{ other = d.category, page = 'Wikipedia:Cascade-protected items', }) end  function suite:test_blacklist_cascade_slash()  self:assertEquals(d.absent, chmain{ other = d.category, page = 'Wikipedia:Cascade-protected items/', }) end  function suite:test_blacklist_cascade_subpage()  self:assertEquals(d.absent, chmain{ other = d.category, page = 'Wikipedia:Cascade-protected items/Foo', }) end  function suite:test_blacklist_cascade_not_subpage()  self:assertEquals(d.category, chmain{ other = d.category, page = 'Wikipedia:Cascade-protected itemsFoo', }) end  function suite:test_blacklist_cascade_talk()  self:assertEquals(d.category, chmain{ other = d.category, page = 'Wikipedia talk:Cascade-protected items', }) end  function suite:test_blacklist_ubx()  self:assertEquals(d.absent, chmain{ other = d.category, page = 'User:UBX', }) end  function suite:test_blacklist_ubx_talk()  self:assertEquals(d.absent, chmain{ other = d.category, page = 'User talk:UBX', }) end  function suite:test_blacklist_ubx_subpage()  self:assertEquals(d.absent, chmain{ other = d.category, page = 'User:UBX/Userboxes', }) end  function suite:test_blacklist_ubx_talk_subpage()  self:assertEquals(d.absent, chmain{ other = d.category, page = 'User talk:UBX/Userboxes', }) end  function suite:test_blacklist_template_index_basepage()  self:assertEquals(d.category, chmain{ other = d.category, page = 'Wikipedia:Template index', }) end  function suite:test_blacklist_template_index_slash()  self:assertEquals(d.absent, chmain{ other = d.category, page = 'Wikipedia:Template index/', }) end  function suite:test_blacklist_template_index_not_subpage()  self:assertEquals(d.category, chmain{ other = d.category, page = 'Wikipedia:Template indexFoo', }) end  function suite:test_blacklist_template_index_subpage()  self:assertEquals(d.absent, chmain{ other = d.category, page = 'Wikipedia:Template index/Cleanup', }) end  -------------------------------------------------------------------------------- -- Test namespace params --------------------------------------------------------------------------------  function suite:test_main()  self:assertEquals(d.category, chmain{ main = d.category, page = 'Some article', }) end  function suite:test_talk()  self:assertEquals(d.category, chmain{ talk = d.category, page = 'Talk:Some article', }) end  function suite:test_user()  self:assertEquals(d.category, chmain{ user = d.category, page = 'User:Example', }) end  function suite: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  function suite:test_wikipedia()  self:assertEquals(d.category, chmain{ wikipedia = d.category, page = 'Wikipedia:Example', }) end  function suite:test_wikipedia()  self:assertEquals(d.category, chmain{ wikipedia = d.category, page = 'Wikipedia:Example', }) end  function suite:test_project()  self:assertEquals(d.category, chmain{ project = d.category, page = 'Wikipedia:Example', }) end  function suite:test_wp()  self:assertEquals(d.category, chmain{ wp = d.category, page = 'Wikipedia:Example', }) end  function suite:test_file()  self:assertEquals(d.category, chmain{ file = d.category, page = 'File:Example.png', }) end  function suite:test_image()  self:assertEquals(d.category, chmain{ image = d.category, page = 'File:Example.png', }) end  function suite:test_mediawiki()  self:assertEquals(d.category, chmain{ mediawiki = d.category, page = 'MediaWiki:Protectedpagetext', }) end  function suite:test_template()  self:assertEquals(d.category, chmain{ template = d.category, page = 'Template:Example', }) end  function suite:test_help()  self:assertEquals(d.category, chmain{ help = d.category, page = 'Help:Editing', }) end  function suite:test_category()  self:assertEquals(d.category, chmain{ category = d.category, page = 'Category:Wikipedians', }) end  function suite:test_category()  self:assertEquals(d.category, chmain{ category = d.category, page = 'Category:Wikipedians', }) end  function suite:test_portal()  self:assertEquals(d.category, chmain{ portal = d.category, page = 'Portal:France', }) end  function suite:test_draft()  self:assertEquals(d.category, chmain{ draft = d.category, page = 'Draft:Example', }) end  function suite:test_timedtext()  self:assertEquals(d.category, chmain{ timedtext = d.category, page = 'TimedText:Example', }) end  function suite:test_module()  self:assertEquals(d.category, chmain{ module = d.category, page = 'Module:Sandbox', }) end  function suite:test_special()  self:assertEquals(d.category, chmain{ special = d.category, page = 'Special:WhatLinksHere', }) end  function suite:test_media()  self:assertEquals(d.category, chmain{ media = d.category, page = 'Media:Example.png', }) end  return suite