Module:Core/sandbox/testcases
Lua
CodeDiscussionEditHistoryLinksLink count Subpages:DocumentationTestsResultsSandboxLive code All modules
All tests passed.
Name | Expected | Actual | |
---|---|---|---|
![]() |
test_formatMessage | ||
![]() |
test_getLabel | ||
![]() |
test_langSwitch | ||
![]() |
test_langSwitchWithLang | ||
![]() |
test_parseStatement | ||
![]() |
test_yesno |
Code
require('strict')
local core = require('Module:Core/sandbox')
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()
function suite:test_getLabel()
local getLabel2 = require('Module:Wikidata label')._getLabel
--elf:assertEquals( '[[w:en:'.. mw.wikibase.getSitelink('Q36524', 'enwiki') ..'|'.. mw.wikibase.getLabelByLang('Q36524', 'en') .. ']]', getLabel1('Q36524', 'en'))
--self:assertEquals( '[[w:he:'.. mw.wikibase.getSitelink('Q1' , 'hewiki') ..'|'.. mw.wikibase.getLabelByLang('Q1' , 'he') .. ']]', getLabel1('Q1' , 'he'))
self:assertEquals( getLabel2('Q1', 'fa'), core.getLabel('Q1', 'fa'))
self:assertEquals( getLabel2('Q1', 'xx'), core.getLabel('Q1', 'xx'))
end
function suite:test_langSwitch()
local data1 = {en = 'English', co = 'Corsu'}
local data2 = {en = 'English', de = 'German'}
local data3 = {en = 'English', gsw= 'Alemanic'}
self:assertEquals('English', core.langSwitch(data1, 'en'))
self:assertEquals('English', core.langSwitch(data1, 'fr'))
self:assertEquals('Corsu', core.langSwitch(data1, 'co'))
self:assertEquals('English', core.langSwitch(data2, 'en'))
self:assertEquals('German', core.langSwitch(data2, 'de'))
self:assertEquals('German', core.langSwitch(data2, 'gsw'))
self:assertEquals('English', core.langSwitch(data3, 'en'))
self:assertEquals('English', core.langSwitch(data3, 'de'))
self:assertEquals('Alemanic',core.langSwitch(data3, 'gsw'))
end
function suite:test_langSwitchWithLang()
local function ltest(data, lang)
local label, lang = core.langSwitchWithLang(data, lang)
return label .. '/' .. lang
end
local data1 = {en = 'English', co = 'Corsu'}
local data2 = {en = 'English', de = 'German'}
local data3 = {en = 'English', gsw= 'Alemanic'}
self:assertEquals('English/en', ltest(data1, 'en'))
self:assertEquals('English/en', ltest(data1, 'fr'))
self:assertEquals('Corsu/co', ltest(data1, 'co'))
self:assertEquals('English/en', ltest(data2, 'en'))
self:assertEquals('German/de', ltest(data2, 'de'))
self:assertEquals('German/de', ltest(data2, 'gsw'))
self:assertEquals('English/en', ltest(data3, 'en'))
self:assertEquals('English/en', ltest(data3, 'de'))
self:assertEquals('Alemanic/gsw',ltest(data3, 'gsw'))
end
function suite:test_yesno()
local default = 'default'
self:assertEquals(true, core.yesno(true, default))
self:assertEquals(true, core.yesno(1, default))
self:assertEquals(true, core.yesno('yes', default))
self:assertEquals(true, core.yesno('y', default))
self:assertEquals(true, core.yesno('true', default))
self:assertEquals(true, core.yesno('t', default))
self:assertEquals(true, core.yesno('on', default))
self:assertEquals(true, core.yesno('1', default))
self:assertEquals(false, core.yesno(false, default))
self:assertEquals(false, core.yesno(0, default))
self:assertEquals(false, core.yesno('no', default))
self:assertEquals(false, core.yesno('n', default))
self:assertEquals(false, core.yesno('false', default))
self:assertEquals(false, core.yesno('f', default))
self:assertEquals(false, core.yesno('off', default))
self:assertEquals(false, core.yesno('0', default))
self:assertEquals('default', core.yesno(2, default))
self:assertEquals('default', core.yesno('hello', default))
end
function suite:test_parseStatement()
local statements = mw.wikibase.getBestStatements( 'Q1', 'P31' )
self:assertEquals('Q36906466', core.parseStatements(statements)[1])
self:assertEquals(core.getLabel('Q36906466', 'pl'), core.parseStatements(statements, 'pl')[1])
local statements = mw.wikibase.getBestStatements( 'Q1', 'P2386' )
self:assertEquals(8.8e+23, core.parseStatements(statements)[1])
local statements = mw.wikibase.getBestStatements( 'Q76', 'P569' )
self:assertEquals('1961-08-04', core.parseStatements(statements)[1])
local statements = mw.wikibase.getBestStatements( 'Q1339346', 'P577' )
self:assertEquals('1834-06', core.parseStatements(statements)[1])
end
function suite:test_formatMessage()
local msg = core.formatMessage('I18n/DescriptionError.tab', 'missing text', 'en')
self:assertEquals('(missing text)', msg)
local msg = core.formatMessage('I18n/DescriptionError.tab', 'missing text', 'or')
self:assertEquals('(missing text)', msg)
local msg = core.formatMessage('I18n/DescriptionError.tab', 'missing text', 'pl')
self:assertEquals('(brak tekstu)', msg)
local msg = core.formatMessage('I18n/DescriptionError.tab', 'missing text', 'szl')
self:assertEquals('(brak tekstu)', msg)
end
return suite