summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/Scribunto/tests/phpunit/engines/LuaCommon/MessageLibraryTests.lua
diff options
context:
space:
mode:
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.lua70
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)" }
+ },
+} )