Module:Protection banner/config/testcases

This is an old revision of this page, as edited by Mr. Stradivarius (talk | contribs) at 01:09, 5 June 2014 (fix module name). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
-- Unit tests for [[Module:Protection banner]]. Click talk page to run tests. 

local pp = require('Module:Protection banner')
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()

--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------

function suite.escapePattern(s)
	-- Escapes the magic characters ()%.[]*+-?^$ for use in Lua patterns.
	return s:gsub('([%(%)%.%[%]%*%+%-%?%^%$%%])', '%%%1')
end

function suite:assertCategoryEquals(expected, protType, protLevel, namespace, reason, expiry)
	local actual = pp.getCategoryName(nil, protType, protLevel, namespace, reason, expiry)
	self:assertEquals(expected, actual)
end

--------------------------------------------------------------------------------
-- Default values
--------------------------------------------------------------------------------

local d = {}
d.edit = 'edit'
d.move = 'move'
d.pc = 'pc'
d.semi = 'autoconfirmed'
d.template = 'template'
d.full = 'sysop'
d.dispute = 'dispute'
d.pc1 = 'autoconfirmed'
d.pc2 = 'reviewer'
d.vand = 'vandalism'
d.blp = 'blp'
d.sock = 'sock'
d.office = 'office'
d.temp = 'temp'
d.indef = 'indef'

--------------------------------------------------------------------------------
-- Category name tests
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
-- Categories: edit-semi-dispute
--------------------------------------------------------------------------------

function suite:testCategory_edit_semi_main_dispute_all()
	self:assertCategoryEquals('Wikipedia pages semi-protected due to dispute', d.edit, d.semi, 0, d.dispute, nil)
end

function suite:testCategory_edit_semi_talk_dispute_all()
	self:assertCategoryEquals('Wikipedia pages semi-protected due to dispute', d.edit, d.semi, 1, d.dispute, nil)
end

function suite:testCategory_edit_semi_file_dispute_all()
	self:assertCategoryEquals('Wikipedia pages semi-protected due to dispute', d.edit, d.semi, 6, d.dispute, nil)
end

function suite:testCategory_edit_semi_template_dispute_all()
	self:assertCategoryEquals('Wikipedia pages semi-protected due to dispute', d.edit, d.semi, 10, d.dispute, nil)
end

function suite:testCategory_edit_semi_main_dispute_temp()
	self:assertCategoryEquals('Wikipedia pages semi-protected due to dispute', d.edit, d.semi, 0, d.dispute, d.temp)
end

function suite:testCategory_edit_semi_talk_dispute_temp()
	self:assertCategoryEquals('Wikipedia pages semi-protected due to dispute', d.edit, d.semi, 1, d.dispute, d.temp)
end

function suite:testCategory_edit_semi_file_dispute_temp()
	self:assertCategoryEquals('Wikipedia pages semi-protected due to dispute', d.edit, d.semi, 6, d.dispute, d.temp)
end

function suite:testCategory_edit_semi_template_dispute_temp()
	self:assertCategoryEquals('Wikipedia pages semi-protected due to dispute', d.edit, d.semi, 10, d.dispute, d.temp)
end

--------------------------------------------------------------------------------
-- Categories: edit-full-dispute
--------------------------------------------------------------------------------

function suite:testCategory_edit_full_main_dispute_all()
	self:assertCategoryEquals('Wikipedia pages protected due to dispute', d.edit, d.full, 0, d.dispute, nil)
end

function suite:testCategory_edit_full_talk_dispute_all()
	self:assertCategoryEquals('Wikipedia pages protected due to dispute', d.edit, d.full, 1, d.dispute, nil)
end

function suite:testCategory_edit_full_file_dispute_all()
	self:assertCategoryEquals('Wikipedia pages protected due to dispute', d.edit, d.full, 6, d.dispute, nil)
end

function suite:testCategory_edit_full_template_dispute_all()
	self:assertCategoryEquals('Wikipedia pages protected due to dispute', d.edit, d.full, 10, d.dispute, nil)
end

function suite:testCategory_edit_full_main_dispute_temp()
	self:assertCategoryEquals('Wikipedia pages protected due to dispute', d.edit, d.full, 0, d.dispute, d.temp)
end

function suite:testCategory_edit_full_talk_dispute_temp()
	self:assertCategoryEquals('Wikipedia pages protected due to dispute', d.edit, d.full, 1, d.dispute, d.temp)
end

function suite:testCategory_edit_full_file_dispute_temp()
	self:assertCategoryEquals('Wikipedia pages protected due to dispute', d.edit, d.full, 6, d.dispute, d.temp)
end

function suite:testCategory_edit_full_template_dispute_temp()
	self:assertCategoryEquals('Wikipedia pages protected due to dispute', d.edit, d.full, 10, d.dispute, d.temp)
end

--------------------------------------------------------------------------------
-- Categories: move-full-dispute
--------------------------------------------------------------------------------

function suite:testCategory_move_full_template_dispute_all()
	self:assertCategoryEquals('Wikipedia pages move-protected due to dispute', d.move, d.full, 0, d.dispute, nil)
end

function suite:testCategory_move_full_talk_dispute_all()
	self:assertCategoryEquals('Wikipedia pages move-protected due to dispute', d.move, d.full, 1, d.dispute, nil)
end

function suite:testCategory_move_full_file_dispute_all()
	self:assertCategoryEquals('Wikipedia pages move-protected due to dispute', d.move, d.full, 6, d.dispute, nil)
end

