Jump to content

Module:Namespace detect/testcases: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
add a test for multiple word namespaces
test using preprocess_equals_many instead of preprocess_equals_preprocess_many
Line 4: Line 4:


function p:test_template_testcases_page()
function p:test_template_testcases_page()
self:preprocess_equals_preprocess_many('{{#invoke:Namespace detect/sandbox|main', '}}', '{{namespace detect', '}}', {
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 15: 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 21: 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 27: 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 33: 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 39: 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 45: 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 51: 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 57: 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:preprocess_equals_preprocess_many('{{#invoke:Namespace detect/sandbox|main', '}}', '{{namespace detect', '}}', {
self:preprocess_equals_many('{{#invoke:Namespace detect/sandbox|main', '}}', '{{namespace detect', '}}', {
{[[]]},
{[[]], ''},
{[[
{[[
| main = Article text.
| main = Article text.
Line 69: 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 75: 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 81: 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 87: 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 94: 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 100: 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 106: 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 113: 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 120: 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 127: 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 134: 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 141: 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 148: 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 155: 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 162: 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 169: 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 176: 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 183: 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 190: 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:preprocess_equals_preprocess_many('{{#invoke:Namespace detect/sandbox|main', '}}', '{{namespace detect', '}}', {
self:preprocess_equals_many('{{#invoke:Namespace detect/sandbox|main', '}}', {
{[==[
{[==[
| main = Article text.
| main = Article text.
Line 201: Line 201:
| user = User page text.
| user = User page text.
| other = Other pages text.
| other = Other pages text.
| page = Talk:Square [[brackets]] aren't allowed in page titles]==]},
| page = Talk:Square [[brackets]] aren't allowed in page titles]==], 'Other pages text.'},
})
})
end
end


function p:test_subject_namespaces()
function p:test_subject_namespaces()
self:preprocess_equals_preprocess_many('{{#invoke:Namespace detect/sandbox|main', '}}', '{{namespace detect', '}}', {
self:preprocess_equals_many('{{#invoke:Namespace detect/sandbox|main', '}}', {
{[==[
{[==[
| main = Article text.
| main = Article text.
Line 212: Line 212:
| user = User page text.
| user = User page text.
| other = Other pages text.
| other = Other pages text.
| page = Talk:Foo]==]},
| page = Talk:Foo]==], 'Any talk page text.'},
{[==[
{[==[
| subjectns = yes
| subjectns = yes
Line 219: Line 219:
| user = User page text.
| user = User page text.
| other = Other pages text.
| other = Other pages text.
| page = Talk:Foo]==]},
| page = Talk:Foo]==]}, 'Article text.',
{[==[
{[==[
| subjectns = no
| subjectns = no
Line 226: Line 226:
| user = User page text.
| user = User page text.
| other = Other pages text.
| other = Other pages text.
| page = Talk:Foo]==]},
| page = Talk:Foo]==], 'Any talk page text.'},
{[==[
{[==[
| subjectns = yes
| subjectns = yes
Line 233: Line 233:
| user = User page text.
| user = User page text.
| other = Other pages text.
| other = Other pages text.
| page = Wikipedia talk:Foo]==]},
| page = Wikipedia talk:Foo]==], 'Other pages text.'},
})
})
end
end


function p:test_multiple_word_namespaces()
function p:test_multiple_word_namespaces()
self:preprocess_equals_preprocess_many('{{#invoke:Namespace detect/sandbox|main', '}}', '{{namespace detect', '}}', {
self:preprocess_equals_many('{{#invoke:Namespace detect/sandbox|main', '}}', {
{[==[
{[==[
| main = Article text.
| main = Article text.
Line 245: Line 245:
| education program = Education Program pages text.
| education program = Education Program pages text.
| other = Other pages text.
| other = Other pages text.
| page = Education Program:Foo]==]},
| page = Education Program:Foo]==], 'Education Program pages text.'},
})
})
end
end

Revision as of 13:54, 27 October 2013

-- 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', '}}', '{{namespace detect', '}}', {
        {[[]], ''},
        {[[
| 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