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

From blackwiki
Jump to navigation Jump to search
blackwiki>Mr. Stradivarius
(add nocat and categories tests, plus a few more)
blackwiki>Mr. Stradivarius
(add subpage tests)
Line 7: Line 7:
 
-- Define table of defaults
 
-- Define table of defaults
 
local d = {}
 
local d = {}
 +
 +
-- Values
 
d.absent = nil
 
d.absent = nil
 
d.blank = ''
 
d.blank = ''
 +
d.negation = '¬'
 +
d.yes = 'yes'
 +
d.no = 'no'
 +
d.subpageOnly = 'only'
 +
d.subpageNo = 'no'
 +
 +
-- Categories
 
d.category = 'Category:Somecat'
 
d.category = 'Category:Somecat'
 
d.category1 = 'Category:Somecat1'
 
d.category1 = 'Category:Somecat1'
 
d.category2 = 'Category:Somecat2'
 
d.category2 = 'Category:Somecat2'
 +
 +
-- Pages
 
d.article = 'Somearticle'
 
d.article = 'Somearticle'
 
d.file = 'File:Example.png'
 
d.file = 'File:Example.png'
 
d.talk = 'Talk:Foo'
 
d.talk = 'Talk:Foo'
 
d.archive = 'User talk:Example/Archive 5'
 
d.archive = 'User talk:Example/Archive 5'
 +
d.subpage = 'User:Example/test'
 +
d.basepage = 'User:Example'
 +
 +
-- Params
 
d.archiveParam = 'talk'
 
d.archiveParam = 'talk'
d.yes = 'yes'
 
d.no = 'no'
 
d.random_text = 'asdfawefli'
 
  
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
Line 177: Line 189:
 
--------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
  
--[=[
+
function suite:test_category2_no()
        {[[
+
    self:assertEquals(d.absent, chmain{
| other = Somecat
+
other = d.category,
| category2 = no]]},
+
category2 = d.no
        {[[
+
})
| other = Somecat
+
end
| category2 = ]]},
+
 
        {[[
+
function suite:test_category2_blank()
| other = Somecat
+
    self:assertEquals(d.absent, chmain{
| category2 = ¬]]},
+
other = d.category,
        {[[
+
category2 = d.blank
| other = Somecat
+
})
| category2 = {{{category|¬}}}]]},
+
end
        {[[
+
 
| other = Somecat
+
function suite:test_category2_negation()
| page = User talk:Example/Archive 5
+
    self:assertEquals(d.category, chmain{
| category2 = yes]]},
+
other = d.category,
        {[[
+
category2 = d.negation
| main = Category:Somecat1
+
})
| other = Category:Somecat2
+
end
| subpage = no]]},
+
 
        {[[
+
function suite:test_category2_blacklist()
| main = Category:Somecat1
+
    self:assertEquals(d.category, chmain{
| other = Category:Somecat2
+
other = d.category,
| subpage = no
+
page = d.archive,
| page = User:Example]]},
+
categories = d.yes
        {[[
+
})
| main = Category:Somecat1
+
end
| other = Category:Somecat2
+
 
| subpage = no
+
--------------------------------------------------------------------------------
| page = User:Example/test]]},
+
-- Test subpage parameter
        {[[
+
--------------------------------------------------------------------------------
| main = Category:Somecat1
+
 
| other = Category:Somecat2
+
function suite:test_subpage_no_basepage()
| subpage = only]]},
+
    self:assertEquals(d.category, chmain{
        {[[
+
other = d.category,
| main = Category:Somecat1
+
page = d.basepage,
| other = Category:Somecat2
+
subpage = d.subpageNo
| subpage = only
+
})
| page = User:Example]]},
+
end
        {[[
+
 
| main = Category:Somecat1
+
function suite:test_subpage_no_subpage()
| other = Category:Somecat2
+
    self:assertEquals(d.absent, chmain{
| subpage = only
+
other = d.category,
| page = User:Example/test]]},
+
page = d.subpage,
        {[[
+
subpage = d.subpageNo
| main = Category:Somecat1
+
})
| other = Category:Somecat2
+
end
| subpage = no
+
 
| page = User:Example]]},
+
function suite:test_subpage_only_basepage()
        {[[
+
    self:assertEquals(d.absent, chmain{
| main = Category:Somecat1
+
other = d.category,
| other = Category:Somecat2
+
page = d.basepage,
| subpage = no
+
subpage = d.subpageOnly
| page = User:Example/test]]},
+
})
        {[[
+
end
| main = Category:Somecat1
+
 
| other = Category:Somecat2
+
function suite:test_subpage_only_subpage()
| subpage = only
+
    self:assertEquals(d.category, chmain{
| page = User:Example/test]]},
+
other = d.category,
    })
+
page = d.subpage,
 +
subpage = d.subpageOnly
 +
})
 
end
 
end
  
 +
--[=[
 
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', '}}', {

Revision as of 01:12, 8 July 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 = {}

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

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