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('%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