Module:Category handler/testcases: Difference between revisions
Appearance
Content deleted Content added
add subpage tests |
convert blacklist tests |
||
Line 254: | Line 254: | ||
end |
end |
||
-------------------------------------------------------------------------------- |
|||
--[=[ |
|||
-- Test blacklist |
|||
function p:test_blacklist() |
|||
-------------------------------------------------------------------------------- |
|||
self:preprocess_equals_preprocess_many('{{#invoke:Category handler|main', '}}', '{{category handler', '}}', { |
|||
{[[ |
|||
function suite:test_blacklist_archives() |
|||
| other = Somecat |
|||
self:assertEquals(d.absent, chmain{ |
|||
| page = User talk:Example/Archive 5]]}, |
|||
other = d.category, |
|||
{[[ |
|||
page = 'User talk:Example/Archive 5', |
|||
| main = Category:Somecat1 |
|||
}) |
|||
| page = Main Page]]}, |
|||
{[[ |
|||
| talk = Category:Somecat1 |
|||
| page = Talk:Main Page]]}, |
|||
{[[ |
|||
| wikipedia = Category:Somecat1 |
|||
| page = Wikipedia:Cascade-protected items]]}, |
|||
{[[ |
|||
| wikipedia = Category:Somecat1 |
|||
| page = Wikipedia:Cascade-protected items/]]}, |
|||
{[[ |
|||
| wikipedia = Category:Somecat1 |
|||
| page = Wikipedia:Cascade-protected items/Foo]]}, |
|||
{[[ |
|||
| wikipedia = Category:Somecat1 |
|||
| page = Wikipedia:Cascade-protected itemsFoo]]}, |
|||
{[[ |
|||
| talk = Category:Somecat1 |
|||
| page = Wikipedia talk:Cascade-protected items]]}, |
|||
{[[ |
|||
| user = Category:Somecat1 |
|||
| page = User:UBX]]}, |
|||
{[[ |
|||
| user = Category:Somecat1 |
|||
| page = User talk:UBX]]}, |
|||
{[[ |
|||
| user = Category:Somecat1 |
|||
| page = User:UBX/Sociology]]}, |
|||
{[[ |
|||
| user = Category:Somecat1 |
|||
| page = User:UBX/Userboxes]]}, |
|||
{[[ |
|||
| user = Category:Somecat1 |
|||
| page = User talk:UBX/Userboxes]]}, |
|||
{[[ |
|||
| wikipedia = Category:Somecat1 |
|||
| page = Wikipedia:Template messages]]}, |
|||
{[[ |
|||
| wikipedia = Category:Somecat1 |
|||
| page = Wikipedia:Template messages/]]}, |
|||
{[[ |
|||
| wikipedia = Category:Somecat1 |
|||
| page = Wikipedia:Template messagesFoo]]}, |
|||
{[[ |
|||
| wikipedia = Category:Somecat1 |
|||
| page = Wikipedia:Template messages/Cleanup]]}, |
|||
{[[ |
|||
| talk = Category:Somecat1 |
|||
| page = Talk:Jerusalem/Archive 2]]}, |
|||
{[[ |
|||
| talk = Category:Somecat1 |
|||
| page = Talk:Jerusalem/archive 2]]}, |
|||
{[[ |
|||
| talk = Category:Somecat1 |
|||
| page = Talk:Jerusalem]]}, |
|||
}) |
|||
end |
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_ubx_template_messages_basepage() |
|||
self:assertEquals(d.category, chmain{ |
|||
other = d.category, |
|||
page = 'Wikipedia:Template messages', |
|||
}) |
|||
end |
|||
function suite:test_blacklist_ubx_template_messages_slash() |
|||
self:assertEquals(d.category, chmain{ |
|||
other = d.category, |
|||
page = 'Wikipedia:Template messages/', |
|||
}) |
|||
end |
|||
function suite:test_blacklist_ubx_template_messages_not_subpage() |
|||
self:assertEquals(d.category, chmain{ |
|||
other = d.category, |
|||
page = 'Wikipedia:Template messagesFoo', |
|||
}) |
|||
end |
|||
function suite:test_blacklist_ubx_template_messages_subpage() |
|||
self:assertEquals(d.absent, chmain{ |
|||
other = d.category, |
|||
page = 'Wikipedia:Template messages/Cleanup', |
|||
}) |
|||
end |
|||
return suite |
return suite |
Revision as of 01:34, 8 July 2014
![]() | This is the test cases page for the module Module:Category handler. Results of the test cases. |
-- 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_ubx_template_messages_basepage()
self:assertEquals(d.category, chmain{
other = d.category,
page = 'Wikipedia:Template messages',
})
end
function suite:test_blacklist_ubx_template_messages_slash()
self:assertEquals(d.category, chmain{
other = d.category,
page = 'Wikipedia:Template messages/',
})
end
function suite:test_blacklist_ubx_template_messages_not_subpage()
self:assertEquals(d.category, chmain{
other = d.category,
page = 'Wikipedia:Template messagesFoo',
})
end
function suite:test_blacklist_ubx_template_messages_subpage()
self:assertEquals(d.absent, chmain{
other = d.category,
page = 'Wikipedia:Template messages/Cleanup',
})
end
return suite