function suite:testCategory_move_full_template_dispute_all()
	self:assertCategoryEquals('Wikipedia pages move-protected due to dispute', d.move, d.full, 10, d.dispute, nil)
end

function suite:testCategory_move_full_main_dispute_temp()
	self:assertCategoryEquals('Wikipedia pages move-protected due to dispute', d.move, d.full, 0, d.dispute, d.temp)
end

function suite:testCategory_move_full_talk_dispute_temp()
	self:assertCategoryEquals('Wikipedia pages move-protected due to dispute', d.move, d.full, 1, d.dispute, d.temp)
end

function suite:testCategory_move_full_file_dispute_temp()
	self:assertCategoryEquals('Wikipedia pages move-protected due to dispute', d.move, d.full, 6, d.dispute, d.temp)
end

function suite:testCategory_move_full_template_dispute_temp()
	self:assertCategoryEquals('Wikipedia pages move-protected due to dispute', d.move, d.full, 10, d.dispute, d.temp)
end

--------------------------------------------------------------------------------
-- Categories: edit-semi-vandalism
--------------------------------------------------------------------------------

function suite:testCategory_edit_semi_user_vandalism_all()
	self:assertCategoryEquals('Wikipedia semi-protected user and user talk pages', d.edit, d.semi, 2, d.vand, nil)
end

function suite:testCategory_edit_semi_usertalk_vandalism_all()
	self:assertCategoryEquals('Wikipedia semi-protected user and user talk pages', d.edit, d.semi, 3, d.vand, nil)
end

function suite:testCategory_edit_semi_file_vandalism_all()
	self:assertCategoryEquals('Semi-protected images', d.edit, d.semi, 6, d.vand, nil)
end

function suite:testCategory_edit_semi_wikipedia_vandalism_all()
	self:assertCategoryEquals('Semi-protected project pages', d.edit, d.semi, 4, d.vand, nil)
end

function suite:testCategory_edit_semi_help_vandalism_all()
	self:assertCategoryEquals('Semi-protected project pages', d.edit, d.semi, 12, d.vand, nil)
end

function suite:testCategory_edit_semi_portal_vandalism_all()
	self:assertCategoryEquals('Semi-protected portals', d.edit, d.semi, 100, d.vand, nil)
end

function suite:testCategory_edit_semi_template_vandalism_all()
	self:assertCategoryEquals('Wikipedia semi-protected templates', d.edit, d.semi, 10, d.vand, nil)
end

function suite:testCategory_edit_semi_talk_vandalism_all()
	self:assertCategoryEquals('Semi-protected talk pages', d.edit, d.semi, 1, d.vand, nil)
end

function suite:testCategory_edit_semi_main_vandalism_all()
	self:assertCategoryEquals('Wikipedia pages semi-protected against vandalism', d.edit, d.semi, 0, d.vand, nil)
end

function suite:testCategory_edit_semi_user_vandalism_temp()
	self:assertCategoryEquals('Wikipedia semi-protected user and user talk pages', d.edit, d.semi, 2, d.vand, d.temp)
end

function suite:testCategory_edit_semi_usertalk_vandalism_temp()
	self:assertCategoryEquals('Wikipedia semi-protected user and user talk pages', d.edit, d.semi, 3, d.vand, d.temp)
end

function suite:testCategory_edit_semi_file_vandalism_temp()
	self:assertCategoryEquals('Semi-protected images', d.edit, d.semi, 6, d.vand, d.temp)
end

function suite:testCategory_edit_semi_wikipedia_vandalism_temp()
	self:assertCategoryEquals('Semi-protected project pages', d.edit, d.semi, 4, d.vand, d.temp)
end

function suite:testCategory_edit_semi_help_vandalism_temp()
	self:assertCategoryEquals('Semi-protected project pages', d.edit, d.semi, 12, d.vand, d.temp)
end

function suite:testCategory_edit_semi_portal_vandalism_temp()
	self:assertCategoryEquals('Semi-protected portals', d.edit, d.semi, 100, d.vand, d.temp)
end

function suite:testCategory_edit_semi_template_vandalism_temp()
	self:assertCategoryEquals('Wikipedia semi-protected templates', d.edit, d.semi, 10, d.vand, d.temp)
end

function suite:testCategory_edit_semi_talk_vandalism_temp()
	self:assertCategoryEquals('Semi-protected talk pages', d.edit, d.semi, 1, d.vand, d.temp)
end

function suite:testCategory_edit_semi_main_vandalism_temp()
	self:assertCategoryEquals('Wikipedia pages semi-protected against vandalism', d.edit, d.semi, 0, d.vand, d.temp)
end

--------------------------------------------------------------------------------
-- Categories: edit-full-vandalism
--------------------------------------------------------------------------------

function suite:testCategory_edit_full_user_vandalism_all()
	self:assertCategoryEquals('Wikipedia protected user and user talk pages', d.edit, d.full, 2, d.vand, nil)
end

function suite:testCategory_edit_full_usertalk_vandalism_all()
	self:assertCategoryEquals('Wikipedia protected user and user talk pages', d.edit, d.full, 3, d.vand, nil)
end

function suite:testCategory_edit_full_file_vandalism_all()
	self:assertCategoryEquals('Protected images', d.edit, d.full, 6, d.vand, nil)
end

function suite:testCategory_edit_full_wikipedia_vandalism_all()
	self:assertCategoryEquals('Protected project pages', d.edit, d.full, 4, d.vand, nil)
end

function suite:testCategory_edit_full_help_vandalism_all()
	self:assertCategoryEquals('Protected project pages', d.edit, d.full, 12, d.vand, nil)
end

