<link href="../fonts/font.css" rel="stylesheet" type="text/css">

<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
		<id>https://wiki.imaroof.ir/index.php?action=history&amp;feed=atom&amp;title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86%3AHatnote%2Ftestcases</id>
		<title>پودمان:Hatnote/testcases - تاریخچهٔ ویرایش‌ها</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.imaroof.ir/index.php?action=history&amp;feed=atom&amp;title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86%3AHatnote%2Ftestcases"/>
		<link rel="alternate" type="text/html" href="https://wiki.imaroof.ir/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Hatnote/testcases&amp;action=history"/>
		<updated>2026-08-02T06:30:21Z</updated>
		<subtitle>تاریخچهٔ ویرایش‌های این صفحه در ویکی</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://wiki.imaroof.ir/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Hatnote/testcases&amp;diff=869&amp;oldid=prev</id>
		<title>Admin: ۱ نسخه واردشده</title>
		<link rel="alternate" type="text/html" href="https://wiki.imaroof.ir/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Hatnote/testcases&amp;diff=869&amp;oldid=prev"/>
				<updated>2016-03-03T11:20:19Z</updated>
		
		<summary type="html">&lt;p&gt;۱ نسخه واردشده&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;tr style='vertical-align: top;' lang='fa'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;→ نسخهٔ قدیمی‌تر&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;نسخهٔ ‏۱۳ اسفند ۱۳۹۴، ساعت ۱۱:۲۰&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='fa'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(بدون تفاوت)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.imaroof.ir/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Hatnote/testcases&amp;diff=868&amp;oldid=prev</id>
		<title>Matt Fitzpatrick: adding accessibility context role=&quot;note&quot; (see Template talk:Hatnote</title>
		<link rel="alternate" type="text/html" href="https://wiki.imaroof.ir/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Hatnote/testcases&amp;diff=868&amp;oldid=prev"/>
				<updated>2016-02-05T22:10:24Z</updated>
		
		<summary type="html">&lt;p&gt;adding accessibility context role=&amp;quot;note&amp;quot; (see &lt;a href=&quot;/index.php?title=%D8%A8%D8%AD%D8%AB_%D8%A7%D9%84%DA%AF%D9%88:Hatnote&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;بحث الگو:Hatnote (صفحه وجود ندارد)&quot;&gt;Template talk:Hatnote&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحهٔ تازه&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local mHatnote = require('Module:Hatnote/sandbox') -- the module to be tested&lt;br /&gt;
local ScribuntoUnit = require('Module:ScribuntoUnit')&lt;br /&gt;
local suite = ScribuntoUnit:new()&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:assertNotEquals(expected, actual)&lt;br /&gt;
	self:assertTrue(expected ~= actual)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:assertParentFrameCallEquals(expected, func, args)&lt;br /&gt;
	args = args or {}&lt;br /&gt;
	local current = mw.getCurrentFrame()&lt;br /&gt;
	local parent = current:newChild{title = 'Parent', args = args}&lt;br /&gt;
	local child = parent:newChild{title = 'Child'}&lt;br /&gt;
	self:assertEquals(expected, func(child))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
-- findNamespaceId tests&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function suite:testFindNamespaceIdInputErrors()&lt;br /&gt;
    self:assertError(mHatnote.findNamespaceId, 9)&lt;br /&gt;
    self:assertError(mHatnote.findNamespaceId)&lt;br /&gt;
    self:assertError(mHatnote.findNamespaceId, 'A page', 9)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testFindNamespaceIdNamespaces()&lt;br /&gt;
	self:assertEquals(0, mHatnote.findNamespaceId('Foo'))&lt;br /&gt;
	self:assertEquals(2, mHatnote.findNamespaceId('User:Example'))&lt;br /&gt;
	self:assertEquals(14, mHatnote.findNamespaceId('Category:Example'))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testFindNamespaceIdColonRemoval()&lt;br /&gt;
	self:assertEquals(14, mHatnote.findNamespaceId(':Category:Example'))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testFindNamespaceIdSkipColonRemoval()&lt;br /&gt;
	self:assertNotEquals(14, mHatnote.findNamespaceId(':Category:Example', false))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
-- formatPages tests&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function suite:testFormatPages()&lt;br /&gt;
	self:assertDeepEquals({'[[:Foo]]', '[[:Bar]]'}, mHatnote.formatPages('Foo', 'Bar'))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
-- formatPageTables tests&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function suite:testFormatPageTables()&lt;br /&gt;
	self:assertDeepEquals(&lt;br /&gt;
		{'[[:Foo|foo]]', '[[:Bar|bar]]'},&lt;br /&gt;
		mHatnote.formatPageTables({'Foo', 'foo'}, {'Bar', 'bar'})&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
-- makeWikitextError tests&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function suite:testMakeWikitextError()&lt;br /&gt;
	self:assertEquals(&lt;br /&gt;
		'&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;Error: Foo.&amp;lt;/strong&amp;gt;[[Category:Hatnote templates with errors]]',&lt;br /&gt;
		mHatnote.makeWikitextError('Foo', nil, nil, mw.title.new('Example'))&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testMakeWikitextErrorHelpLink()&lt;br /&gt;
	self:assertEquals(&lt;br /&gt;
		'&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;Error: Foo ([[Bar|help]]).&amp;lt;/strong&amp;gt;[[Category:Hatnote templates with errors]]',&lt;br /&gt;
		mHatnote.makeWikitextError('Foo', 'Bar', nil, mw.title.new('Example'))&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testMakeWikitextErrorManualCategorySuppression()&lt;br /&gt;
	self:assertEquals(&lt;br /&gt;
		'&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;Error: Foo.&amp;lt;/strong&amp;gt;',&lt;br /&gt;
		mHatnote.makeWikitextError('Foo', nil, false, mw.title.new('Example'))&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testMakeWikitextErrorTalkPageCategorySuppression()&lt;br /&gt;
	self:assertEquals(&lt;br /&gt;
		'&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;Error: Foo.&amp;lt;/strong&amp;gt;',&lt;br /&gt;
		mHatnote.makeWikitextError('Foo', nil, nil, mw.title.new('Talk:Example'))&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
-- formatLink tests&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function suite:testFormatLink()&lt;br /&gt;
	self:assertEquals('[[:Foo]]', mHatnote._formatLink('Foo'))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testFormatLinkColonHandling()&lt;br /&gt;
	self:assertEquals('[[:Category:Foo]]', mHatnote._formatLink(':Category:Foo'))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testFormatLinkSectionLinking()&lt;br /&gt;
	self:assertEquals('[[:Foo#Bar|Foo § Bar]]', mHatnote._formatLink('Foo#Bar'))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testFormatLinkPipeHandling()&lt;br /&gt;
	self:assertEquals('[[:Foo|Bar]]', mHatnote._formatLink('Foo|Bar'))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testFormatLinkDisplay()&lt;br /&gt;
	self:assertEquals('[[:Foo|Bar]]', mHatnote._formatLink('Foo', 'Bar'))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testFormatLinkEntryPoint()&lt;br /&gt;
	self:assertParentFrameCallEquals('[[:Foo]]', mHatnote.formatLink, {'Foo'})&lt;br /&gt;
	self:assertParentFrameCallEquals('[[:Foo|Bar]]', mHatnote.formatLink, {'Foo', 'Bar'})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
-- hatnote tests&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function suite:testHatnoteInputErrors()&lt;br /&gt;
    self:assertError(mHatnote._hatnote, 9)&lt;br /&gt;
    self:assertError(mHatnote._hatnote)&lt;br /&gt;
    self:assertError(mHatnote._hatnote, 'A page', 9)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testHatnote()&lt;br /&gt;
	self:assertEquals('&amp;lt;div role=&amp;quot;note&amp;quot; class=&amp;quot;hatnote&amp;quot;&amp;gt;Foo&amp;lt;/div&amp;gt;', mHatnote._hatnote('Foo'))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testHatnoteSelfref()&lt;br /&gt;
	self:assertEquals(&lt;br /&gt;
		'&amp;lt;div role=&amp;quot;note&amp;quot; class=&amp;quot;hatnote selfref&amp;quot;&amp;gt;Foo&amp;lt;/div&amp;gt;',&lt;br /&gt;
		mHatnote._hatnote('Foo', {selfref = true})&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testHatnoteExtraClasses()&lt;br /&gt;
	self:assertEquals(&lt;br /&gt;
		'&amp;lt;div role=&amp;quot;note&amp;quot; class=&amp;quot;hatnote extraclass&amp;quot;&amp;gt;Foo&amp;lt;/div&amp;gt;',&lt;br /&gt;
		mHatnote._hatnote('Foo', {extraclasses = 'extraclass'})&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testHatnoteEntryPoint()&lt;br /&gt;
	self:assertParentFrameCallEquals(&lt;br /&gt;
		'&amp;lt;div role=&amp;quot;note&amp;quot; class=&amp;quot;hatnote&amp;quot;&amp;gt;Foo&amp;lt;/div&amp;gt;',&lt;br /&gt;
		mHatnote.hatnote,&lt;br /&gt;
		{'Foo'}&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testHatnoteEntryPointSelfref()&lt;br /&gt;
	self:assertParentFrameCallEquals(&lt;br /&gt;
		'&amp;lt;div role=&amp;quot;note&amp;quot; class=&amp;quot;hatnote selfref&amp;quot;&amp;gt;Foo&amp;lt;/div&amp;gt;',&lt;br /&gt;
		mHatnote.hatnote,&lt;br /&gt;
		{'Foo', selfref = 'yes'}&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testHatnoteEntryPointExtraClasses()&lt;br /&gt;
	self:assertParentFrameCallEquals(&lt;br /&gt;
		'&amp;lt;div role=&amp;quot;note&amp;quot; class=&amp;quot;hatnote extraclass&amp;quot;&amp;gt;Foo&amp;lt;/div&amp;gt;',&lt;br /&gt;
		mHatnote.hatnote,&lt;br /&gt;
		{'Foo', extraclasses = 'extraclass'}&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return suite&lt;/div&gt;</summary>
		<author><name>Matt Fitzpatrick</name></author>	</entry>

	</feed>