mediawiki-extensions-Scribunto/tests/engines/LuaCommon/MessageLibraryTests.lua
Jackmcbarn 2b06e83816 Remove message formats other than plain
Message formats other than plain should have never been exposed in this
way, as they allow link tables, etc. to be bypassed and serve no useful
purpose. This removes them, and also removes title, as it serves no
purpose without them.

Bug: 60758
Change-Id: I96284ffbe986a9cd92d2bde1ffdb746029bad989
2014-02-03 15:29:39 -05:00

71 lines
2.1 KiB
Lua

local testframework = require 'Module:TestFramework'
local message1 = mw.message.new( 'mainpage' )
local message1_copy = mw.message.new( 'mainpage' )
local message2 = mw.message.new( 'i-dont-exist-evar' )
function test_exists( key )
return mw.message.new( key ):exists()
end
function test_language( key )
-- If mw.language is available, test that too
local lang = 'ru'
if mw.language then
lang = mw.language.new( 'ru' )
end
return mw.message.new( 'mainpage' ):useDatabase( false ):inLanguage( 'en' ):plain(),
mw.message.new( 'mainpage' ):useDatabase( false ):inLanguage( 'ru' ):plain(),
mw.message.new( 'mainpage' ):useDatabase( false ):inLanguage( lang ):plain()
end
function test_params( rawMessage, func, ... )
local msg = mw.message.newRawMessage( rawMessage ):inLanguage( 'en' )
return msg[func]( msg, ... ):plain()
end
return testframework.getTestProvider( {
{ name = 'exists (1)', func = test_exists,
args = { 'mainpage' },
expect = { true }
},
{ name = 'exists (2)', func = test_exists,
args = { 'i-dont-exist-evar' },
expect = { false }
},
{ name = 'inLanguage', func = test_language,
expect = { 'Main Page', 'Заглавная страница', 'Заглавная страница' }
},
{ name = 'plain param', func = test_params,
args = { '($1 $2)', 'params', "'''foo'''", 123456 },
expect = { "('''foo''' 123456)" }
},
{ name = 'raw param', func = test_params,
args = { '($1 $2)', 'rawParams', "'''foo'''", 123456 },
expect = { "('''foo''' 123456)" }
},
{ name = 'num param', func = test_params,
args = { '($1 $2)', 'numParams', "'''foo'''", 123456 },
expect = { "('''foo''' 123,456)" }
},
{ name = 'mixed params', func = test_params,
args = { '($1 $2 $3)', 'params',
"'''foo'''", mw.message.rawParam( "'''foo'''" ), mw.message.numParam( 123456 )
},
expect = { "('''foo''' '''foo''' 123,456)" }
},
{ name = 'message as param', func = test_params,
args = { '($1)', 'params', mw.message.newRawMessage( 'bar' ) },
expect = { "(bar)" }
},
{ name = 'different title', func = test_params,
args = { '($1)', 'params', mw.message.newRawMessage( 'bar' ) },
expect = { "(bar)" }
},
} )