function suite:testCategory_edit_full_portal_vandalism_all()
	self:assertCategoryEquals('Wikipedia pages protected against vandalism', d.edit, d.full, 100, d.vand, nil)
end

function suite:testCategory_edit_full_template_vandalism_all()
	self:assertCategoryEquals('Wikipedia protected templates', d.edit, d.full, 10, d.vand, nil)
end

function suite:testCategory_edit_full_talk_vandalism_all()
	self:assertCategoryEquals('Protected talk pages', d.edit, d.full, 1, d.vand, nil)
end

function suite:testCategory_edit_full_main_vandalism_all()
	self:assertCategoryEquals('Wikipedia pages protected against vandalism', d.edit, d.full, 0, d.vand, nil)
end

function suite:testCategory_edit_full_user_vandalism_temp()
	self:assertCategoryEquals('Wikipedia protected user and user talk pages', d.edit, d.full, 2, d.vand, d.temp)
end

function suite:testCategory_edit_full_usertalk_vandalism_temp()
	self:assertCategoryEquals('Wikipedia protected user and user talk pages', d.edit, d.full, 3, d.vand, d.temp)
end

function suite:testCategory_edit_full_file_vandalism_temp()
	self:assertCategoryEquals('Protected images', d.edit, d.full, 6, d.vand, d.temp)
end

function suite:testCategory_edit_full_wikipedia_vandalism_temp()
	self:assertCategoryEquals('Protected project pages', d.edit, d.full, 4, d.vand, d.temp)
end

function suite:testCategory_edit_full_help_vandalism_temp()
	self:assertCategoryEquals('Protected project pages', d.edit, d.full, 12, d.vand, d.temp)
end

function suite:testCategory_edit_full_portal_vandalism_temp()
	self:assertCategoryEquals('Wikipedia pages protected against vandalism', d.edit, d.full, 100, d.vand, d.temp)
end

function suite:testCategory_edit_full_template_vandalism_temp()
	self:assertCategoryEquals('Wikipedia protected templates', d.edit, d.full, 10, d.vand, d.temp)
end

function suite:testCategory_edit_full_talk_vandalism_temp()
	self:assertCategoryEquals('Protected talk pages', d.edit, d.full, 1, d.vand, d.temp)
end

function suite:testCategory_edit_full_main_vandalism_temp()
	self:assertCategoryEquals('Wikipedia pages protected against vandalism', d.edit, d.full, 0, d.vand, d.temp)
end

--------------------------------------------------------------------------------
-- Categories: move-full-vandalism
--------------------------------------------------------------------------------

function suite:testCategory_move_full_user_vandalism_all()
	self:assertCategoryEquals('Wikipedia move-protected user and user talk pages', d.move, d.full, 2, d.vand, nil)
end

function suite:testCategory_move_full_usertalk_vandalism_all()
	self:assertCategoryEquals('Wikipedia move-protected user and user talk pages', d.move, d.full, 3, d.vand, nil)
end

function suite:testCategory_move_full_file_vandalism_all()
	self:assertCategoryEquals('Wikipedia pages move-protected due to vandalism', d.move, d.full, 6, d.vand, nil)
end

function suite:testCategory_move_full_wikipedia_vandalism_all()
	self:assertCategoryEquals('Wikipedia move-protected project pages', d.move, d.full, 4, d.vand, nil)
end

function suite:testCategory_move_full_help_vandalism_all()
	self:assertCategoryEquals('Wikipedia move-protected project pages', d.move, d.full, 12, d.vand, nil)
end

function suite:testCategory_move_full_portal_vandalism_all()
	self:assertCategoryEquals('Wikipedia move-protected portals', d.move, d.full, 100, d.vand, nil)
end

function suite:testCategory_move_full_template_vandalism_all()
	self:assertCategoryEquals('Wikipedia move-protected templates', d.move, d.full, 10, d.vand, nil)
end

function suite:testCategory_move_full_talk_vandalism_all()
	self:assertCategoryEquals('Wikipedia move-protected talk pages', d.move, d.full, 1, d.vand, nil)
end

function suite:testCategory_move_full_main_vandalism_all()
	self:assertCategoryEquals('Wikipedia pages move-protected due to vandalism', d.move, d.full, 0, d.vand, nil)
end

function suite:testCategory_move_full_user_vandalism_temp()
	self:assertCategoryEquals('Wikipedia move-protected user and user talk pages', d.move, d.full, 2, d.vand, d.temp)
end

function suite:testCategory_move_full_usertalk_vandalism_temp()
	self:assertCategoryEquals('Wikipedia move-protected user and user talk pages', d.move, d.full, 3, d.vand, d.temp)
end

function suite:testCategory_move_full_file_vandalism_temp()
	self:assertCategoryEquals('Wikipedia pages move-protected due to vandalism', d.move, d.full, 6, d.vand, d.temp)
end

function suite:testCategory_move_full_wikipedia_vandalism_temp()
	self:assertCategoryEquals('Wikipedia move-protected project pages', d.move, d.full, 4, d.vand, d.temp)
end

function suite:testCategory_move_full_help_vandalism_temp()
	self:assertCategoryEquals('Wikipedia move-protected project pages', d.move, d.full, 12, d.vand, d.temp)
end

function suite:testCategory_move_full_portal_vandalism_temp()
	self:assertCategoryEquals('Wikipedia move-protected portals', d.move, d.full, 100, d.vand, d.temp)
end

function suite:testCategory_move_full_template_vandalism_temp()
	self:assertCategoryEquals('Wikipedia move-protected templates', d.move, d.full, 10, d.vand, d.temp)
