Module:About/testcases

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