Difference between revisions of "Module:Category handler/testcases"

From blackwiki
Jump to navigation Jump to search
blackwiki>Mr. Stradivarius
(add a couple more)
blackwiki>Mr. Stradivarius
(start rewriting the tests)
Line 1: Line 1:
 
-- Unit tests for [[Module:Category handler]]. Click talk page to run tests.
 
-- Unit tests for [[Module:Category handler]]. Click talk page to run tests.
local p = require('Module:UnitTests')
+
local m_category_handler = require('Module:Category handler/sandbox')
 +
local chmain = m_category_handler._main
 +
local ScribuntoUnit = require('Module:ScribuntoUnit')
 +
local suite = ScribuntoUnit:new()
  
function p:test_template_testcases_page()
+
-- Define table of defaults
    self:preprocess_equals_preprocess_many('{{#invoke:Category handler|main', '}}', '{{category handler', '}}', {
+
local d = {}
        {[[]]},
+
d.absent = nil
        {[[
+
d.blank = ''
| Somecat]]},
+
d.category = 'Category:Somecat'
        {[[
+
d.category1 = 'Category:Somecat1'
| Somecat
+
d.category2 = 'Category:Somecat2'
| page = Somearticle]]},
+
d.category3 = 'Category:Somecat3'
        {[[
+
d.category4 = 'Category:Somecat4'
| Somecat
+
d.article = 'Somearticle'
| page = File:Example/test]]},
+
d.file = 'File:Example.png'
        {[[
+
d.yes = 'yes'
| Somecat
+
 
| page = File:Example/test
+
--------------------------------------------------------------------------------
| nocat = ]]},
+
-- Test nil
        {[[
+
--------------------------------------------------------------------------------
| Somecat
+
 
| page = File:Example/test
+
function suite:test_nil()
| nocat = true]]},
+
    self:assertEquals(d.absent, chmain{nil})
        {[[
+
end
| main = Category:Somecat1 Category:Somecat2
+
 
| 1 = Category:Somecat3  <!--For help, user and template space-->
+
--------------------------------------------------------------------------------
| help = 1
+
-- Test defaults
| user = 1
+
--------------------------------------------------------------------------------
| template = 1
+
 
| talk =    <!--No categories on talk pages-->
+
function suite:test_default_current_page()
| other = Category:Somecat4  <!--For all other namespaces-->
+
-- Will test either module or module talk space, neither of which are categorised by default.
| nocat = {{{nocat|}}}  <!--So "nocat=true/false" works-->]]},
+
    self:assertEquals(d.absent, chmain{d.category})
        {[[
+
end
| main = Category:Somecat1 Category:Somecat2
+
 
| 3 = Category:Somecat3  <!--For help, user and template space-->
+
function suite:test_default_main()
| help = 3
+
    self:assertEquals(d.category, chmain{d.category, page = d.article})
| user = 3
+
end
| template = 3
+
 
| talk =     <!--No categories on talk pages-->
+
function suite:test_default_file()
| other = Category:Somecat4  <!--For all other namespaces-->
+
    self:assertEquals(d.category, chmain{d.category, page = d.file})
| nocat = {{{nocat|}}}  <!--So "nocat=true/false" works-->]]},
+
end
 +
 
 +
function suite:test_default_file_nocat_true()
 +
    self:assertEquals(d.absent, chmain{d.category, page = d.file, nocat = true})
 +
end
 +
 
 +
function suite:test_default_file_nocat_blank()
 +
    self:assertEquals(d.absent, chmain{d.category, page = d.file, nocat = ''})
 +
end
 +
 
 +
function suite:test_default_file_nocat_yes()
 +
    self:assertEquals(d.absent, chmain{d.category, page = d.file, nocat = d.yes})
 +
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
 +
 
 +
--[=[
 
         {[[
 
         {[[
 
| main = Category:Somecat1 Category:Somecat2
 
| main = Category:Somecat1 Category:Somecat2
Line 188: Line 238:
 
     })
 
     })
 
end
 
end
return p
+
 
 +
--]=]
 +
 
 +
return suite

Revision as of 07:28, 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.category3 = 'Category:Somecat3'
d.category4 = 'Category:Somecat4'
d.article = 'Somearticle'
d.file = 'File:Example.png'
d.yes = 'yes'

--------------------------------------------------------------------------------
-- 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

function suite:test_default_file_nocat_true()
    self:assertEquals(d.absent, chmain{d.category, page = d.file, nocat = true})
end

function suite:test_default_file_nocat_blank()
    self:assertEquals(d.absent, chmain{d.category, page = d.file, nocat = ''})
end

function suite:test_default_file_nocat_yes()
    self:assertEquals(d.absent, chmain{d.category, page = d.file, nocat = d.yes})
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

--[=[
        {[[
| main = Category:Somecat1 Category:Somecat2
| 3 = Category:Somecat3   <!--For help, user and template space-->
| help = 3
| user = 3
| template = 3
| talk =     <!--No categories on talk pages-->
| other = Category:Somecat4   <!--For all other namespaces-->
| nocat = {{{nocat|}}}   <!--So "nocat=true/false" works-->
| page = Somearticle]]},
        {[[
| other = Somecat]]},
        {[[
| other = Somecat
| page = User talk:Example/Archive 5]]},
        {[[
| other = Somecat
| page = User talk:Example/Archive 5
| nocat = false]]},
        {[[
| other = Somecat
| categories = no]]},
        {[[
| other = Somecat
| page = User talk:Example/Archive 5
| categories = yes]]},
        {[[
| 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', '}}', {
        {[[
| 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