end

function suite:testCategory_move_full_talk_vandalism_temp()
	self:assertCategoryEquals('Wikipedia move-protected talk pages', d.move, d.full, 1, d.vand, d.temp)
end

function suite:testCategory_move_full_main_vandalism_temp()
	self:assertCategoryEquals('Wikipedia pages move-protected due to vandalism', d.move, d.full, 0, d.vand, d.temp)
end

--------------------------------------------------------------------------------
-- Categories: template
--------------------------------------------------------------------------------

function suite:testCategory_edit_semi_template_all_all()
	self:assertCategoryEquals('Wikipedia semi-protected templates', d.edit, d.semi, 10, d.indef, nil)
end

function suite:testCategory_edit_semi_template_all_temp()
	self:assertCategoryEquals('Wikipedia semi-protected templates', d.edit, d.semi, 10, nil, d.temp)
end

function suite:testCategory_edit_full_template_all_all()
	self:assertCategoryEquals('Wikipedia protected templates', d.edit, d.full, 10, nil, nil)
end

function suite:testCategory_edit_full_template_all_temp()
	self:assertCategoryEquals('Wikipedia protected templates', d.edit, d.full, 10, nil, d.temp)
end

function suite:testCategory_edit_template_template_all_all()
	self:assertCategoryEquals('Wikipedia protected templates', d.edit, d.template, 10, nil, nil)
end

function suite:testCategory_edit_template_template_all_temp()
	self:assertCategoryEquals('Wikipedia protected templates', d.edit, d.template, 10, nil, d.temp)
end

function suite:testCategory_move_full_template_all_all()
	self:assertCategoryEquals('Wikipedia move-protected templates', d.move, d.full, 10, nil, nil)
end

function suite:testCategory_edit_full_template_all_temp()
	self:assertCategoryEquals('Wikipedia move-protected templates', d.move, d.full, 10, nil, d.temp)
end

--------------------------------------------------------------------------------
-- Categories: usertalk
--------------------------------------------------------------------------------

function suite:testCategory_edit_semi_user_all_all()
	self:assertCategoryEquals('Wikipedia semi-protected user and user talk pages', d.edit, d.semi, 2, nil, nil)
end

function suite:testCategory_edit_semi_usertalk_all_all()
	self:assertCategoryEquals('Wikipedia semi-protected user and user talk pages', d.edit, d.semi, 3, nil, nil)
end

function suite:testCategory_edit_full_user_all_all()
	self:assertCategoryEquals('Wikipedia protected user and user talk pages', d.edit, d.full, 2, nil, nil)
end

function suite:testCategory_edit_full_usertalk_all_all()
	self:assertCategoryEquals('Wikipedia protected user and user talk pages', d.edit, d.full, 3, nil, nil)
end

function suite:testCategory_edit_semi_user_all_temp()
	self:assertCategoryEquals('Wikipedia semi-protected user and user talk pages', d.edit, d.semi, 2, nil, d.temp)
end

function suite:testCategory_edit_semi_usertalk_all_temp()
	self:assertCategoryEquals('Wikipedia semi-protected user and user talk pages', d.edit, d.semi, 3, nil, d.temp)
end

function suite:testCategory_edit_full_user_all_temp()
	self:assertCategoryEquals('Wikipedia protected user and user talk pages', d.edit, d.full, 2, nil, d.temp)
end

function suite:testCategory_edit_full_usertalk_all_temp()
	self:assertCategoryEquals('Wikipedia protected user and user talk pages', d.edit, d.full, 3, nil, d.temp)
end

--------------------------------------------------------------------------------
-- Categories: sock
--------------------------------------------------------------------------------

function suite:testCategory_edit_semi_main_sock_all()
	self:assertCategoryEquals('Wikipedia pages semi-protected from banned users', d.edit, d.semi, 0, d.sock, nil)
end

function suite:testCategory_edit_semi_talk_sock_all()
	self:assertCategoryEquals('Wikipedia pages semi-protected from banned users', d.edit, d.semi, 1, d.sock, nil)
end

function suite:testCategory_edit_semi_file_sock_all()
	self:assertCategoryEquals('Wikipedia pages semi-protected from banned users', d.edit, d.semi, 6, d.sock, nil)
end

function suite:testCategory_edit_semi_template_sock_all()
	self:assertCategoryEquals('Wikipedia pages semi-protected from banned users', d.edit, d.semi, 10, d.sock, nil)
end

function suite:testCategory_edit_semi_main_sock_temp()
	self:assertCategoryEquals('Wikipedia pages semi-protected from banned users', d.edit, d.semi, 0, d.sock, d.temp)
end

function suite:testCategory_edit_semi_talk_sock_temp()
	self:assertCategoryEquals('Wikipedia pages semi-protected from banned users', d.edit, d.semi, 1, d.sock, d.temp)
end

function suite:testCategory_edit_semi_file_sock_temp()
	self:assertCategoryEquals('Wikipedia pages semi-protected from banned users', d.edit, d.semi, 6, d.sock, d.temp)
end

function suite:testCategory_edit_semi_template_sock_temp()
	self:assertCategoryEquals('Wikipedia pages semi-protected from banned users', d.edit, d.semi, 10, d.sock, d.temp)
end

function suite:testCategory_edit_full_main_sock_all()
	self:assertCategoryEquals('Wikipedia pages protected from banned users', d.edit, d.full, 0, d.sock, nil)
end

function suite:testCategory_edit_full_talk_sock_all()
	self:assertCategoryEquals('Wikipedia pages protected from banned users', d.edit, d.full, 1, d.sock, nil)
