Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Module:Class mask/testcases2

From Wikipedia, the free encyclopedia
-- Unit tests for quality function of [[Module:Class mask]]. Click talk page to run tests.
local p = require('Module:UnitTests')
local module = mw.getCurrentFrame().args.module or 'Class mask'
-- Pages for testing:
-- Talk:Oxford spelling has banner shell but no global class
-- Talk:James Abbott Thompson is a redirect and has no banner shell
-- Talk:Henri-Charles de Beaumanoir of Lavardin has global class unassessed
-- Talk:Philippe Cattiau has global class Stub
-- Template talk:Germany-silent-film-stub is a template and has global class NA
-- Talk:Siege of Arrah has global class A
-- Talk:Tropical World is a DAB page and has global class NA
-- Template talk:Bombycoidea-stub is a template and has global class NA
-- Talk:Christian Coleman has global class C
-- Talk:2011 Atlanta Falcons season has global class Start
-- Talk:Emma Goldman has global class FA

function p:test_with_inherited_class_Stub()
	self:preprocess_equals_many('{{#invoke:' .. module .. '|quality |class=', '|page=Talk:Philippe Cattiau}}', {
		{'C', 'XC'},
		{'stub', 'HStub'},
		{'ddff', 'HStub'},
		{'', 'HStub'},
	}, {nowiki=1})
end

function p:test_with_inherited_class_A()
	self:preprocess_equals_many('{{#invoke:' .. module .. '|quality |class=', ' |page=Talk:Siege of Arrah}}', {
		{'C', 'XC'},
		{'A', 'HA'},
		{'ddff', 'HA'},
		{'', 'HA'},
	}, {nowiki=1})
end

function p:test_with_custom_quality_criteria()
	self:preprocess_equals_many('{{#invoke:' .. module .. ' | quality |QUALITY_CRITERIA=custom |class=C |page=', '}}', {
		{'Talk:Oxford spelling', 'YC'},
		{'Talk:James Abbott Thompson', 'YC'},
		{'Talk:Henri-Charles de Beaumanoir of Lavardin', 'YC'},
		{'Talk:Philippe Cattiau', 'YC'},
		{'Template talk:Germany-silent-film-stub', 'YC'},
		{'Talk:Siege of Arrah', 'YC'},
	}, {nowiki=1})
end

function p:test_A_class_on_different_pages()
	self:preprocess_equals_many('{{#invoke:' .. module .. ' | quality |class=A |page=', '}}', {
		{'Talk:Oxford spelling', 'YA'},
		{'Talk:James Abbott Thompson', 'YA'},
		{'Talk:Henri-Charles de Beaumanoir of Lavardin', 'YA'},
		{'Talk:Philippe Cattiau', 'XA'},
		{'Template talk:Germany-silent-film-stub', 'XA'},
		{'Talk:Siege of Arrah', 'HA'},
	}, {nowiki=1})
end

function p:test_with_matching_classes()
	self:preprocess_equals('{{#invoke:' .. module .. ' |quality |class=NA |page=Template talk:Germany-silent-film-stub}}', 'HNA')
	self:preprocess_equals('{{#invoke:' .. module .. ' |quality |class=A |page=Talk:Siege of Arrah}}', 'HA')
	self:preprocess_equals('{{#invoke:' .. module .. ' |quality |class=stub |page=Talk:Philippe Cattiau}}', 'HStub')
	self:preprocess_equals('{{#invoke:' .. module .. ' |quality |class= |page=Talk:Henri-Charles de Beaumanoir of Lavardin}}', 'H')
end

function p:test_for_unassessed()
	self:preprocess_equals('{{#invoke:' .. module .. ' |quality |class= |page=Talk:Henri-Charles de Beaumanoir of Lavardin}}', 'H')
	self:preprocess_equals('{{#invoke:' .. module .. ' |quality ||page=Talk:Oxford spelling}}', 'Y')
	self:preprocess_equals('{{#invoke:' .. module .. ' |quality |class=d |page=Talk:James Abbott Thompson}}', 'YNA')
end

