Difference between revisions of "Module:Category handler/testcases"
Jump to navigation
Jump to search
blackwiki>Mr. Stradivarius (start rewriting the tests) |
blackwiki>Mr. Stradivarius (add nocat and categories tests, plus a few more) |
||
| Line 12: | Line 12: | ||
d.category1 = 'Category:Somecat1' | d.category1 = 'Category:Somecat1' | ||
d.category2 = 'Category:Somecat2' | d.category2 = 'Category:Somecat2' | ||
| − | |||
| − | |||
d.article = 'Somearticle' | d.article = 'Somearticle' | ||
d.file = 'File:Example.png' | d.file = 'File:Example.png' | ||
| + | d.talk = 'Talk:Foo' | ||
| + | d.archive = 'User talk:Example/Archive 5' | ||
| + | d.archiveParam = 'talk' | ||
d.yes = 'yes' | d.yes = 'yes' | ||
| + | d.no = 'no' | ||
| + | d.random_text = 'asdfawefli' | ||
-------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ||
| Line 41: | Line 44: | ||
function suite:test_default_file() | function suite:test_default_file() | ||
self:assertEquals(d.category, chmain{d.category, page = d.file}) | self:assertEquals(d.category, chmain{d.category, page = d.file}) | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
end | end | ||
| Line 87: | Line 78: | ||
}) | }) | ||
end | 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 | ||
| + | -------------------------------------------------------------------------------- | ||
--[=[ | --[=[ | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
{[[ | {[[ | ||
| other = Somecat | | other = Somecat | ||
| Line 179: | Line 242: | ||
function p:test_blacklist() | function p:test_blacklist() | ||
self:preprocess_equals_preprocess_many('{{#invoke:Category handler|main', '}}', '{{category handler', '}}', { | self:preprocess_equals_preprocess_many('{{#invoke:Category handler|main', '}}', '{{category handler', '}}', { | ||
| + | {[[ | ||
| + | | other = Somecat | ||
| + | | page = User talk:Example/Archive 5]]}, | ||
{[[ | {[[ | ||
| main = Category:Somecat1 | | main = Category:Somecat1 | ||
Revision as of 08:57, 10 April 2014
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 = {}
d.absent = nil
d.blank = ''
d.category = 'Category:Somecat'
d.category1 = 'Category:Somecat1'
d.category2 = 'Category:Somecat2'
d.article = 'Somearticle'
d.file = 'File:Example.png'
d.talk = 'Talk:Foo'
d.archive = 'User talk:Example/Archive 5'
d.archiveParam = 'talk'
d.yes = 'yes'
d.no = 'no'
d.random_text = 'asdfawefli'
--------------------------------------------------------------------------------
-- 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
--------------------------------------------------------------------------------
--[=[
{[[
| other = Somecat
| category2 = no]]},
{[[
| other = Somecat
| category2 = ]]},
{[[
| other = Somecat
| category2 = ¬]]},
{[[
| other = Somecat
| category2 = {{{category|¬}}}]]},
{[[
| other = Somecat
| page = User talk:Example/Archive 5
| category2 = yes]]},
{[[
| main = Category:Somecat1
| other = Category:Somecat2
| subpage = no]]},
{[[
| main = Category:Somecat1
| other = Category:Somecat2
| subpage = no
| page = User:Example]]},
{[[
| main = Category:Somecat1
| other = Category:Somecat2
| subpage = no
| page = User:Example/test]]},
{[[
| main = Category:Somecat1
| other = Category:Somecat2
| subpage = only]]},
{[[
| main = Category:Somecat1
| other = Category:Somecat2
| subpage = only
| page = User:Example]]},
{[[
| main = Category:Somecat1
| other = Category:Somecat2
| subpage = only
| page = User:Example/test]]},
{[[
| main = Category:Somecat1
| other = Category:Somecat2
| subpage = no
| page = User:Example]]},
{[[
| main = Category:Somecat1
| other = Category:Somecat2
| subpage = no
| page = User:Example/test]]},
{[[
| main = Category:Somecat1
| other = Category:Somecat2
| subpage = only
| page = User:Example/test]]},
})
end
function p:test_blacklist()
self:preprocess_equals_preprocess_many('{{#invoke:Category handler|main', '}}', '{{category handler', '}}', {
{[[
| other = Somecat
| 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
--]=]
return suite