-- Unit tests for [[Module:Protection banner]]. Click talk page to run tests.
local pp = require('Module:User:Mr. Stradivarius/pp')
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
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 timestamp = 'July 17, 2020'
--------------------------------------------------------------------------------
-- Category name tests
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Categories: edit-semi-dispute
--------------------------------------------------------------------------------
function suite:testCategory_edit_semi_main_dispute_all()
self:assertCategoryEquals('Wikipedia pages semi-protected due to dispute', 'edit', 'semi', 0, 'dispute', nil)
end
function suite:testCategory_edit_semi_talk_dispute_all()
self:assertCategoryEquals('Wikipedia pages semi-protected due to dispute', 'edit', 'semi', 1, 'dispute', nil)
end
function suite:testCategory_edit_semi_file_dispute_all()
self:assertCategoryEquals('Wikipedia pages semi-protected due to dispute', 'edit', 'semi', 6, 'dispute', nil)
end
function suite:testCategory_edit_semi_template_dispute_all()
self:assertCategoryEquals('Wikipedia pages semi-protected due to dispute', 'edit', 'semi', 10, 'dispute', nil)
end
function suite:testCategory_edit_semi_main_dispute_temp()
self:assertCategoryEquals('Wikipedia pages semi-protected due to dispute', 'edit', 'semi', 0, 'dispute', timestamp)
end
function suite:testCategory_edit_semi_talk_dispute_temp()
self:assertCategoryEquals('Wikipedia pages semi-protected due to dispute', 'edit', 'semi', 1, 'dispute', timestamp)
end
function suite:testCategory_edit_semi_file_dispute_temp()
self:assertCategoryEquals('Wikipedia pages semi-protected due to dispute', 'edit', 'semi', 6, 'dispute', timestamp)
end
function suite:testCategory_edit_semi_template_dispute_temp()
self:assertCategoryEquals('Wikipedia pages semi-protected due to dispute', 'edit', 'semi', 10, 'dispute', timestamp)
end
--------------------------------------------------------------------------------
-- Categories: edit-full-dispute
--------------------------------------------------------------------------------
function suite:testCategory_edit_full_main_dispute_all()
self:assertCategoryEquals('Wikipedia pages protected due to dispute', 'edit', 'full', 0, 'dispute', nil)
end
function suite:testCategory_edit_full_talk_dispute_all()
self:assertCategoryEquals('Wikipedia pages protected due to dispute', 'edit', 'full', 1, 'dispute', nil)
end
function suite:testCategory_edit_full_file_dispute_all()
self:assertCategoryEquals('Wikipedia pages protected due to dispute', 'edit', 'full', 6, 'dispute', nil)
end
function suite:testCategory_edit_full_template_dispute_all()
self:assertCategoryEquals('Wikipedia pages protected due to dispute', 'edit', 'full', 10, 'dispute', nil)
end
function suite:testCategory_edit_full_main_dispute_temp()
self:assertCategoryEquals('Wikipedia pages protected due to dispute', 'edit', 'full', 0, 'dispute', timestamp)
end
function suite:testCategory_edit_full_talk_dispute_temp()
self:assertCategoryEquals('Wikipedia pages protected due to dispute', 'edit', 'full', 1, 'dispute', timestamp)
end
function suite:testCategory_edit_full_file_dispute_temp()
self:assertCategoryEquals('Wikipedia pages protected due to dispute', 'edit', 'full', 6, 'dispute', timestamp)
end
function suite:testCategory_edit_full_template_dispute_temp()
self:assertCategoryEquals('Wikipedia pages protected due to dispute', 'edit', 'full', 10, 'dispute', timestamp)
end
--------------------------------------------------------------------------------
-- Categories: move-full-dispute
--------------------------------------------------------------------------------
function suite:testCategory_move_full_template_dispute_all()
self:assertCategoryEquals('Wikipedia pages move-protected due to dispute', 'move', 'full', 0, 'dispute', nil)
end
function suite:testCategory_move_full_talk_dispute_all()
self:assertCategoryEquals('Wikipedia pages move-protected due to dispute', 'move', 'full', 1, 'dispute', nil)
end
function suite:testCategory_move_full_file_dispute_all()
self:assertCategoryEquals('Wikipedia pages move-protected due to dispute', 'move', 'full', 6, 'dispute', nil)
end
function suite:testCategory_move_full_template_dispute_all()
self:assertCategoryEquals('Wikipedia pages move-protected due to dispute', 'move', 'full', 10, 'dispute', nil)
end
function suite:testCategory_move_full_main_dispute_temp()
self:assertCategoryEquals('Wikipedia pages move-protected due to dispute', 'move', 'full', 0, 'dispute', timestamp)
end
function suite:testCategory_move_full_talk_dispute_temp()
self:assertCategoryEquals('Wikipedia pages move-protected due to dispute', 'move', 'full', 1, 'dispute', timestamp)
end
function suite:testCategory_move_full_file_dispute_temp()
self:assertCategoryEquals('Wikipedia pages move-protected due to dispute', 'move', 'full', 6, 'dispute', timestamp)
end
function suite:testCategory_move_full_template_dispute_temp()
self:assertCategoryEquals('Wikipedia pages move-protected due to dispute', 'move', 'full', 10, 'dispute', timestamp)
end
--------------------------------------------------------------------------------
-- Categories: edit-semi-vandalism
--------------------------------------------------------------------------------
function suite:testCategory_edit_semi_user_vandalism_all()
self:assertCategoryEquals('Wikipedia semi-protected user and user talk pages', 'edit', 'semi', 2, 'vandalism', nil)
end
function suite:testCategory_edit_semi_usertalk_vandalism_all()
self:assertCategoryEquals('Wikipedia semi-protected user and user talk pages', 'edit', 'semi', 3, 'vandalism', nil)
end
function suite:testCategory_edit_semi_file_vandalism_all()
self:assertCategoryEquals('Semi-protected images', 'edit', 'semi', 6, 'vandalism', nil)
end
function suite:testCategory_edit_semi_wikipedia_vandalism_all()
self:assertCategoryEquals('Semi-protected project pages', 'edit', 'semi', 4, 'vandalism', nil)
end
function suite:testCategory_edit_semi_help_vandalism_all()
self:assertCategoryEquals('Semi-protected project pages', 'edit', 'semi', 12, 'vandalism', nil)
end
function suite:testCategory_edit_semi_portal_vandalism_all()
self:assertCategoryEquals('Semi-protected portals', 'edit', 'semi', 100, 'vandalism', nil)
end
function suite:testCategory_edit_semi_template_vandalism_all()
self:assertCategoryEquals('Wikipedia semi-protected templates', 'edit', 'semi', 10, 'vandalism', nil)
end
function suite:testCategory_edit_semi_talk_vandalism_all()
self:assertCategoryEquals('Semi-protected talk pages', 'edit', 'semi', 1, 'vandalism', nil)
end
function suite:testCategory_edit_semi_main_vandalism_all()
self:assertCategoryEquals('Wikipedia pages semi-protected against vandalism', 'edit', 'semi', 0, 'vandalism', nil)
end
function suite:testCategory_edit_semi_user_vandalism_temp()
self:assertCategoryEquals('Wikipedia semi-protected user and user talk pages', 'edit', 'semi', 2, 'vandalism', timestamp)
end
function suite:testCategory_edit_semi_usertalk_vandalism_temp()
self:assertCategoryEquals('Wikipedia semi-protected user and user talk pages', 'edit', 'semi', 3, 'vandalism', timestamp)
end
function suite:testCategory_edit_semi_file_vandalism_temp()
self:assertCategoryEquals('Semi-protected images', 'edit', 'semi', 6, 'vandalism', timestamp)
end
function suite:testCategory_edit_semi_wikipedia_vandalism_temp()
self:assertCategoryEquals('Semi-protected project pages', 'edit', 'semi', 4, 'vandalism', timestamp)
end
function suite:testCategory_edit_semi_help_vandalism_temp()
self:assertCategoryEquals('Semi-protected project pages', 'edit', 'semi', 12, 'vandalism', timestamp)
end
function suite:testCategory_edit_semi_portal_vandalism_temp()
self:assertCategoryEquals('Semi-protected portals', 'edit', 'semi', 100, 'vandalism', timestamp)
end
function suite:testCategory_edit_semi_template_vandalism_temp()
self:assertCategoryEquals('Wikipedia semi-protected templates', 'edit', 'semi', 10, 'vandalism', timestamp)
end
function suite:testCategory_edit_semi_talk_vandalism_temp()
self:assertCategoryEquals('Semi-protected talk pages', 'edit', 'semi', 1, 'vandalism', timestamp)
end
function suite:testCategory_edit_semi_main_vandalism_temp()
self:assertCategoryEquals('Wikipedia pages semi-protected against vandalism', 'edit', 'semi', 0, 'vandalism', timestamp)
end
--------------------------------------------------------------------------------
-- Categories: edit-full-vandalism
--------------------------------------------------------------------------------
function suite:testCategory_edit_full_user_vandalism_all()
self:assertCategoryEquals('Wikipedia protected user and user talk pages', 'edit', 'full', 2, 'vandalism', nil)
end
function suite:testCategory_edit_full_usertalk_vandalism_all()
self:assertCategoryEquals('Wikipedia protected user and user talk pages', 'edit', 'full', 3, 'vandalism', nil)
end
function suite:testCategory_edit_full_file_vandalism_all()
self:assertCategoryEquals('Protected images', 'edit', 'full', 6, 'vandalism', nil)
end
function suite:testCategory_edit_full_wikipedia_vandalism_all()
self:assertCategoryEquals('Protected project pages', 'edit', 'full', 4, 'vandalism', nil)
end
function suite:testCategory_edit_full_help_vandalism_all()
self:assertCategoryEquals('Protected project pages', 'edit', 'full', 12, 'vandalism', nil)
end
function suite:testCategory_edit_full_portal_vandalism_all()
self:assertCategoryEquals('Wikipedia pages protected against vandalism', 'edit', 'full', 100, 'vandalism', nil)
end
function suite:testCategory_edit_full_template_vandalism_all()
self:assertCategoryEquals('Wikipedia protected templates', 'edit', 'full', 10, 'vandalism', nil)
end
function suite:testCategory_edit_full_talk_vandalism_all()
self:assertCategoryEquals('Protected talk pages', 'edit', 'full', 1, 'vandalism', nil)
end
function suite:testCategory_edit_full_main_vandalism_all()
self:assertCategoryEquals('Wikipedia pages protected against vandalism', 'edit', 'full', 0, 'vandalism', nil)
end
function suite:testCategory_edit_full_user_vandalism_temp()
self:assertCategoryEquals('Wikipedia protected user and user talk pages', 'edit', 'full', 2, 'vandalism', timestamp)
end
function suite:testCategory_edit_full_usertalk_vandalism_temp()
self:assertCategoryEquals('Wikipedia protected user and user talk pages', 'edit', 'full', 3, 'vandalism', timestamp)
end
function suite:testCategory_edit_full_file_vandalism_temp()
self:assertCategoryEquals('Protected images', 'edit', 'full', 6, 'vandalism', timestamp)
end
function suite:testCategory_edit_full_wikipedia_vandalism_temp()
self:assertCategoryEquals('Protected project pages', 'edit', 'full', 4, 'vandalism', timestamp)
end
function suite:testCategory_edit_full_help_vandalism_temp()
self:assertCategoryEquals('Protected project pages', 'edit', 'full', 12, 'vandalism', timestamp)
end
function suite:testCategory_edit_full_portal_vandalism_temp()
self:assertCategoryEquals('Wikipedia pages protected against vandalism', 'edit', 'full', 100, 'vandalism', timestamp)
end
function suite:testCategory_edit_full_template_vandalism_temp()
self:assertCategoryEquals('Wikipedia protected templates', 'edit', 'full', 10, 'vandalism', timestamp)
end
function suite:testCategory_edit_full_talk_vandalism_temp()
self:assertCategoryEquals('Protected talk pages', 'edit', 'full', 1, 'vandalism', timestamp)
end
function suite:testCategory_edit_full_main_vandalism_temp()
self:assertCategoryEquals('Wikipedia pages protected against vandalism', 'edit', 'full', 0, 'vandalism', timestamp)
end
--------------------------------------------------------------------------------
-- Categories: move-full-vandalism
--------------------------------------------------------------------------------
function suite:testCategory_move_full_user_vandalism_all()
self:assertCategoryEquals('Wikipedia move-protected user and user talk pages', 'move', 'full', 2, 'vandalism', nil)
end
function suite:testCategory_move_full_usertalk_vandalism_all()
self:assertCategoryEquals('Wikipedia move-protected user and user talk pages', 'move', 'full', 3, 'vandalism', nil)
end
function suite:testCategory_move_full_file_vandalism_all()
self:assertCategoryEquals('Wikipedia pages move-protected due to vandalism', 'move', 'full', 6, 'vandalism', nil)
end
function suite:testCategory_move_full_wikipedia_vandalism_all()
self:assertCategoryEquals('Wikipedia move-protected project pages', 'move', 'full', 4, 'vandalism', nil)
end
function suite:testCategory_move_full_help_vandalism_all()
self:assertCategoryEquals('Wikipedia move-protected project pages', 'move', 'full', 12, 'vandalism', nil)
end
function suite:testCategory_move_full_portal_vandalism_all()
self:assertCategoryEquals('Wikipedia move-protected portals', 'move', 'full', 100, 'vandalism', nil)
end
function suite:testCategory_move_full_template_vandalism_all()
self:assertCategoryEquals('Wikipedia move-protected templates', 'move', 'full', 10, 'vandalism', nil)
end
function suite:testCategory_move_full_talk_vandalism_all()
self:assertCategoryEquals('Wikipedia move-protected talk pages', 'move', 'full', 1, 'vandalism', nil)
end
function suite:testCategory_move_full_main_vandalism_all()
self:assertCategoryEquals('Wikipedia pages move-protected due to vandalism', 'move', 'full', 0, 'vandalism', nil)
end
function suite:testCategory_move_full_user_vandalism_temp()
self:assertCategoryEquals('Wikipedia move-protected user and user talk pages', 'move', 'full', 2, 'vandalism', timestamp)
end
function suite:testCategory_move_full_usertalk_vandalism_temp()
self:assertCategoryEquals('Wikipedia move-protected user and user talk pages', 'move', 'full', 3, 'vandalism', timestamp)
end
function suite:testCategory_move_full_file_vandalism_temp()
self:assertCategoryEquals('Wikipedia pages move-protected due to vandalism', 'move', 'full', 6, 'vandalism', timestamp)
end
function suite:testCategory_move_full_wikipedia_vandalism_temp()
self:assertCategoryEquals('Wikipedia move-protected project pages', 'move', 'full', 4, 'vandalism', timestamp)
end
function suite:testCategory_move_full_help_vandalism_temp()
self:assertCategoryEquals('Wikipedia move-protected project pages', 'move', 'full', 12, 'vandalism', timestamp)
end
function suite:testCategory_move_full_portal_vandalism_temp()
self:assertCategoryEquals('Wikipedia move-protected portals', 'move', 'full', 100, 'vandalism', timestamp)
end
function suite:testCategory_move_full_template_vandalism_temp()
self:assertCategoryEquals('Wikipedia move-protected templates', 'move', 'full', 10, 'vandalism', timestamp)
end
function suite:testCategory_move_full_talk_vandalism_temp()
self:assertCategoryEquals('Wikipedia move-protected talk pages', 'move', 'full', 1, 'vandalism', timestamp)
end
function suite:testCategory_move_full_main_vandalism_temp()
self:assertCategoryEquals('Wikipedia pages move-protected due to vandalism', 'move', 'full', 0, 'vandalism', timestamp)
end
--------------------------------------------------------------------------------
-- Categories: template
--------------------------------------------------------------------------------
function suite:testCategory_edit_semi_template_all_all()
self:assertCategoryEquals('Wikipedia semi-protected templates', 'edit', 'semi', 10, nil, nil)
end
function suite:testCategory_edit_semi_template_all_temp()
self:assertCategoryEquals('Wikipedia semi-protected templates', 'edit', 'semi', 10, nil, timestamp)
end
function suite:testCategory_edit_full_template_all_all()
self:assertCategoryEquals('Wikipedia protected templates', 'edit', 'full', 10, nil, nil)
end
function suite:testCategory_edit_full_template_all_temp()
self:assertCategoryEquals('Wikipedia protected templates', 'edit', 'full', 10, nil, timestamp)
end
function suite:testCategory_move_full_template_all_all()
self:assertCategoryEquals('Wikipedia move-protected templates', 'move', 'full', 10, nil, nil)
end
function suite:testCategory_edit_full_template_all_temp()
self:assertCategoryEquals('Wikipedia move-protected templates', 'move', 'full', 10, nil, timestamp)
end
--------------------------------------------------------------------------------
-- Categories: usertalk
--------------------------------------------------------------------------------
function suite:testCategory_edit_semi_user_all_all()
self:assertCategoryEquals('Wikipedia semi-protected user and user talk pages', 'edit', 'semi', 2, nil, nil)
end
function suite:testCategory_edit_semi_usertalk_all_all()
self:assertCategoryEquals('Wikipedia semi-protected user and user talk pages', 'edit', 'semi', 3, nil, nil)
end
function suite:testCategory_edit_full_user_all_all()
self:assertCategoryEquals('Wikipedia protected user and user talk pages', 'edit', 'full', 2, nil, nil)
end
function suite:testCategory_edit_full_usertalk_all_all()
self:assertCategoryEquals('Wikipedia protected user and user talk pages', 'edit', 'full', 3, nil, nil)
end
function suite:testCategory_edit_semi_user_all_temp()
self:assertCategoryEquals('Wikipedia semi-protected user and user talk pages', 'edit', 'semi', 2, nil, timestamp)
end
function suite:testCategory_edit_semi_usertalk_all_temp()
self:assertCategoryEquals('Wikipedia semi-protected user and user talk pages', 'edit', 'semi', 3, nil, timestamp)
end
function suite:testCategory_edit_full_user_all_temp()
self:assertCategoryEquals('Wikipedia protected user and user talk pages', 'edit', 'full', 2, nil, timestamp)
end
function suite:testCategory_edit_full_usertalk_all_temp()
self:assertCategoryEquals('Wikipedia protected user and user talk pages', 'edit', 'full', 3, nil, timestamp)
end
--------------------------------------------------------------------------------
-- Categories: sock
--------------------------------------------------------------------------------
function suite:testCategory_edit_semi_main_sock_all()
self:assertCategoryEquals('Wikipedia pages semi-protected from banned users', 'edit', 'semi', 0, 'sock', nil)
end
function suite:testCategory_edit_semi_talk_sock_all()
self:assertCategoryEquals('Wikipedia pages semi-protected from banned users', 'edit', 'semi', 1, 'sock', nil)
end
function suite:testCategory_edit_semi_file_sock_all()
self:assertCategoryEquals('Wikipedia pages semi-protected from banned users', 'edit', 'semi', 6, 'sock', nil)
end
function suite:testCategory_edit_semi_template_sock_all()
self:assertCategoryEquals('Wikipedia pages semi-protected from banned users', 'edit', 'semi', 10, 'sock', nil)
end
function suite:testCategory_edit_semi_main_sock_temp()
self:assertCategoryEquals('Wikipedia pages semi-protected from banned users', 'edit', 'semi', 0, 'sock', timestamp)
end
function suite:testCategory_edit_semi_talk_sock_temp()
self:assertCategoryEquals('Wikipedia pages semi-protected from banned users', 'edit', 'semi', 1, 'sock', timestamp)
end
function suite:testCategory_edit_semi_file_sock_temp()
self:assertCategoryEquals('Wikipedia pages semi-protected from banned users', 'edit', 'semi', 6, 'sock', timestamp)
end
function suite:testCategory_edit_semi_template_sock_temp()
self:assertCategoryEquals('Wikipedia pages semi-protected from banned users', 'edit', 'semi', 10, 'sock', timestamp)
end
function suite:testCategory_edit_full_main_sock_all()
self:assertCategoryEquals('Wikipedia pages protected from banned users', 'edit', 'full', 0, 'sock', nil)
end
function suite:testCategory_edit_full_talk_sock_all()
self:assertCategoryEquals('Wikipedia pages protected from banned users', 'edit', 'full', 1, 'sock', nil)
end
function suite:testCategory_edit_full_file_sock_all()
self:assertCategoryEquals('Wikipedia pages protected from banned users', 'edit', 'full', 6, 'sock', nil)
end
function suite:testCategory_edit_full_template_sock_all()
self:assertCategoryEquals('Wikipedia pages protected from banned users', 'edit', 'full', 10, 'sock', nil)
end
function suite:testCategory_edit_full_main_sock_temp()
self:assertCategoryEquals('Wikipedia pages protected from banned users', 'edit', 'full', 0, 'sock', timestamp)
end
function suite:testCategory_edit_full_talk_sock_temp()
self:assertCategoryEquals('Wikipedia pages protected from banned users', 'edit', 'full', 1, 'sock', timestamp)
end
function suite:testCategory_edit_full_file_sock_temp()
self:assertCategoryEquals('Wikipedia pages protected from banned users', 'edit', 'full', 6, 'sock', timestamp)
end
function suite:testCategory_edit_full_template_sock_temp()
self:assertCategoryEquals('Wikipedia pages protected from banned users', 'edit', 'full', 10, 'sock', timestamp)
end
return suite