<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
	<id>http://wiki.nightscout.cz/index.php?action=history&amp;feed=atom&amp;title=Modul%3ATNT%2Ftestcases</id>
	<title>Modul:TNT/testcases - Historie editací</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.nightscout.cz/index.php?action=history&amp;feed=atom&amp;title=Modul%3ATNT%2Ftestcases"/>
	<link rel="alternate" type="text/html" href="http://wiki.nightscout.cz/index.php?title=Modul:TNT/testcases&amp;action=history"/>
	<updated>2026-05-01T06:11:20Z</updated>
	<subtitle>Historie editací této stránky</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>http://wiki.nightscout.cz/index.php?title=Modul:TNT/testcases&amp;diff=393&amp;oldid=prev</id>
		<title>Maska: naimportována 1 revize</title>
		<link rel="alternate" type="text/html" href="http://wiki.nightscout.cz/index.php?title=Modul:TNT/testcases&amp;diff=393&amp;oldid=prev"/>
		<updated>2021-03-23T11:52:17Z</updated>

		<summary type="html">&lt;p&gt;naimportována 1 revize&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Verze z 23. 3. 2021, 13:52&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;cs&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Žádný rozdíl)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Maska</name></author>
	</entry>
	<entry>
		<id>http://wiki.nightscout.cz/index.php?title=Modul:TNT/testcases&amp;diff=392&amp;oldid=prev</id>
		<title>Module&gt;Tacsipacsi: fix some more quotation marks, rename a test case to avoid overwriting a previous one—what language is this that it doesn’t issue even a warning when overwriting methods?!</title>
		<link rel="alternate" type="text/html" href="http://wiki.nightscout.cz/index.php?title=Modul:TNT/testcases&amp;diff=392&amp;oldid=prev"/>
		<updated>2019-06-28T20:40:48Z</updated>

		<summary type="html">&lt;p&gt;fix some more quotation marks, rename a test case to avoid overwriting a previous one—what language is this that it doesn’t issue even a warning when overwriting methods?!&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local ScribuntoUnit = require('Module:ScribuntoUnit')&lt;br /&gt;
