diff options
Diffstat (limited to 'www/wiki/extensions/Scribunto/tests/phpunit/engines/LuaCommon/MessageLibraryTests.lua')
-rw-r--r-- | www/wiki/extensions/Scribunto/tests/phpunit/engines/LuaCommon/MessageLibraryTests.lua | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/www/wiki/extensions/Scribunto/tests/phpunit/engines/LuaCommon/MessageLibraryTests.lua b/www/wiki/extensions/Scribunto/tests/phpunit/engines/LuaCommon/MessageLibraryTests.lua new file mode 100644 index 00000000..55dafb8f --- /dev/null +++ b/www/wiki/extensions/Scribunto/tests/phpunit/engines/LuaCommon/MessageLibraryTests.lua @@ -0,0 +1,70 @@ +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)" } + }, +} ) |