end

function suite:testCategory_edit_full_file_sock_all()
	self:assertCategoryEquals('Wikipedia pages protected from banned users', d.edit, d.full, 6, d.sock, nil)
end

function suite:testCategory_edit_full_template_sock_all()
	self:assertCategoryEquals('Wikipedia pages protected from banned users', d.edit, d.full, 10, d.sock, nil)
end

function suite:testCategory_edit_full_main_sock_temp()
	self:assertCategoryEquals('Wikipedia pages protected from banned users', d.edit, d.full, 0, d.sock, d.temp)
end

function suite:testCategory_edit_full_talk_sock_temp()
	self:assertCategoryEquals('Wikipedia pages protected from banned users', d.edit, d.full, 1, d.sock, d.temp)
end

function suite:testCategory_edit_full_file_sock_temp()
	self:assertCategoryEquals('Wikipedia pages protected from banned users', d.edit, d.full, 6, d.sock, d.temp)
end

function suite:testCategory_edit_full_template_sock_temp()
	self:assertCategoryEquals('Wikipedia pages protected from banned users', d.edit, d.full, 10, d.sock, d.temp)
end

--------------------------------------------------------------------------------
-- Categories: blp
--------------------------------------------------------------------------------

function suite:testCategory_edit_semi_main_blp_indef()
	self:assertCategoryEquals('Wikipedia indefinitely semi-protected biographies of living people', d.edit, d.semi, 0, d.blp, d.indef)
end

function suite:testCategory_edit_semi_talk_blp_indef()
	self:assertCategoryEquals('Wikipedia indefinitely semi-protected biographies of living people', d.edit, d.semi, 1, d.blp, d.indef)
end

function suite:testCategory_edit_semi_file_blp_indef()
	self:assertCategoryEquals('Wikipedia indefinitely semi-protected biographies of living people', d.edit, d.semi, 6, d.blp, d.indef)
end

function suite:testCategory_edit_semi_template_blp_indef()
	self:assertCategoryEquals('Wikipedia indefinitely semi-protected biographies of living people', d.edit, d.semi, 10, d.blp, d.indef)
end

function suite:testCategory_edit_semi_main_blp_all()
	self:assertCategoryEquals('Wikipedia indefinitely semi-protected biographies of living people', d.edit, d.semi, 0, d.blp, nil)
end

function suite:testCategory_edit_semi_talk_blp_all()
	self:assertCategoryEquals('Wikipedia indefinitely semi-protected biographies of living people', d.edit, d.semi, 1, d.blp, nil)
end

function suite:testCategory_edit_semi_file_blp_all()
	self:assertCategoryEquals('Wikipedia indefinitely semi-protected biographies of living people', d.edit, d.semi, 6, d.blp, nil)
end

function suite:testCategory_edit_semi_template_blp_all()
	self:assertCategoryEquals('Wikipedia indefinitely semi-protected biographies of living people', d.edit, d.semi, 10, d.blp, nil)
end

function suite:testCategory_edit_semi_main_blp_temp()
	self:assertCategoryEquals('Wikipedia temporarily semi-protected biographies of living people', d.edit, d.semi, 0, d.blp, d.temp)
end

function suite:testCategory_edit_semi_talk_blp_temp()
	self:assertCategoryEquals('Wikipedia temporarily semi-protected biographies of living people', d.edit, d.semi, 1, d.blp, d.temp)
end

function suite:testCategory_edit_semi_file_blp_temp()
	self:assertCategoryEquals('Wikipedia temporarily semi-protected biographies of living people', d.edit, d.semi, 6, d.blp, d.temp)
end

function suite:testCategory_edit_semi_template_blp_temp()
	self:assertCategoryEquals('Wikipedia temporarily semi-protected biographies of living people', d.edit, d.semi, 10, d.blp, d.temp)
end

function suite:testCategory_edit_full_main_blp_indef()
	self:assertCategoryEquals('Wikipedia indefinitely protected biographies of living people', d.edit, d.full, 0, d.blp, d.indef)
end

function suite:testCategory_edit_full_talk_blp_indef()
	self:assertCategoryEquals('Wikipedia indefinitely protected biographies of living people', d.edit, d.full, 1, d.blp, d.indef)
end

function suite:testCategory_edit_full_file_blp_indef()
	self:assertCategoryEquals('Wikipedia indefinitely protected biographies of living people', d.edit, d.full, 6, d.blp, d.indef)
end

function suite:testCategory_edit_full_template_blp_indef()
	self:assertCategoryEquals('Wikipedia indefinitely protected biographies of living people', d.edit, d.full, 10, d.blp, d.indef)
end

function suite:testCategory_edit_full_main_blp_all()
	self:assertCategoryEquals('Wikipedia indefinitely protected biographies of living people', d.edit, d.full, 0, d.blp, nil)
end

function suite:testCategory_edit_full_talk_blp_all()
	self:assertCategoryEquals('Wikipedia indefinitely protected biographies of living people', d.edit, d.full, 1, d.blp, nil)
end

function suite:testCategory_edit_full_file_blp_all()
	self:assertCategoryEquals('Wikipedia indefinitely protected biographies of living people', d.edit, d.full, 6, d.blp, nil)
end

function suite:testCategory_edit_full_template_blp_all()
	self:assertCategoryEquals('Wikipedia indefinitely protected biographies of living people', d.edit, d.full, 10, d.blp, nil)
end

function suite:testCategory_edit_full_main_blp_temp()
	self:assertCategoryEquals('Wikipedia temporarily protected biographies of living people', d.edit, d.full, 0, d.blp, d.temp)