local p = ScribuntoUnit:new()&lt;br /&gt;
local libName = 'TNT'&lt;br /&gt;
&lt;br /&gt;
-- Helper to run all tests using sandbox version of the library from the debug console. To run against main lib, use  =p.run()&lt;br /&gt;
function p.runSandbox()&lt;br /&gt;
	local frame = mw.getCurrentFrame():newChild{title='testcases', args={module=libName .. '/sandbox', displayMode='log'}}&lt;br /&gt;
	return p.run(frame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Allow test runner to use both the main library and the sandbox of the library with the same testcases&lt;br /&gt;
function p:module()&lt;br /&gt;
	return self.frame and self.frame.args.module or libName&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:invokeLib(wikicode)&lt;br /&gt;
	return '{{#invoke:' .. p:module() .. '|' .. wikicode .. '}}'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
       Library-specific tests&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
function p:test_msg()&lt;br /&gt;
	-- dataset resolution&lt;br /&gt;
	self:assertResultEquals('text message', p:invokeLib('msg|I18n/Module:TNT/testcases.tab|text'), 'msg01')&lt;br /&gt;
	self:assertResultEquals('text message', p:invokeLib('msg|I18n/Module:TNT/testcases|text'), 'msg02')&lt;br /&gt;
	self:assertResultEquals('text message', p:invokeLib('msg| I18n/Module:TNT/testcases.tab |text'), 'msg03')&lt;br /&gt;
	self:assertResultEquals('text message', p:invokeLib('msg| I18n/Module:TNT/testcases |text'), 'msg04')&lt;br /&gt;
&lt;br /&gt;
	-- spacing&lt;br /&gt;
	self:assertResultEquals('text message', p:invokeLib(' msg | I18n/Module:TNT/testcases.tab | text '), 'msg11')&lt;br /&gt;
	self:assertResultEquals('text message', p:invokeLib(' \n msg \n | \n I18n/Module:TNT/testcases.tab \n | \n text \n '), 'msg12')&lt;br /&gt;
	self:assertResultEquals('текст', p:invokeLib('msg|I18n/Module:TNT/testcases.tab|text|lang=ru'), 'msg13')&lt;br /&gt;
	self:assertResultEquals('text message', p:invokeLib('msg|I18n/Module:TNT/testcases.tab|text|lang=fr'), 'msg14')&lt;br /&gt;
&lt;br /&gt;
	-- 1 parameter&lt;br /&gt;
	self:assertResultEquals('text message a', p:invokeLib('msg|I18n/Module:TNT/testcases.tab|text_1|a'), 'msg21')&lt;br /&gt;
	self:assertResultEquals('text message a', p:invokeLib('msg|I18n/Module:TNT/testcases.tab|text_1| a '), 'msg22')&lt;br /&gt;
	self:assertResultEquals('text message a', p:invokeLib('msg|I18n/Module:TNT/testcases.tab|text_1| \na \n '), 'msg23')&lt;br /&gt;
	self:assertResultEquals('текст абв', p:invokeLib('msg|I18n/Module:TNT/testcases.tab|text_1|абв|lang=ru'), 'msg24')&lt;br /&gt;
&lt;br /&gt;
	-- multiple parameters&lt;br /&gt;
	self:assertResultEquals('text message a and b', p:invokeLib('msg|I18n/Module:TNT/testcases.tab|text_2|a|b'), 'msg31')&lt;br /&gt;
	self:assertResultEquals('text message a and b', p:invokeLib('msg|I18n/Module:TNT/testcases.tab|text_2| a | b '), 'msg32')&lt;br /&gt;
	self:assertResultEquals('text message a and b', p:invokeLib('msg|I18n/Module:TNT/testcases.tab|text_2| \na \n | \nb \n '), 'msg33')&lt;br /&gt;
	self:assertResultEquals('текст абв и где', p:invokeLib('msg|I18n/Module:TNT/testcases.tab|text_2|абв|где|lang=ru'), 'msg34')&lt;br /&gt;
&lt;br /&gt;
	-- parameters as part of wiki text&lt;br /&gt;
	self:assertResultEquals('text message [[a|b]]', p:invokeLib('msg|I18n/Module:TNT/testcases.tab|text_link|a|b'), 'msg41')&lt;br /&gt;
	self:assertResultEquals('text message [[a|b]]', p:invokeLib('msg|I18n/Module:TNT/testcases.tab|text_link| a | b '), 'msg42')&lt;br /&gt;
	self:assertResultEquals('текст [[абв|где]]', p:invokeLib('msg|I18n/Module:TNT/testcases.tab|text_link|абв|где|lang=ru'), 'msg43')&lt;br /&gt;
&lt;br /&gt;
	-- fallbacks&lt;br /&gt;
	self:assertResultEquals('текст', p:invokeLib('msg|I18n/Module:TNT/testcases.tab|text_no_en'), 'msg51')&lt;br /&gt;
	self:assertResultEquals('текст', p:invokeLib('msg|I18n/Module:TNT/testcases.tab|text_no_en|lang=ru'), 'msg52')&lt;br /&gt;
	self:assertResultEquals('текст', p:invokeLib('msg|I18n/Module:TNT/testcases.tab|text_no_en|lang=fr'), 'msg53')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:test_msg_format()&lt;br /&gt;
	local tnt = require('Module:' .. p:module())&lt;br /&gt;
	self:assertEquals('text message', tnt.format('I18n/Module:TNT/testcases', 'text'), 'format01')&lt;br /&gt;
	self:assertEquals('text message a', tnt.format('I18n/Module:TNT/testcases', 'text_1', 'a'), 'format02')&lt;br /&gt;
	self:assertEquals('text message foo and bar', tnt.format('I18n/Module:TNT/testcases', 'text_2', 'foo', 'bar'), 'format03')&lt;br /&gt;
	self:assertEquals('text message foo and bar', tnt.format('I18n/Module:TNT/testcases', 'text_2', {'foo', 'bar'}), 'format04')&lt;br /&gt;
&lt;br /&gt;
	self:assertThrows(function() tnt.format() end, &amp;quot;bad argument #1 to 'format' (string expected, got nil)&amp;quot;, 'format11')&lt;br /&gt;
	self:assertThrows(function() tnt.format('Module:TNT/testcases') end, &amp;quot;bad argument #2 to 'format' (string expected, got nil)&amp;quot;, 'format12')&lt;br /&gt;
	self:assertThrows(function() tnt.format('_bad_name_', 'foo') end, 'Dataset [[c:Data:_bad_name_.tab]] is not valid', 'format13')&lt;br /&gt;
	self:assertThrows(function() tnt.format('I18n/Module:TNT/testcases', '_bad_msg') end, 'Message “_bad_msg” does not exist in dataset [[c:Data:I18n/Module:TNT/testcases]]', 'format14')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:test_msg_format_in_language()&lt;br /&gt;
	local tnt = require('Module:' .. p:module())&lt;br /&gt;
	self:assertEquals('text message', tnt.formatInLanguage('en', 'I18n/Module:TNT/testcases', 'text'), 'formatInLanguage01')&lt;br /&gt;
	self:assertEquals('text message a', tnt.formatInLanguage('en', 'I18n/Module:TNT/testcases', 'text_1', 'a'), 'formatInLanguage02')&lt;br /&gt;
	self:assertEquals('text message foo and bar', tnt.formatInLanguage('en', 'I18n/Module:TNT/testcases', 'text_2', 'foo', 'bar'), 'formatInLanguage03')&lt;br /&gt;
	self:assertEquals('text message foo and bar', tnt.formatInLanguage('en', 'I18n/Module:TNT/testcases', 'text_2', {'foo', 'bar'}), 'formatInLanguage04')&lt;br /&gt;
	self:assertEquals('текст абв', tnt.formatInLanguage('ru', 'I18n/Module:TNT/testcases', 'text_1', 'абв'), 'formatInLanguage03')&lt;br /&gt;
&lt;br /&gt;
	self:assertThrows(function() tnt.formatInLanguage() end, &amp;quot;bad argument #1 to 'formatInLanguage' (string expected, got nil)&amp;quot;, 'formatInLanguage11')&lt;br /&gt;
	self:assertThrows(function() tnt.formatInLanguage('en') end, &amp;quot;bad argument #2 to 'formatInLanguage' (string expected, got nil)&amp;quot;, 'formatInLanguage12')&lt;br /&gt;
	self:assertThrows(function() tnt.formatInLanguage('en', 'Module:TNT/testcases') end, &amp;quot;bad argument #3 to 'formatInLanguage' (string expected, got nil)&amp;quot;, 'formatInLanguage12')&lt;br /&gt;
	self:assertThrows(function() tnt.formatInLanguage('en', '_bad_name_', 'foo') end, 'Dataset [[c:Data:_bad_name_.tab]] is not valid', 'formatInLanguage13')&lt;br /&gt;
	self:assertThrows(function() tnt.formatInLanguage('en', 'I18n/Module:TNT/testcases', '_bad_msg') end, 'Message “_bad_msg” does not exist in dataset [[c:Data:I18n/Module:TNT/testcases]]', 'formatInLanguage14')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:assertResultError(errorText, text, message)&lt;br /&gt;
	local actual = self.frame:preprocess(text)&lt;br /&gt;
	self:assertStringContains('&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;scribunto-error&amp;quot; id=&amp;quot;mw-scribunto-error-', actual, true, message)&lt;br /&gt;
	self:assertStringContains(errorText .. '.&amp;lt;/span&amp;gt;&amp;lt;/strong&amp;gt;', actual, true, message)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:test_msg_errors()&lt;br /&gt;
	-- The error messages might change if https://commons.wikimedia.org/wiki/Data:I18n/Module:TNT.tab changes for English&lt;br /&gt;
	self:assertResultError('First parameter must be the name of the Commons dataset', p:invokeLib('msg'), 'msgerr01')&lt;br /&gt;
	self:assertResultError('First parameter must be the name of the Commons dataset', p:invokeLib('msg|lang=pl'), 'msgerr02')&lt;br /&gt;
	self:assertResultError('Dataset [[c:Data:_bad_name_.tab]] is not valid', p:invokeLib('msg|_bad_name_'), 'msgerr03')&lt;br /&gt;
	self:assertResultError('Message “_bad_msg_” does not exist in dataset [[c:Data:I18n/Module:TNT]]', p:invokeLib('msg|I18n/Module:TNT|_bad_msg_'), 'msgerr04')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:test_link()&lt;br /&gt;
	self:assertResultEquals('c:Data:abc.tab', p:invokeLib('link|abc.tab'), 'link01')&lt;br /&gt;
	self:assertResultEquals('c:Data:abc.tab', p:invokeLib(' link | abc.tab '), 'link02')&lt;br /&gt;
	self:assertResultEquals('c:Data:abc.tab', p:invokeLib(' link |\n abc.tab\n '), 'link03')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:test_doc()&lt;br /&gt;
	local tnt = require('Module:' .. p:module())&lt;br /&gt;
	self:assertEquals(&lt;br /&gt;
			'{&amp;quot;paramOrder&amp;quot;:[&amp;quot;1&amp;quot;,&amp;quot;2&amp;quot;],&amp;quot;description&amp;quot;:&amp;quot;DO NOT EDIT OR TRANSLATE unless you are changing unit tests&amp;quot;,&amp;quot;params&amp;quot;:{&amp;quot;1&amp;quot;:{&amp;quot;suggested&amp;quot;:false,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;required&amp;quot;:true,&amp;quot;label&amp;quot;:&amp;quot;en_label_1&amp;quot;,&amp;quot;example&amp;quot;:&amp;quot;en_example_1&amp;quot;,&amp;quot;description&amp;quot;:&amp;quot;en_desc_1&amp;quot;},&amp;quot;2&amp;quot;:{&amp;quot;suggested&amp;quot;:true,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;required&amp;quot;:false,&amp;quot;label&amp;quot;:&amp;quot;fr_label_2&amp;quot;,&amp;quot;example&amp;quot;:&amp;quot;pl_example_2&amp;quot;,&amp;quot;description&amp;quot;:&amp;quot;en_desc_2&amp;quot;}}}',&lt;br /&gt;
			tnt.getTemplateData('Templatedata/Module:TNT/testcases templatedata 1'),&lt;br /&gt;
			'doc01')&lt;br /&gt;
	self:assertEquals(&lt;br /&gt;
			'{&amp;quot;paramOrder&amp;quot;:[&amp;quot;param1&amp;quot;,&amp;quot;param2&amp;quot;],&amp;quot;description&amp;quot;:&amp;quot;DO NOT EDIT OR TRANSLATE unless you are changing unit tests&amp;quot;,&amp;quot;params&amp;quot;:{&amp;quot;param2&amp;quot;:{&amp;quot;suggested&amp;quot;:true,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;required&amp;quot;:false,&amp;quot;label&amp;quot;:&amp;quot;fr_label_2&amp;quot;,&amp;quot;example&amp;quot;:&amp;quot;pl_example_2&amp;quot;,&amp;quot;description&amp;quot;:&amp;quot;en_desc_2&amp;quot;},&amp;quot;param1&amp;quot;:{&amp;quot;suggested&amp;quot;:false,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;required&amp;quot;:true,&amp;quot;label&amp;quot;:&amp;quot;en_label_1&amp;quot;,&amp;quot;example&amp;quot;:&amp;quot;en_example_1&amp;quot;,&amp;quot;description&amp;quot;:&amp;quot;en_desc_1&amp;quot;}}}',&lt;br /&gt;
			tnt.getTemplateData('Templatedata/Module:TNT/testcases templatedata 2'),&lt;br /&gt;
			'doc02')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Module&gt;Tacsipacsi</name></author>
	</entry>
</feed>