Module:Wikidata label/sandbox/testcases2

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search
Lua

CodeDiscussionEditHistoryLinksLink count Subpages:DocumentationTestsResultsSandboxLive code All modules

✘[No] 6 tests failed.

Name Expected Actual
✘[No] test_getLabel_1_entity_types [[d:Special:EntityPage/Q36524|authority file]] [[d:Q36524|<span title="collection of authority records, where each record picks preferred heading, alternative heading and other information, used for bibliographic information">authority file</span>]]
✘[No] test_getLabel_2_capitalization authority control authority file
✘[No] test_getLabel_3_show_id [[d:Special:EntityPage/Q937|Albert Einstein]] [[d:Q937|<span title="German-born theoretical physicist&#59; developer of the theory of relativity (1879–1955)">Albert Einstein</span>]]
✘[No] test_getLabel_4_links [[w:en:Authority file|authority file]] [[w:en:Authority file|<span title="collection of authority records, where each record picks preferred heading, alternative heading and other information, used for bibliographic information">authority file</span>]]
✘[No] test_getLabel_5_leyers [[w:en:Authority file|authority file]] [[w:en:Authority file|<span title="collection of authority records, where each record picks preferred heading, alternative heading and other information, used for bibliographic information">authority file</span>]]
✘[No] test_getLabel_6_languages [[w:en:Authority file|authority file]] [[w:en:Authority file|<span title="collection of authority records, where each record picks preferred heading, alternative heading and other information, used for bibliographic information">authority file</span>]]

Code

require('strict')
local TUT = mw.title.new(mw.getCurrentFrame():getTitle()).basePageTitle -- the title under test
local WL = require(TUT.prefixedText) -- the module to be tested
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()

function suite:test_getLabel_1_entity_types()
	self:assertEquals( '[[d:Special:EntityPage/Q36524|'   .. mw.wikibase.getLabelByLang('Q36524'  , 'en') .. ']]', WL._getLabel('Q36524'   , 'en', 'wikidata'))
	self:assertEquals( '[[d:Special:EntityPage/Q36524|'   .. mw.wikibase.getLabelByLang('Q36524'  , 'de') .. ']]', WL._getLabel( '36524'   , 'de', 'wikidata'))
	self:assertEquals( '[[d:Special:EntityPage/P31|'      .. mw.wikibase.getLabelByLang('P31'     , 'ru') .. ']]', WL._getLabel( 'P31'     , 'ru'))
	self:assertEquals( '[[d:Special:EntityPage/P31|'      .. mw.wikibase.getLabelByLang('P31'     , 'ru') .. ']]', WL._getLabel( 'P31'     , 'ru', 'wikidata'))
	self:assertEquals( '[[d:Special:EntityPage/P31|'      .. mw.wikibase.getLabelByLang('P31'     , 'ro') .. ']]', WL._getLabel( 'P31'     , 'ro', 'wikipedia'))
	self:assertEquals( '[[c:Special:EntityPage/M4184419|' .. mw.wikibase.getLabelByLang('M4184419', 'en') .. ']]', WL._getLabel( 'M4184419', 'en'))
	self:assertEquals( '[[c:Special:EntityPage/M4184419|' .. mw.wikibase.getLabelByLang('M4184419', 'en') .. ']]', WL._getLabel( 'M4184419', 'en', 'wikidata'))
	self:assertEquals( '[[c:Special:EntityPage/M4184419|' .. mw.wikibase.getLabelByLang('M4184419', 'en') .. ']]', WL._getLabel( 'M4184419', 'en', 'wikipedia'))
	self:assertEquals( '[[c:Special:EntityPage/M4184419|' .. mw.wikibase.getLabelByLang('M4184419', 'en') .. ']]', WL._getLabel( 'M4184419', 'en', 'commons'))
end

function suite:test_getLabel_2_capitalization()
	self:assertEquals( mw.language.new('en'):ucfirst(mw.wikibase.getLabelByLang('Q36524', 'en')), WL._getLabel('Q36524', 'en', '-', 'ucfirst'))
	self:assertEquals( mw.language.new('en'):lcfirst(mw.wikibase.getLabelByLang('Q36524', 'en')), WL._getLabel('Q36524', 'en', '-', 'lcfirst'))
	self:assertEquals( mw.language.new('en'):uc(     mw.wikibase.getLabelByLang('Q36524', 'en')), WL._getLabel('Q36524', 'en', '-', 'uc'))
	self:assertEquals( mw.language.new('en'):lc(     mw.wikibase.getLabelByLang('Q36524', 'en')), WL._getLabel('Q36524', 'en', '-', 'lc'))
	self:assertEquals(                               mw.wikibase.getLabelByLang('Q36524', 'en') , WL._getLabel('Q36524', 'en', '-'))
	self:assertEquals(                               mw.wikibase.getLabelByLang('Q36524', 'en') , WL._getLabel('Q36524', 'en', '-', ''))
	self:assertEquals(                               mw.wikibase.getLabelByLang('Q36524', 'en') , WL._getLabel('Q36524', 'en', '-', 'hello world'))
	self:assertEquals( 'authority control'                                                      , WL._getLabel('Q36524', 'en', '-', 'lc'))
end