end

function suite:testCategory_edit_full_talk_blp_temp()
	self:assertCategoryEquals('Wikipedia temporarily protected biographies of living people', d.edit, d.full, 1, d.blp, d.temp)
end

function suite:testCategory_edit_full_file_blp_temp()
	self:assertCategoryEquals('Wikipedia temporarily protected biographies of living people', d.edit, d.full, 6, d.blp, d.temp)
end

function suite:testCategory_edit_full_template_blp_temp()
	self:assertCategoryEquals('Wikipedia temporarily protected biographies of living people', d.edit, d.full, 10, d.blp, d.temp)
end

--------------------------------------------------------------------------------
-- Categories: semi indef
--------------------------------------------------------------------------------

function suite:testCategory_edit_semi_user_all_indef()
	self:assertCategoryEquals('Wikipedia semi-protected user and user talk pages', d.edit, d.semi, 2, nil, d.indef)
end

function suite:testCategory_edit_semi_usertalk_all_indef()
	self:assertCategoryEquals('Wikipedia semi-protected user and user talk pages', d.edit, d.semi, 3, nil, d.indef)
end

function suite:testCategory_edit_semi_file_all_indef()
	self:assertCategoryEquals('Semi-protected images', d.edit, d.semi, 6, nil, d.indef)
end

function suite:testCategory_edit_semi_wikipedia_all_indef()
	self:assertCategoryEquals('Semi-protected project pages', d.edit, d.semi, 4, nil, d.indef)
end

function suite:testCategory_edit_semi_help_all_indef()
	self:assertCategoryEquals('Semi-protected project pages', d.edit, d.semi, 12, nil, d.indef)
end

function suite:testCategory_edit_semi_portal_all_indef()
	self:assertCategoryEquals('Semi-protected portals', d.edit, d.semi, 100, nil, d.indef)
end

function suite:testCategory_edit_semi_template_all_indef()
	self:assertCategoryEquals('Wikipedia semi-protected templates', d.edit, d.semi, 10, nil, d.indef)
end

function suite:testCategory_edit_semi_talk_all_indef()
	self:assertCategoryEquals('Semi-protected talk pages', d.edit, d.semi, 1, nil, d.indef)
end

function suite:testCategory_edit_semi_main_all_indef()
	self:assertCategoryEquals('Wikipedia indefinitely semi-protected pages', d.edit, d.semi, 0, nil, d.indef)
end

--------------------------------------------------------------------------------
-- Categories: move indef
--------------------------------------------------------------------------------

function suite:testCategory_move_full_user_all_indef()
	self:assertCategoryEquals('Wikipedia move-protected user and user talk pages', d.move, d.full, 2, nil, d.indef)
end

function suite:testCategory_move_full_usertalk_all_indef()
	self:assertCategoryEquals('Wikipedia move-protected user and user talk pages', d.move, d.full, 3, nil, d.indef)
end

function suite:testCategory_move_full_file_all_indef()
	self:assertCategoryEquals('Wikipedia indefinitely move-protected pages', d.move, d.full, 6, nil, d.indef)
end

function suite:testCategory_move_full_wikipedia_all_indef()
	self:assertCategoryEquals('Wikipedia move-protected project pages', d.move, d.full, 4, nil, d.indef)
end

function suite:testCategory_move_full_help_all_indef()
	self:assertCategoryEquals('Wikipedia move-protected project pages', d.move, d.full, 12, nil, d.indef)
end

function suite:testCategory_move_full_portal_all_indef()
	self:assertCategoryEquals('Wikipedia move-protected portals', d.move, d.full, 100, nil, d.indef)
end

function suite:testCategory_move_full_template_all_indef()
	self:assertCategoryEquals('Wikipedia move-protected templates', d.move, d.full, 10, nil, d.indef)
end

function suite:testCategory_move_full_talk_all_indef()
	self:assertCategoryEquals('Wikipedia move-protected talk pages', d.move, d.full, 1, nil, d.indef)
end

function suite:testCategory_move_full_main_all_indef()
	self:assertCategoryEquals('Wikipedia indefinitely move-protected pages', d.move, d.full, 0, nil, d.indef)
end

--------------------------------------------------------------------------------
-- Categories: general protection
--------------------------------------------------------------------------------

function suite:testCategory_edit_semi_user_all_all()
	self:assertCategoryEquals('Wikipedia semi-protected user and user talk pages', d.edit, d.semi, 2, nil, nil)
end

function suite:testCategory_edit_semi_usertalk_all_all()
	self:assertCategoryEquals('Wikipedia semi-protected user and user talk pages', d.edit, d.semi, 3, nil, nil)
end

function suite:testCategory_edit_semi_file_all_all()
	self:assertCategoryEquals('Semi-protected images', d.edit, d.semi, 6, nil, nil)
end

function suite:testCategory_edit_semi_wikipedia_all_all()
	self:assertCategoryEquals('Semi-protected project pages', d.edit, d.semi, 4, nil, nil)
end

function suite:testCategory_edit_semi_help_all_all()
	self:assertCategoryEquals('Semi-protected project pages', d.edit, d.semi, 12, nil, nil)
end

function suite:testCategory_edit_semi_portal_all_all()
	self:assertCategoryEquals('Semi-protected portals', d.edit, d.semi, 100, nil, nil)
end

function suite:testCategory_edit_semi_template_all_all()
	self:assertCategoryEquals('Wikipedia semi-protected templates', d.edit, d.semi, 10, nil, nil)
end

