<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3AFile_link%2Ftestcases</id>
	<title>Module:File link/testcases - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3AFile_link%2Ftestcases"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:File_link/testcases&amp;action=history"/>
	<updated>2026-05-28T17:09:03Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:File_link/testcases&amp;diff=136174&amp;oldid=prev</id>
		<title>imported&gt;Mr. Stradivarius: add an ugly hack to make the border param work in the order test</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:File_link/testcases&amp;diff=136174&amp;oldid=prev"/>
		<updated>2014-12-18T13:23:41Z</updated>

		<summary type="html">&lt;p&gt;add an ugly hack to make the border param work in the order test&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Unit tests for [[Module:File link]]. Click on the talk page to run the tests.&lt;br /&gt;
&lt;br /&gt;
local mFileLink = require(&amp;#039;Module:File link/sandbox&amp;#039;)&lt;br /&gt;
local main = mFileLink.main&lt;br /&gt;
local _main = mFileLink._main&lt;br /&gt;
local ScribuntoUnit = require(&amp;#039;Module:ScribuntoUnit&amp;#039;)&lt;br /&gt;
local suite = ScribuntoUnit:new()&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Helper functions&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function suite:assertError(func, ...)&lt;br /&gt;
	local success, result = pcall(func, ...)&lt;br /&gt;
	self:assertFalse(success)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:assertNotError(func, ...)&lt;br /&gt;
	local success, result = pcall(func, ...)&lt;br /&gt;
	self:assertTrue(success)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:assertPositionalParamExists(key)&lt;br /&gt;
	self:assertEquals(&lt;br /&gt;
		_main{file = &amp;#039;Example.png&amp;#039;, [key] = &amp;#039;some value&amp;#039;},&lt;br /&gt;
		&amp;#039;[[File:Example.png|some value]]&amp;#039;&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:assertNamedParamExists(key)&lt;br /&gt;
	self:assertEquals(&lt;br /&gt;
		_main{file = &amp;#039;Example.png&amp;#039;, [key] = &amp;#039;some value&amp;#039;},&lt;br /&gt;
		&amp;#039;[[File:Example.png|&amp;#039; .. key .. &amp;#039;=some value]]&amp;#039;&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Basic tests&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function suite:testBadInput()&lt;br /&gt;
	self:assertError(_main)&lt;br /&gt;
	self:assertError(_main, &amp;#039;foo&amp;#039;)&lt;br /&gt;
	self:assertError(_main, false)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testBadFile()&lt;br /&gt;
	self:assertError(_main, {})&lt;br /&gt;
	self:assertError(_main, {file = true})&lt;br /&gt;
	self:assertError(_main, {file = 123})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testFile()&lt;br /&gt;
	self:assertEquals(_main{file = &amp;#039;Example.png&amp;#039;}, &amp;#039;[[File:Example.png]]&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Positional parameters&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function suite:testFormat()&lt;br /&gt;
	self:assertPositionalParamExists(&amp;#039;format&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testLocation()&lt;br /&gt;
	self:assertPositionalParamExists(&amp;#039;location&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testAlignment()&lt;br /&gt;
	self:assertPositionalParamExists(&amp;#039;alignment&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testSize()&lt;br /&gt;
	self:assertPositionalParamExists(&amp;#039;size&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testCaption()&lt;br /&gt;
	self:assertPositionalParamExists(&amp;#039;caption&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Named parameters&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function suite:testUpright()&lt;br /&gt;
	self:assertNamedParamExists(&amp;#039;upright&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testLink()&lt;br /&gt;
	self:assertNamedParamExists(&amp;#039;link&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testAlt()&lt;br /&gt;
	self:assertNamedParamExists(&amp;#039;alt&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testPage()&lt;br /&gt;
	self:assertNamedParamExists(&amp;#039;page&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testClass()&lt;br /&gt;
	self:assertNamedParamExists(&amp;#039;class&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testLang()&lt;br /&gt;
	self:assertNamedParamExists(&amp;#039;lang&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testStart()&lt;br /&gt;
	self:assertNamedParamExists(&amp;#039;start&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testEnd()&lt;br /&gt;
	self:assertNamedParamExists(&amp;#039;end&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testThumbtime()&lt;br /&gt;
	self:assertNamedParamExists(&amp;#039;thumbtime&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Special parameters&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function suite:testBorder()&lt;br /&gt;
	self:assertEquals(&lt;br /&gt;
		_main{file = &amp;#039;Example.png&amp;#039;, border = true},&lt;br /&gt;
		&amp;#039;[[File:Example.png|border]]&amp;#039;&lt;br /&gt;
	)&lt;br /&gt;
	self:assertEquals(&lt;br /&gt;
		_main{file = &amp;#039;Example.png&amp;#039;, border = &amp;#039;yes&amp;#039;},&lt;br /&gt;
		&amp;#039;[[File:Example.png|border]]&amp;#039;&lt;br /&gt;
	)&lt;br /&gt;
	self:assertEquals(&lt;br /&gt;
		_main{file = &amp;#039;Example.png&amp;#039;, border = &amp;#039;y&amp;#039;},&lt;br /&gt;
		&amp;#039;[[File:Example.png|border]]&amp;#039;&lt;br /&gt;
	)&lt;br /&gt;
	self:assertEquals(&lt;br /&gt;
		_main{file = &amp;#039;Example.png&amp;#039;, border = &amp;#039;YES&amp;#039;},&lt;br /&gt;
		&amp;#039;[[File:Example.png|border]]&amp;#039;&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testFormatfileWithFormat()&lt;br /&gt;
	self:assertEquals(&lt;br /&gt;
		_main{file = &amp;#039;Example.png&amp;#039;, format = &amp;#039;a format&amp;#039;, formatfile = &amp;#039;foo&amp;#039;},&lt;br /&gt;
		&amp;#039;[[File:Example.png|a format=foo]]&amp;#039;&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testFormatfileWithoutFormat()&lt;br /&gt;
	self:assertEquals(&lt;br /&gt;
		_main{file = &amp;#039;Example.png&amp;#039;, formatfile = &amp;#039;foo&amp;#039;},&lt;br /&gt;
		&amp;#039;[[File:Example.png]]&amp;#039;&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Order&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function suite:testOrder()&lt;br /&gt;
	local params = {&lt;br /&gt;
		&amp;#039;file&amp;#039;,&lt;br /&gt;
		&amp;#039;format&amp;#039;,&lt;br /&gt;
		&amp;#039;formatfile&amp;#039;,&lt;br /&gt;
		&amp;#039;border&amp;#039;,&lt;br /&gt;
		&amp;#039;location&amp;#039;,&lt;br /&gt;
		&amp;#039;alignment&amp;#039;,&lt;br /&gt;
		&amp;#039;size&amp;#039;,&lt;br /&gt;
		&amp;#039;upright&amp;#039;,&lt;br /&gt;
		&amp;#039;link&amp;#039;,&lt;br /&gt;
		&amp;#039;alt&amp;#039;,&lt;br /&gt;
		&amp;#039;page&amp;#039;,&lt;br /&gt;
		&amp;#039;class&amp;#039;,&lt;br /&gt;
		&amp;#039;lang&amp;#039;,&lt;br /&gt;
		&amp;#039;start&amp;#039;,&lt;br /&gt;
		&amp;#039;end&amp;#039;,&lt;br /&gt;
		&amp;#039;thumbtime&amp;#039;,&lt;br /&gt;
		&amp;#039;caption&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
	local args = {}&lt;br /&gt;
	for i, param in ipairs(params) do&lt;br /&gt;
		args[param] = &amp;#039;param &amp;#039; .. i&lt;br /&gt;
	end&lt;br /&gt;
	args.border = true -- border is a special case&lt;br /&gt;
	local result = _main(args)&lt;br /&gt;
&lt;br /&gt;
	-- Ugly hack to make border work whatever position it&amp;#039;s in.&lt;br /&gt;
	local borderNum&lt;br /&gt;
	for i, v in ipairs(params) do&lt;br /&gt;
		if v == &amp;#039;border&amp;#039; then&lt;br /&gt;
			borderNum = i&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	result = result:gsub(&amp;#039;border&amp;#039;, &amp;#039;param &amp;#039; .. borderNum, 1)&lt;br /&gt;
&lt;br /&gt;
	local i = 0&lt;br /&gt;
	for s in string.gmatch(result, &amp;#039;param %d+&amp;#039;) do&lt;br /&gt;
		i = i + 1&lt;br /&gt;
		suite:assertEquals(s, &amp;#039;param &amp;#039; .. i)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return suite&lt;/div&gt;</summary>
		<author><name>imported&gt;Mr. Stradivarius</name></author>
	</entry>
</feed>