Module:Protection banner/config/testcases

.mw-parser-output .ombox{margin:4px 0;border-collapse:collapse;border:1px solid #a2a9b1;background-color:var(--background-color-neutral-subtle,#f8f9fa);box-sizi

Module:Protection banner/config/testcases
-- Unit tests for [[Module:Protection banner/config]]. Click talk page to run tests. 

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

-- Get the config
local cfgModule = require('Module:Protection banner/config/sandbox')

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

function suite.makeFakeProtectionObj(fields, cfg, title)
	local obj = Protection.new({}, cfg, title)
	for k, v in pairs(fields) do
		obj[k] = v
	end
	return obj
end

function suite:assertProtectionCategoryEquals(expected, action, level, namespace, reason, expiry)
	local fakePageName = 'Foobar'
	local fakeTitleObj = mw.title.new(fakePageName, namespace)
	local protectionObj = suite.makeFakeProtectionObj(
		{
			action = action,
			level = level,
			title = fakeTitleObj,
			reason = reason,
			expiry = expiry
		},
		cfgModule,
		fakeTitleObj
	)
	local actual = protectionObj:makeProtectionCategory()
	expected = string.format('[[Category:%s|%s]]', expected, fakePageName)
	self:assertEquals(expected, actual)
end

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

local d = {}
d.edit = 'edit'
d.move = 'move'
d.pc = 'autoreview'
d.semi = 'autoconfirmed'
d.extended = 'extendedconfirmed'
d.template = 'templateeditor'
d.full = 'sysop'
d.dispute = 'dispute'
d.pc1 = 'autoconfirmed'
d.vand = 'vandalism'
d.blp = 'blp'
d.sock = 'sock'
d.office = 'office'
d.temp = 3000000000
d.indef = 'indef'

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

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

function suite:testCategory_edit_semi_main_dispute_all()
	self:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('Wikipedia pages protected due to dispute', d.edit, d.full, 0, d.dispute, nil)
end

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

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

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

function suite:testCategory_edit_full_main_dispute_temp()
	self:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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_main_dispute_all()
	self:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('Wikipedia semi-protected files', d.edit, d.semi, 6, d.vand, nil)
end

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

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

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

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

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

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

function suite:testCategory_edit_semi_user_vandalism_temp()
	self:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('Wikipedia semi-protected files', d.edit, d.semi, 6, d.vand, d.temp)
end

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

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

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

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

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

function suite:testCategory_edit_semi_main_vandalism_temp()
	self:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('Wikipedia fully protected user and user talk pages', d.edit, d.full, 2, d.vand, nil)
end

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

function suite:testCategory_edit_full_file_vandalism_all()
	self:assertProtectionCategoryEquals('Wikipedia fully protected files', d.edit, d.full, 6, d.vand, nil)
end

function suite:testCategory_edit_full_wikipedia_vandalism_all()
	self:assertProtectionCategoryEquals('Wikipedia fully protected project pages', d.edit, d.full, 4, d.vand, nil)
end

function suite:testCategory_edit_full_help_vandalism_all()
	self:assertProtectionCategoryEquals('Wikipedia fully protected project pages', d.edit, d.full, 12, d.vand, nil)
end

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

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

function suite:testCategory_edit_full_talk_vandalism_all()
	self:assertProtectionCategoryEquals('Wikipedia fully protected talk pages', d.edit, d.full, 1, d.vand, nil)
end

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

function suite:testCategory_edit_full_user_vandalism_temp()
	self:assertProtectionCategoryEquals('Wikipedia fully 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:assertProtectionCategoryEquals('Wikipedia fully 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:assertProtectionCategoryEquals('Wikipedia fully protected files', d.edit, d.full, 6, d.vand, d.temp)
end

function suite:testCategory_edit_full_wikipedia_vandalism_temp()
	self:assertProtectionCategoryEquals('Wikipedia fully protected project pages', d.edit, d.full, 4, d.vand, d.temp)
end

function suite:testCategory_edit_full_help_vandalism_temp()
	self:assertProtectionCategoryEquals('Wikipedia fully protected project pages', d.edit, d.full, 12, d.vand, d.temp)
end

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

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

function suite:testCategory_edit_full_talk_vandalism_temp()
	self:assertProtectionCategoryEquals('Wikipedia fully protected talk pages', d.edit, d.full, 1, d.vand, d.temp)
end

function suite:testCategory_edit_full_main_vandalism_temp()
	self:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('Wikipedia move-protected project pages', d.move, d.full, 4, d.vand, nil)
end

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

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

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

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

function suite:testCategory_move_full_main_vandalism_all()
	self:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('Wikipedia move-protected project pages', d.move, d.full, 4, d.vand, d.temp)
end

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

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

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

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

function suite:testCategory_move_full_main_vandalism_temp()
	self:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('Wikipedia semi-protected templates', d.edit, d.semi, 10, d.indef, nil)
end

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

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

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

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

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

function suite:testCategory_edit_extended_template_all_all()
	self:assertProtectionCategoryEquals('Wikipedia extended-confirmed-protected templates', d.edit, d.extended, 10, nil, nil)
end

function suite:testCategory_move_template_template_all_all()
	self:assertProtectionCategoryEquals('Wikipedia template-protected templates', d.move, d.template, 10, nil, nil)
end

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

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

function suite:testCategory_edit_template_templatetalk_all_all()
	self:assertProtectionCategoryEquals('Wikipedia template-protected pages other than templates and modules', d.edit, d.template, 11, nil, nil)
end

--------------------------------------------------------------------------------
-- Categories: module
--------------------------------------------------------------------------------

function suite:testCategory_edit_semi_module_all_all()
	self:assertProtectionCategoryEquals('Wikipedia semi-protected modules', d.edit, d.semi, 828, d.indef, nil)
end

function suite:testCategory_edit_semi_module_all_temp()
	self:assertProtectionCategoryEquals('Wikipedia semi-protected modules', d.edit, d.semi, 828, nil, d.temp)
end

function suite:testCategory_edit_full_module_all_all()
	self:assertProtectionCategoryEquals('Wikipedia fully protected modules', d.edit, d.full, 828, nil, nil)
end

function suite:testCategory_edit_full_module_all_temp()
	self:assertProtectionCategoryEquals('Wikipedia fully protected modules', d.edit, d.full, 828, nil, d.temp)
end

function suite:testCategory_edit_template_module_all_all()
	self:assertProtectionCategoryEquals('Wikipedia template-protected modules', d.edit, d.template, 828, nil, nil)
end

function suite:testCategory_edit_template_module_all_temp()
	self:assertProtectionCategoryEquals('Wikipedia template-protected modules', d.edit, d.template, 828, nil, d.temp)
end

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

function suite:testCategory_edit_semi_user_all_all()
	self:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('Wikipedia fully protected user and user talk pages', d.edit, d.full, 2, nil, nil)
end

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

function suite:testCategory_edit_semi_user_all_temp()
	self:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('Wikipedia fully protected user and user talk pages', d.edit, d.full, 2, nil, d.temp)
end

function suite:testCategory_edit_full_usertalk_all_temp()
	self:assertProtectionCategoryEquals('Wikipedia fully 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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('Wikipedia pages protected from banned users', d.edit, d.full, 0, d.sock, nil)
end

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

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

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

function suite:testCategory_edit_full_main_sock_temp()
	self:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('Wikipedia semi-protected files', d.edit, d.semi, 6, nil, d.indef)
end

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

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

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

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

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

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

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

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

function suite:testCategory_move_full_user_all_indef()
	self:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('Wikipedia indefinitely move-protected pages', d.move, d.full, 6, nil, d.indef)
end

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

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

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

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

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

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

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

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

function suite:testCategory_edit_semi_user_all_all()
	self:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('Wikipedia semi-protected files', d.edit, d.semi, 6, nil, nil)
end

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

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

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

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

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

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

function suite:testCategory_edit_semi_main_all_temp()
	self:assertProtectionCategoryEquals('Wikipedia semi-protected pages', d.edit, d.semi, 0, nil, d.temp)
end

function suite:testCategory_edit_extended_main_all_all()
	self:assertProtectionCategoryEquals('Wikipedia extended-confirmed-protected pages', d.edit, d.extended, 0, nil, nil)
end

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

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

function suite:testCategory_edit_full_file_all_all()
	self:assertProtectionCategoryEquals('Wikipedia fully protected files', d.edit, d.full, 6, nil, nil)
end

function suite:testCategory_edit_full_wikipedia_all_all()
	self:assertProtectionCategoryEquals('Wikipedia fully protected project pages', d.edit, d.full, 4, nil, nil)
end

function suite:testCategory_edit_full_help_all_all()
	self:assertProtectionCategoryEquals('Wikipedia fully protected project pages', d.edit, d.full, 12, nil, nil)
end

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

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

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

function suite:testCategory_edit_full_talk_all_all()
	self:assertProtectionCategoryEquals('Wikipedia fully protected talk pages', d.edit, d.full, 1, nil, nil)
end

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

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

function suite:testCategory_move_full_user_all_all()
	self:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('Wikipedia move-protected pages', d.move, d.full, 6, nil, nil)
end

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

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

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

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

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

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

function suite:testCategory_move_full_main_all_temp()
	self:assertProtectionCategoryEquals('Wikipedia move-protected pages', d.move, d.full, 0, nil, d.temp)
end

function suite:testCategory_move_extended_main_all_all()
	self:assertProtectionCategoryEquals('Wikipedia extended-confirmed-protected pages', d.move, d.extended, 0, nil, nil)
end

function suite:testCategory_move_extended_template_all_all()
	self:assertProtectionCategoryEquals('Wikipedia extended-confirmed-protected templates', d.move, d.extended, 10, nil, nil)
end

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

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

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

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

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

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

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

function suite:testCategory_edit_full_user_office_indef()
	self:assertProtectionCategoryEquals('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:assertProtectionCategoryEquals('Wikipedia pending changes protected pages', d.pc, d.pc1, 2, nil, nil)
end

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

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

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

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

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

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

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

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

function suite:testCategory_pc_pc1_main_all_all()
	self:assertProtectionCategoryEquals('Wikipedia pending changes protected pages', d.pc, d.pc1, 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'

return suite

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.