function suite:testCategory_edit_semi_category_all_all()
	self:assertCategoryEquals('Wikipedia semi-protected categories', d.edit, d.semi, 14, nil, nil)
end

function suite:testCategory_edit_semi_talk_all_all()
	self:assertCategoryEquals('Semi-protected talk pages', d.edit, d.semi, 1, nil, nil)
end

function suite:testCategory_edit_semi_main_all_all()
	self:assertCategoryEquals('Wikipedia semi-protected pages', d.edit, d.semi, 0, nil, nil)
end

function suite:testCategory_edit_full_user_all_all()
	self:assertCategoryEquals('Wikipedia protected user and user talk pages', d.edit, d.full, 2, nil, nil)
end

function suite:testCategory_edit_full_usertalk_all_all()
	self:assertCategoryEquals('Wikipedia protected user and user talk pages', d.edit, d.full, 3, nil, nil)
end

function suite:testCategory_edit_full_file_all_all()
	self:assertCategoryEquals('Protected images', d.edit, d.full, 6, nil, nil)
end

function suite:testCategory_edit_full_wikipedia_all_all()
	self:assertCategoryEquals('Protected project pages', d.edit, d.full, 4, nil, nil)
end

function suite:testCategory_edit_full_help_all_all()
	self:assertCategoryEquals('Protected project pages', d.edit, d.full, 12, nil, nil)
end

function suite:testCategory_edit_full_portal_all_all()
	self:assertCategoryEquals('Wikipedia protected pages', d.edit, d.full, 100, nil, nil)
end

function suite:testCategory_edit_full_template_all_all()
	self:assertCategoryEquals('Wikipedia protected templates', d.edit, d.full, 10, nil, nil)
end

function suite:testCategory_edit_full_category_all_all()
	self:assertCategoryEquals('Wikipedia protected categories', d.edit, d.full, 14, nil, nil)
end

function suite:testCategory_edit_full_talk_all_all()
	self:assertCategoryEquals('Protected talk pages', d.edit, d.full, 1, nil, nil)
end

function suite:testCategory_edit_full_main_all_all()
	self:assertCategoryEquals('Wikipedia protected pages', d.edit, d.full, 0, nil, nil)
end

--------------------------------------------------------------------------------
-- Categories: general move protection
--------------------------------------------------------------------------------

function suite:testCategory_move_full_user_all_all()
	self:assertCategoryEquals('Wikipedia move-protected user and user talk pages', d.move, d.full, 2, nil, nil)
end

function suite:testCategory_move_full_usertalk_all_all()
	self:assertCategoryEquals('Wikipedia move-protected user and user talk pages', d.move, d.full, 3, nil, nil)
end

function suite:testCategory_move_full_file_all_all()
	self:assertCategoryEquals('Wikipedia move-protected pages', d.move, d.full, 6, nil, nil)
end

function suite:testCategory_move_full_wikipedia_all_all()
	self:assertCategoryEquals('Wikipedia move-protected project pages', d.move, d.full, 4, nil, nil)
end

function suite:testCategory_move_full_help_all_all()
	self:assertCategoryEquals('Wikipedia move-protected project pages', d.move, d.full, 12, nil, nil)
end

function suite:testCategory_move_full_portal_all_all()
	self:assertCategoryEquals('Wikipedia move-protected portals', d.move, d.full, 100, nil, nil)
end

function suite:testCategory_move_full_template_all_all()
	self:assertCategoryEquals('Wikipedia move-protected templates', d.move, d.full, 10, nil, nil)
end

function suite:testCategory_move_full_category_all_all()
	self:assertCategoryEquals('Wikipedia move-protected pages', d.move, d.full, 14, nil, nil)
end

function suite:testCategory_move_full_talk_all_all()
	self:assertCategoryEquals('Wikipedia move-protected talk pages', d.move, d.full, 1, nil, nil)
end

function suite:testCategory_move_full_main_all_all()
	self:assertCategoryEquals('Wikipedia move-protected pages', d.move, d.full, 0, nil, nil)
end

--------------------------------------------------------------------------------
-- Categories: office
--------------------------------------------------------------------------------

function suite:testCategory_edit_full_main_office_all()
	self:assertCategoryEquals('Wikipedia Office-protected pages', d.edit, d.full, 0, d.office, nil)
end

function suite:testCategory_edit_full_talk_office_all()
	self:assertCategoryEquals('Wikipedia Office-protected pages', d.edit, d.full, 1, d.office, nil)
end

function suite:testCategory_edit_full_template_office_all()
	self:assertCategoryEquals('Wikipedia Office-protected pages', d.edit, d.full, 10, d.office, nil)
end

function suite:testCategory_edit_full_category_office_all()
	self:assertCategoryEquals('Wikipedia Office-protected pages', d.edit, d.full, 14, d.office, nil)
end

function suite:testCategory_edit_full_user_office_all()
	self:assertCategoryEquals('Wikipedia Office-protected pages', d.edit, d.full, 2, d.office, nil)
end

function suite:testCategory_edit_full_user_office_temp()
	self:assertCategoryEquals('Wikipedia Office-protected pages', d.edit, d.full, 2, d.office, d.temp)
end

function suite:testCategory_edit_full_user_office_indef()
	self:assertCategoryEquals('Wikipedia Office-protected pages', d.edit, d.full, 2, d.office, d.indef)
end

--------------------------------------------------------------------------------
-- Categories: pending changes level 1
--------------------------------------------------------------------------------

function suite:testCategory_pc_pc1_user_all_all()
	self:assertCategoryEquals('Wikipedia pending changes protected pages (level 1)', d.pc, d.pc1, 2, nil, nil)
