summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/Scribunto/tests/phpunit/engines/LuaCommon/MessageLibraryTests.lua
blob: 55dafb8fdd76d1c76464ff0f84285ac95729251a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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)" }
	},
} )