Difference between revisions of "Module:Namespace detect/testcases"
Jump to navigation
Jump to search
blackwiki>Mr. Stradivarius (test case for bad titles) |
m (17 revisions imported) |
||
| (12 intermediate revisions by one other user not shown) | |||
| Line 1: | Line 1: | ||
-- Example Unit tests for [[Module:Namespace detect]]. Click talk page to run tests. | -- Example Unit tests for [[Module:Namespace detect]]. Click talk page to run tests. | ||
local p = require('Module:UnitTests') | local p = require('Module:UnitTests') | ||
| + | local nsDetect = require('Module:Namespace detect/sandbox')._main | ||
function p:test_template_testcases_page() | function p:test_template_testcases_page() | ||
| − | self: | + | self:preprocess_equals_many('{{#invoke:Namespace detect/sandbox|main', '}}', { |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| talk = Any talk page text. | | talk = Any talk page text. | ||
| user = User page text. | | user = User page text. | ||
| − | | other = Other pages text.]]}, | + | | other = Other pages text.]], 'Any talk page text.'}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 14: | Line 15: | ||
| user = User page text. | | user = User page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | demospace = ]]}, | + | | demospace = ]], 'Any talk page text.'}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 20: | Line 21: | ||
| user = User page text. | | user = User page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | demospace = main]]}, | + | | demospace = main]], 'Article text.'}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 26: | Line 27: | ||
| user = User page text. | | user = User page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | demospace = talk]]}, | + | | demospace = talk]], 'Any talk page text.'}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 32: | Line 33: | ||
| user = User page text. | | user = User page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | demospace = help talk]]}, | + | | demospace = help talk]], 'Other pages text.'}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 38: | Line 39: | ||
| user = User page text. | | user = User page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = ]]}, | + | | page = ]], 'Any talk page text.'}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 44: | Line 45: | ||
| user = User page text. | | user = User page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = Example/test]]}, | + | | page = Example/test]], 'Article text.'}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 50: | Line 51: | ||
| user = User page text. | | user = User page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = User:Example/test]]}, | + | | page = User:Example/test]], 'User page text.'}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 56: | Line 57: | ||
| user = User page text. | | user = User page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = User talk:Example/test]]}, | + | | page = User talk:Example/test]], 'Any talk page text.'}, |
}) | }) | ||
end | end | ||
function p:test_new() | function p:test_new() | ||
| − | self: | + | self:preprocess_equals_many('{{#invoke:Namespace detect/sandbox|main', '}}', { |
| − | {[[]]}, | + | {[[]], ''}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 68: | Line 69: | ||
| user = User page text. | | user = User page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = User talk:Example/test]]}, | + | | page = User talk:Example/test]], ''}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 74: | Line 75: | ||
| user = User page text. | | user = User page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = User:Example/test]]}, | + | | page = User:Example/test]], 'User page text.'}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 80: | Line 81: | ||
| user = User page text. | | user = User page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = User talk:Example/test]]}, | + | | page = User talk:Example/test]], 'Other pages text.'}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 86: | Line 87: | ||
| user = User page text. | | user = User page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = User talk:Example/test]]}, | + | | page = User talk:Example/test]], 'talk page text with a delete character here: ""'}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 93: | Line 94: | ||
| user = User page text. | | user = User page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | demospace = Wikipedia ]]}, | + | | demospace = Wikipedia ]], 'Wikipedia page text.'}, |
{[[ | {[[ | ||
| main = | | main = | ||
| Line 99: | Line 100: | ||
| user = User page text. | | user = User page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = Foo]]}, | + | | page = Foo]], ''}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 105: | Line 106: | ||
| user = | | user = | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = User:Example/test]]}, | + | | page = User:Example/test]], ''}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 112: | Line 113: | ||
| book = Book page text. | | book = Book page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = Book:Foo]]}, | + | | page = Book:Foo]], 'Book page text.'}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 119: | Line 120: | ||
| image = Image page text. | | image = Image page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = File:Foo]]}, | + | | page = File:Foo]], 'Image page text.'}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 126: | Line 127: | ||
| file = File page text. | | file = File page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = File:Foo]]}, | + | | page = File:Foo]], 'File page text.'}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 133: | Line 134: | ||
| image = | | image = | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = File:Foo]]}, | + | | page = File:Foo]], ''}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 140: | Line 141: | ||
| file = | | file = | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = File:Foo]]}, | + | | page = File:Foo]], ''}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 147: | Line 148: | ||
| mediawiki = MediaWiki page text. | | mediawiki = MediaWiki page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = MediaWiki:Foo]]}, | + | | page = MediaWiki:Foo]], 'MediaWiki page text.'}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 154: | Line 155: | ||
| template = Template page text. | | template = Template page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = Template:Foo]]}, | + | | page = Template:Foo]], 'Template page text.'}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 161: | Line 162: | ||
| image = Image page text. | | image = Image page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = Help:Foo]]}, | + | | page = Help:Foo]], 'Help page text.'}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 168: | Line 169: | ||
| category = Category page text. | | category = Category page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = Category:Foo]]}, | + | | page = Category:Foo]], 'Category page text.'}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 175: | Line 176: | ||
| portal = Portal page text. | | portal = Portal page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = Portal:Foo]]}, | + | | page = Portal:Foo]], 'Portal page text.'}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 182: | Line 183: | ||
| nonexistent = Nonexistent namespace page text. | | nonexistent = Nonexistent namespace page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = Nonexistent:Foo]]}, | + | | page = Nonexistent:Foo]], 'Article text.'}, |
{[[ | {[[ | ||
| main = Article text. | | main = Article text. | ||
| Line 189: | Line 190: | ||
| nonexistent = Nonexistent namespace page text. | | nonexistent = Nonexistent namespace page text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | demospace = Nonexistent]]}, | + | | demospace = Nonexistent]], 'Other pages text.'}, |
}) | }) | ||
end | end | ||
function p:test_bad_titles() | function p:test_bad_titles() | ||
| − | self: | + | self:preprocess_equals_many('{{#invoke:Namespace detect/sandbox|main', '}}', { |
| − | {[[ | + | {[==[ |
| + | | main = Article text. | ||
| + | | talk = Any talk page text. | ||
| + | | user = User page text. | ||
| + | | other = Other pages text. | ||
| + | | page = Talk:Square [[brackets]] aren't allowed in page titles]==], 'Other pages text.'}, | ||
| + | }) | ||
| + | end | ||
| + | |||
| + | function p:test_subject_namespaces() | ||
| + | self:preprocess_equals_many('{{#invoke:Namespace detect/sandbox|main', '}}', { | ||
| + | {[==[ | ||
| + | | main = Article text. | ||
| + | | talk = Any talk page text. | ||
| + | | user = User page text. | ||
| + | | other = Other pages text. | ||
| + | | page = Talk:Foo]==], 'Any talk page text.'}, | ||
| + | {[==[ | ||
| + | | subjectns = yes | ||
| + | | main = Article text. | ||
| + | | talk = Any talk page text. | ||
| + | | user = User page text. | ||
| + | | other = Other pages text. | ||
| + | | page = Talk:Foo]==], 'Article text.'}, | ||
| + | {[==[ | ||
| + | | subjectns = no | ||
| + | | main = Article text. | ||
| + | | talk = Any talk page text. | ||
| + | | user = User page text. | ||
| + | | other = Other pages text. | ||
| + | | page = Talk:Foo]==], 'Any talk page text.'}, | ||
| + | {[==[ | ||
| + | | subjectns = yes | ||
| + | | main = Article text. | ||
| + | | talk = Any talk page text. | ||
| + | | user = User page text. | ||
| + | | other = Other pages text. | ||
| + | | page = Wikipedia talk:Foo]==], 'Other pages text.'}, | ||
| + | }) | ||
| + | end | ||
| + | |||
| + | function p:test_multiple_word_namespaces() | ||
| + | self:preprocess_equals_many('{{#invoke:Namespace detect/sandbox|main', '}}', { | ||
| + | {[==[ | ||
| main = Article text. | | main = Article text. | ||
| talk = Any talk page text. | | talk = Any talk page text. | ||
| user = User page text. | | user = User page text. | ||
| + | | education program = Education Program pages text. | ||
| other = Other pages text. | | other = Other pages text. | ||
| − | | page = | + | | page = Education Program:Foo]==], 'Education Program pages text.'}, |
}) | }) | ||
| + | end | ||
| + | |||
| + | function p:test_returning_false() | ||
| + | self:equals('Return false from article', nsDetect{page = 'Wikipedia', main = false}, false) | ||
| + | self:equals('Return false from talk page', nsDetect{page = 'Talk:Wikipedia', main = true, talk = false}, false) | ||
| + | self:equals('Return false from category page', nsDetect{page = 'Category:Wikipedians', main = true, talk = true, category = false}, false) | ||
| + | self:equals('Return false from other page', nsDetect{page = 'Template:Pagetype', main = true, talk = true, other = false}, false) | ||
end | end | ||
return p | return p | ||
Latest revision as of 08:05, 27 September 2020
Documentation for this module may be created at Module:Namespace detect/testcases/doc
-- Example Unit tests for [[Module:Namespace detect]]. Click talk page to run tests.
local p = require('Module:UnitTests')
local nsDetect = require('Module:Namespace detect/sandbox')._main
function p:test_template_testcases_page()
self:preprocess_equals_many('{{#invoke:Namespace detect/sandbox|main', '}}', {
{[[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.]], 'Any talk page text.'},
{[[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| demospace = ]], 'Any talk page text.'},
{[[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| demospace = main]], 'Article text.'},
{[[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| demospace = talk]], 'Any talk page text.'},
{[[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| demospace = help talk]], 'Other pages text.'},
{[[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| page = ]], 'Any talk page text.'},
{[[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| page = Example/test]], 'Article text.'},
{[[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| page = User:Example/test]], 'User page text.'},
{[[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| page = User talk:Example/test]], 'Any talk page text.'},
})
end
function p:test_new()
self:preprocess_equals_many('{{#invoke:Namespace detect/sandbox|main', '}}', {
{[[]], ''},
{[[
| main = Article text.
| talk =
| user = User page text.
| other = Other pages text.
| page = User talk:Example/test]], ''},
{[[
| main = Article text.
| talk =
| user = User page text.
| other = Other pages text.
| page = User:Example/test]], 'User page text.'},
{[[
| main = Article text.
| TALK = Talk page text.
| user = User page text.
| other = Other pages text.
| page = User talk:Example/test]], 'Other pages text.'},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| other = Other pages text.
| page = User talk:Example/test]], 'talk page text with a delete character here: ""'},
{[[
| main = Article text.
| talk = Talk page text.
| wikipedia = Wikipedia page text.
| user = User page text.
| other = Other pages text.
| demospace = Wikipedia ]], 'Wikipedia page text.'},
{[[
| main =
| talk = talk page text with a delete character here: ""
| user = User page text.
| other = Other pages text.
| page = Foo]], ''},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user =
| other = Other pages text.
| page = User:Example/test]], ''},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| book = Book page text.
| other = Other pages text.
| page = Book:Foo]], 'Book page text.'},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| image = Image page text.
| other = Other pages text.
| page = File:Foo]], 'Image page text.'},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| file = File page text.
| other = Other pages text.
| page = File:Foo]], 'File page text.'},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| image =
| other = Other pages text.
| page = File:Foo]], ''},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| file =
| other = Other pages text.
| page = File:Foo]], ''},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| mediawiki = MediaWiki page text.
| other = Other pages text.
| page = MediaWiki:Foo]], 'MediaWiki page text.'},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| template = Template page text.
| other = Other pages text.
| page = Template:Foo]], 'Template page text.'},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| help = Help page text.
| image = Image page text.
| other = Other pages text.
| page = Help:Foo]], 'Help page text.'},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| category = Category page text.
| other = Other pages text.
| page = Category:Foo]], 'Category page text.'},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| portal = Portal page text.
| other = Other pages text.
| page = Portal:Foo]], 'Portal page text.'},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| nonexistent = Nonexistent namespace page text.
| other = Other pages text.
| page = Nonexistent:Foo]], 'Article text.'},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| nonexistent = Nonexistent namespace page text.
| other = Other pages text.
| demospace = Nonexistent]], 'Other pages text.'},
})
end
function p:test_bad_titles()
self:preprocess_equals_many('{{#invoke:Namespace detect/sandbox|main', '}}', {
{[==[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| page = Talk:Square [[brackets]] aren't allowed in page titles]==], 'Other pages text.'},
})
end
function p:test_subject_namespaces()
self:preprocess_equals_many('{{#invoke:Namespace detect/sandbox|main', '}}', {
{[==[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| page = Talk:Foo]==], 'Any talk page text.'},
{[==[
| subjectns = yes
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| page = Talk:Foo]==], 'Article text.'},
{[==[
| subjectns = no
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| page = Talk:Foo]==], 'Any talk page text.'},
{[==[
| subjectns = yes
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| page = Wikipedia talk:Foo]==], 'Other pages text.'},
})
end
function p:test_multiple_word_namespaces()
self:preprocess_equals_many('{{#invoke:Namespace detect/sandbox|main', '}}', {
{[==[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| education program = Education Program pages text.
| other = Other pages text.
| page = Education Program:Foo]==], 'Education Program pages text.'},
})
end
function p:test_returning_false()
self:equals('Return false from article', nsDetect{page = 'Wikipedia', main = false}, false)
self:equals('Return false from talk page', nsDetect{page = 'Talk:Wikipedia', main = true, talk = false}, false)
self:equals('Return false from category page', nsDetect{page = 'Category:Wikipedians', main = true, talk = true, category = false}, false)
self:equals('Return false from other page', nsDetect{page = 'Template:Pagetype', main = true, talk = true, other = false}, false)
end
return p