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

From blackwiki
Jump to navigation Jump to search
blackwiki>Mr. Stradivarius
(use a real delete character)
m (17 revisions imported)
 
(14 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:preprocess_equals_preprocess_many('{{#invoke:Namespace detect|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 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:preprocess_equals_preprocess_many('{{#invoke:Namespace detect|main', '}}', '{{namespace detect', '}}', {
+
     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 =
 +
| 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
 
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
 
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