Module:About/testcases
Documentation for this module may be created at Module:About/testcases/doc
local mAbout = require('Module:About/sandbox') local about = mAbout._about local ScribuntoUnit = require('Module:ScribuntoUnit') local suite = ScribuntoUnit:new() -------------------------------------------------------------------------------- -- Basic functionality -------------------------------------------------------------------------------- function suite:testBasicBlank() local result = about() --Current functionality. Should probably throw an error if blank in future. self:assertStringContains('For other uses, see [[:About/testcases (disambiguation)]].', result, true) end function suite:testBasicUse1() --Article namespace local result = about({ [1] = 'USE1' }, {PageType = 'article'}) self:assertStringContains('This article is about USE1. For other uses, see [[:About/testcases (disambiguation)]].', result, true) --Category namespace result = about({ [1] = 'USE1' }, {PageType = 'category'}) self:assertStringContains('This category is about USE1. For other uses, see [[:About/testcases (disambiguation)]].', result, true) --All other namespaces result = about({ [1] = 'USE1' }, {PageType = 'page'}) self:assertStringContains('This page is about USE1. For other uses, see [[:About/testcases (disambiguation)]].', result, true) end function suite:testBasicUse2() local result = about({ [1] = 'USE1', [2] = 'USE2' }, {PageType = 'article'}) self:assertStringContains('This article is about USE1. For USE2, see [[:About/testcases (disambiguation)]].', result, true) end function suite:testBasicPage1() local result = about({ [1] = 'USE1', [2] = 'USE2', [3] = 'PAGE1' }, {PageType = 'article'}) self:assertStringContains('This article is about USE1. For USE2, see [[:PAGE1]].', result, true) end function suite:testBasicUse3() local result = about({ [1] = 'USE1', [2] = 'USE2', [3] = 'PAGE1', [4] = 'USE3' }, {PageType = 'article'}) self:assertStringContains('This article is about USE1. For USE2, see [[:PAGE1]]. For USE3, see [[:About/testcases (disambiguation)]]', result, true) end function suite:testBasicPage2() local result = about({ [1] = 'USE1', [2] = 'USE2', [3] = 'PAGE1', [4] = 'USE3', [5] = 'PAGE2' }, {PageType = 'article'}) self:assertStringContains('This article is about USE1. For USE2, see [[:PAGE1]]. For USE3, see [[:PAGE2]]', result, true) end -------------------------------------------------------------------------------- -- "and" functionality -------------------------------------------------------------------------------- function suite:testAnd1And() local result = about({ [1] = 'USE1', [2] = 'USE2', [3] = 'PAGE1', [4] = 'and', [5] = 'PAGE2' }, {PageType = 'article'}) self:assertStringContains('This article is about USE1. For USE2, see [[:PAGE1]] and [[:PAGE2]]', result, true) end function suite:testAnd2Ands() local result = about({ [1] = 'USE1', [2] = 'USE2', [3] = 'PAGE1', [4] = 'and', [5] = 'PAGE2', [6] = 'and', [7] = 'PAGE3' }, {PageType = 'article'}) self:assertStringContains('This article is about USE1. For USE2, see [[:PAGE1]], [[:PAGE2]], and [[:PAGE3]]', result, true) end function suite:testAnd3Ands() local result = about({ [1] = 'USE1', [2] = 'USE2', [3] = 'PAGE1', [4] = 'and', [5] = 'PAGE2', [6] = 'and', [7] = 'PAGE3', [8] = 'and', [9] = 'PAGE4' }, {PageType = 'article'}) self:assertStringContains('This article is about USE1. For USE2, see [[:PAGE1]], [[:PAGE2]], [[:PAGE3]], and [[:PAGE4]]', result, true) end function suite:testAnd1And1BeforeFor() local result = about({ [1] = 'USE1', [2] = 'USE2', [3] = 'PAGE1', [4] = 'and', [5] = 'PAGE2', [6] = 'USE3', [7] = 'PAGE3' }, {PageType = 'article'}) self:assertStringContains('This article is about USE1. For USE2, see [[:PAGE1]] and [[:PAGE2]]. For USE3, see [[:PAGE3]].', result, true) end function suite:testAnd1And1BeforeAnd1() local result = about({ [1] = 'USE1', [2] = 'USE2', [3] = 'PAGE1', [4] = 'and', [5] = 'PAGE2', [6] = 'USE3', [7] = 'PAGE3', [8] = 'and', [9] = 'PAGE4' }, {PageType = 'article'}) self:assertStringContains('This article is about USE1. For USE2, see [[:PAGE1]] and [[:PAGE2]]. For USE3, see [[:PAGE3]] and [[:PAGE4]].', result, true) end -------------------------------------------------------------------------------- -- otherText functionality -------------------------------------------------------------------------------- function suite:testOtherText() local result = about({ [1] = 'USE1', [3] = 'PAGE1' }, { otherText = 'other values of otherText', PageType = 'article' }) self:assertStringContains('This article is about USE1. For other values of otherText, see [[:PAGE1]]', result, true) end -------------------------------------------------------------------------------- -- otherText functionality -------------------------------------------------------------------------------- function suite:testNoSelfref() local result = about({ [1] = 'USE1', [2] = 'PAGE1', }) self:assertNotStringContains('selfref', result, true) end function suite:testSelfref() local result = about({ [1] = 'USE1', [2] = 'PAGE1', ['selfref'] = 'true' }) self:assertStringContains('selfref', result, true) end -------------------------------------------------------------------------------- -- Defaulting functionality -------------------------------------------------------------------------------- --TODO -------------------------------------------------------------------------------- return suite