function suite:test_getLabel_4_links()
	self:assertEquals( '[[w:en:'.. mw.wikibase.getSitelink('Q36524', 'enwiki') ..'|'.. mw.wikibase.getLabelByLang('Q36524', 'en') .. ']]', WL._getLabel('Q36524', 'en'))
	self:assertEquals( '[[w:he:'.. mw.wikibase.getSitelink('Q1', 'hewiki') ..'|'.. mw.wikibase.getLabelByLang('Q1', 'he') .. ']]', WL._getLabel('Q1', 'he','wikipedia'))
	self:assertEquals( '[[d:Special:EntityPage/Q2|'.. mw.wikibase.getLabelByLang('Q2', 'ru') .. ']]', WL._getLabel('Q2', 'ru','wIkIDAta'))
	self:assertEquals( '[[d:Talk:Q2|'.. mw.wikibase.getLabelByLang('Q2', 'pl') .. ']]', WL._getLabel('Q2', 'pl','wikidata talk'))
	self:assertEquals( '[[c:'.. mw.wikibase.getSitelink('Q937', 'commonswiki').. '|'.. mw.wikibase.getLabelByLang('Q937', 'fr').. ']]' , WL._getLabel('Q937', 'fr','Commons'))
	self:assertEquals( '[[c:'.. mw.wikibase.getSitelink('Q6974121', 'commonswiki').. '|'..mw.wikibase.getLabelByLang('Q6974121', 'en').. ']]' , WL._getLabel('Q6974121', 'en','Commons'))
	self:assertEquals( '[[c:Category:'.. mw.wikibase.getBestStatements('Q937', 'P373')[1].mainsnak.datavalue.value.. '|'..mw.wikibase.getLabelByLang('Q937', 'fr').. ']]' , WL._getLabel('Q937', 'fr','Commonscat'))
	self:assertEquals( '[[c:Category:'.. mw.wikibase.getBestStatements('Q6974121', 'P373')[1].mainsnak.datavalue.value.. '|'..mw.wikibase.getLabelByLang('Q6974121', 'en').. ']]' , WL._getLabel('Q6974121', 'en','Commonscat'))
end

function suite:test_getLabel_3_show_id()
	self:assertEquals( '[[d:Special:EntityPage/Q937|' .. mw.wikibase.getLabelByLang('Q937', 'en') .. ']]' , WL._getLabel('Q937', 'en', 'wikidata'))
	self:assertSameResult('[[d:Special:EntityPage/Q937|Albert Einstein <small>(Q937)</small>]]', '{{#invoke:' .. TUT.text .. '|getLabel|item=Q937|lang=en|link=wikidata|show_id=true}}')
	self:assertSameResult('[[d:Special:EntityPage/P31|'.. mw.wikibase.getLabelByLang('P31', 'en').. ' <small>(P31)</small>]]', '{{#invoke:' .. TUT.text .. '|getLabel|item=P31|lang=en|show_id=1}}')
	--self:assertSameResult('[[d:Special:EntityPage/Q937|Albert Einstein{{MediaWiki:Word-separator/en}}<small>{{MediaWiki:parentheses/en|Q937}}</small>]]', '{{#invoke:' .. TUT.text .. '|getLabel|item=Q937|lang=en|link=wikidata|show_id=true}}')
end

function suite:test_getLabel_5_leyers()
	local res = '[[w:en:'.. mw.wikibase.getSitelink('Q36524', 'enwiki')..'|'..mw.wikibase.getLabelByLang('Q36524', 'en').. ']]'
	self:assertEquals    (res, WL._getLabel('Q36524','en'))
	self:assertSameResult(res, '{{#invoke:' .. TUT.text .. '|getLabel|item=Q36524|lang=en}}')
	self:assertSameResult(res, '{{Q-|item=Q36524|lang=en}}')
	--self:assertSameResult(WL._getLabel('Q36524','en','wikidata','none', true), '{{Q|Q36524|n}}')

	local label, lang = mw.wikibase.getLabelWithLang('Q36524')
	local res = '[[w:'..lang..':'.. mw.wikibase.getSitelink('Q36524', lang..'wiki')..'|'..label.. ']]'
	--self:assertEquals(res, WL._getLabel(mw.wikibase.getEntity('Q36524')))	
	--self:assertEquals(res, WL._getLabel('Q36524'))	
end

function suite:test_getLabel_6_languages()
	self:assertSameResult('{{#invoke:' .. TUT.text .. '|getLabel|item=Q36524|lang=en}}', table.concat({'[[w:en:', mw.wikibase.getSitelink('Q36524', 'enwiki'), '|', mw.wikibase.getLabelByLang('Q36524', 'en'), ']]'}))
	self:assertSameResult('{{#invoke:' .. TUT.text .. '|getLabel|item=36524 |lang=zh}}', table.concat({'[[w:zh:', mw.wikibase.getSitelink('Q36524', 'zhwiki'), '|', mw.wikibase.getLabelByLang('Q36524', 'zh'), ']]'}))
	self:assertSameResult('{{#invoke:' .. TUT.text .. '|getLabel|item=Q36524|lang=ru}}', table.concat({'[[w:ru:', mw.wikibase.getSitelink('Q36524', 'ruwiki'), '|', mw.wikibase.getLabelByLang('Q36524', 'ru'), ']]'}))
	self:assertSameResult('{{#invoke:' .. TUT.text .. '|getLabel|item=Q937  |lang=he}}', table.concat({'[[w:he:', mw.wikibase.getSitelink('Q937'  , 'hewiki'), '|', mw.wikibase.getLabelByLang('Q937'  , 'he'), ']]'}))
	local lang = mw.getCurrentFrame():callParserFunction("int", "lang")
	self:assertEquals( WL._getLabel('Q6974121', lang), WL._getLabel('Q6974121'))
	self:assertEquals( WL._getLabel('Q6974121', lang, 'commons', 'uc'), WL._getLabel('Q6974121', nil, 'commons', 'uc'))
end

return suite