function p:test_with_valid_article_class_ignoring_namespace()
	self:preprocess_equals_many('{{#invoke:' .. module .. ' | quality |page=Talk:Emma Goldman |class=', '}}', {
        {'xyz', 'HFA'},
        {'Stub', 'XStub'},
        {'Template', 'XNA'},
        {'', 'HFA'},
    }, {nowiki=1})
end

function p:test_with_undefined_class_and_article_class()
	self:preprocess_equals_many('{{#invoke:' .. module .. ' | quality |class=', '|page=Talk:Oxford spelling}}', {
        {'xyz', 'Y'},
        {'Stub1', 'Y'},
        {'dfd', 'Y'},
        {'', 'Y'},
    }, {nowiki=1})
end

function p:test_with_undefined_or_invalid_project_class_ignoring_namespace()
	self:preprocess_equals_many('{{#invoke:' .. module .. ' | quality |class=', ' |page=Talk:2011 Atlanta Falcons season}}', {
        {'xyz', 'HStart'},
        {'Stub1', 'HStart'},
        {'dfd', 'HStart'},
        {'start', 'HStart'},
        {'', 'HStart'},
        {'B', 'XB'},
    }, {nowiki=1})
end

function p:test_non_articles_classes_with_extended_scale_on_dab_page()
	self:preprocess_equals_many('{{#invoke:' .. module .. ' | quality |class=', ' | QUALITY_SCALE=extended |page=Talk:Tropical World}}', {
        {'NA', 'HNA'},
        {'Template', 'HTemplate'},
        {'dfd', 'HDisambig'},
        {'', 'HDisambig'},
        {'project', 'HProject'},
        {'Start', 'XStart'},
        {'dab', 'HDisambig'},
    }, {nowiki=1})
end

function p:test_non_articles_classes_ignoring_namespace()
	self:preprocess_equals_many('{{#invoke:' .. module .. ' | quality |class=', ' |page=Template talk:Germany-silent-film-stub}}', {
        {'NA', 'HNA'},
        {'C', 'XC'},
        {'dfd', 'HNA'},
        {'', 'HNA'},
        {'project', 'HNA'},
        {'redir', 'HNA'},
    }, {nowiki=1})
end

function p:test_subpage_mask()
	self:preprocess_equals_many('{{#invoke:' .. module .. ' | quality |class=', '|page=Talk:Christian Coleman |BANNER_NAME=Template:WikiProject Plants | QUALITY_SCALE=subpage}}', {
        {'SL', 'XSL'},
        {'c', 'HC'},
        {'sausage', 'XTemplate'},
        {'', 'XTemplate'},
        {'fm', 'XFM'},
        {'redir', 'XRedirect'},
    }, {nowiki=1})
end

function p:test_inline_mask()
	self:preprocess_equals_many('{{#invoke:' .. module .. ' | quality |class=Future|page=', '| QUALITY_SCALE=inline}}', {
        {'Talk:James Abbott Thompson', 'YFuture'},
        {'Talk:Henri-Charles de Beaumanoir of Lavardin', 'YFuture'},
        {'Talk:Philippe Cattiau', 'XFuture'},
        {'Template talk:Germany-silent-film-stub', 'XFuture'},
        {'Talk:Siege of Arrah', 'XFuture'},
        {'Talk:Tropical World', 'XFuture'},
    }, {nowiki=1})
end

function p:test_noprefix()
	self:preprocess_equals_many('{{#invoke:' .. module .. ' | quality |class=', ' |noprefix=true | QUALITY_SCALE=extended |page=Talk:Siege of Arrah}}', {
        {'B', 'B'},
        {'Template', 'Template'},
        {'dfd', 'A'},
        {'', 'A'},
        {'project', 'Project'},
        {'Start', 'Start'},
    }, {nowiki=1})
end

function p:test_with_redirect_and_no_inherited_class()
	self:preprocess_equals_many('{{#invoke:' .. module .. ' | quality |class=', '| page=Talk:James Abbott Thompson}}', {
        {'', 'YNA'},
        {'B', 'YB'},
        {'hjfhjh', 'YNA'},
        {'NA', 'YNA'},
    }, {nowiki=1})
end

return p