Difference between revisions of "Module:Namespace detect/testcases"

From blackwiki
Jump to navigation Jump to search
blackwiki>Mr. Stradivarius
(adding the function name would be helpful)
m (17 revisions imported)
 
(7 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')._main
+
local nsDetect = require('Module:Namespace detect/sandbox')._main
  
 
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', '}}', {
         {[[]]},
+
         {[[]], ''},
 
         {[[
 
         {[[
 
| 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
 +
 
 +
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
 
end
Line 241: Line 253:
 
     self:equals('Return false from talk page', nsDetect{page = 'Talk:Wikipedia', main = true, talk = 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 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