end

function suite:testCategory_pc_pc1_usertalk_all_all()
	self:assertCategoryEquals('Wikipedia pending changes protected pages (level 1)', d.pc, d.pc1, 3, nil, nil)
end

function suite:testCategory_pc_pc1_file_all_all()
	self:assertCategoryEquals('Wikipedia pending changes protected pages (level 1)', d.pc, d.pc1, 6, nil, nil)
end

function suite:testCategory_pc_pc1_wikipedia_all_all()
	self:assertCategoryEquals('Wikipedia pending changes protected pages (level 1)', d.pc, d.pc1, 4, nil, nil)
end

function suite:testCategory_pc_pc1_help_all_all()
	self:assertCategoryEquals('Wikipedia pending changes protected pages (level 1)', d.pc, d.pc1, 12, nil, nil)
end

function suite:testCategory_pc_pc1_portal_all_all()
	self:assertCategoryEquals('Wikipedia pending changes protected pages (level 1)', d.pc, d.pc1, 100, nil, nil)
end

function suite:testCategory_pc_pc1_template_all_all()
	self:assertCategoryEquals('Wikipedia pending changes protected pages (level 1)', d.pc, d.pc1, 10, nil, nil)
end

function suite:testCategory_pc_pc1_category_all_all()
	self:assertCategoryEquals('Wikipedia pending changes protected pages (level 1)', d.pc, d.pc1, 14, nil, nil)
end

function suite:testCategory_pc_pc1_talk_all_all()
	self:assertCategoryEquals('Wikipedia pending changes protected pages (level 1)', d.pc, d.pc1, 1, nil, nil)
end

function suite:testCategory_pc_pc1_main_all_all()
	self:assertCategoryEquals('Wikipedia pending changes protected pages (level 1)', d.pc, d.pc1, 0, nil, nil)
end

--------------------------------------------------------------------------------
-- Categories: pending changes level 2
--------------------------------------------------------------------------------

function suite:testCategory_pc_pc2_user_all_all()
	self:assertCategoryEquals('Wikipedia pending changes protected pages (level 2)', d.pc, d.pc2, 2, nil, nil)
end

function suite:testCategory_pc_pc2_usertalk_all_all()
	self:assertCategoryEquals('Wikipedia pending changes protected pages (level 2)', d.pc, d.pc2, 3, nil, nil)
end

function suite:testCategory_pc_pc2_file_all_all()
	self:assertCategoryEquals('Wikipedia pending changes protected pages (level 2)', d.pc, d.pc2, 6, nil, nil)
end

function suite:testCategory_pc_pc2_wikipedia_all_all()
	self:assertCategoryEquals('Wikipedia pending changes protected pages (level 2)', d.pc, d.pc2, 4, nil, nil)
end

function suite:testCategory_pc_pc2_help_all_all()
	self:assertCategoryEquals('Wikipedia pending changes protected pages (level 2)', d.pc, d.pc2, 12, nil, nil)
end

function suite:testCategory_pc_pc2_portal_all_all()
	self:assertCategoryEquals('Wikipedia pending changes protected pages (level 2)', d.pc, d.pc2, 100, nil, nil)
end

function suite:testCategory_pc_pc2_template_all_all()
	self:assertCategoryEquals('Wikipedia pending changes protected pages (level 2)', d.pc, d.pc2, 10, nil, nil)
end

function suite:testCategory_pc_pc2_category_all_all()
	self:assertCategoryEquals('Wikipedia pending changes protected pages (level 2)', d.pc, d.pc2, 14, nil, nil)
end

function suite:testCategory_pc_pc2_talk_all_all()
	self:assertCategoryEquals('Wikipedia pending changes protected pages (level 2)', d.pc, d.pc2, 1, nil, nil)
end

function suite:testCategory_pc_pc2_main_all_all()
	self:assertCategoryEquals('Wikipedia pending changes protected pages (level 2)', d.pc, d.pc2, 0, nil, nil)
end

-- Categories changed from the old template behaviour:
-- 1. move_full_template_all_indef was 'Wikipedia indefinitely move-protected pages',
-- changed to 'Wikipedia move-protected templates'
-- 2, 3: move_full_template_vandalism_all and move_full_template_vandalism_temp
-- were both moved from 'Wikipedia move-protected pages' to 'Wikipedia move-protected templates'
-- 4. move_full_template_all_all was 'Wikipedia move-protected pages', changed to 'Wikipedia move-protected templates'

--------------------------------------------------------------------------------
-- Render tests
--------------------------------------------------------------------------------

d.padlockDivStartDefault = '<div class="metadata topicon nopopups" id="protected-icon" style="display:none;right:55px;">'
d.padlockDivStart65px = '<div class="metadata topicon nopopups" id="protected-icon" style="display:none;right:65px;">'
d.padlockDivEnd = '</div>'
d.imagePattern = '%[%[Image:.-%]%]'

function suite:testRenderPadlockDefault()
	local expected = suite.escapePattern(d.padlockDivStartDefault)
		.. d.imagePattern
		.. suite.escapePattern(d.padlockDivEnd)
	local actual = pp.renderPadlock('[[Image:Padlock.svg|20px]]')
	self:assertStringContains(expected, actual)
end

function suite:testRenderPadlockDefault()
	local expected = suite.escapePattern(d.padlockDivStart65px)
		.. d.imagePattern
		.. suite.escapePattern(d.padlockDivEnd)
	local actual = pp.renderPadlock('[[Image:Padlock.svg|20px]]', '65px')
	self:assertStringContains(expected, actual)
end

return suite