diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/user/lang_test.php | 58 | 
1 files changed, 58 insertions, 0 deletions
| diff --git a/tests/user/lang_test.php b/tests/user/lang_test.php new file mode 100644 index 0000000000..6c60583a7b --- /dev/null +++ b/tests/user/lang_test.php @@ -0,0 +1,58 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2011 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* +*/ + +require_once dirname(__FILE__) . '/../../phpBB/includes/session.php'; + +class phpbb_user_lang_test extends phpbb_test_case +{ +	public function test_user_lang_sprintf() +	{ +		$user = new user; +		$user->lang = array( +			'FOO'		=> 'BAR', +			'BARZ'		=> 'PENG', +			'EMPTY'		=> '', +			'ZERO'		=> '0', +			'STR'		=> '%d %s, %d topics', +			'STR2'		=> '%d foos', +			'ARRY'		=> array( +				0		=> 'No posts',		// 0 +				1		=> '1 post',		// 1 +				2		=> '%d posts',		// 2+ +			), +		); + +		// No param +		$this->assertEquals($user->lang('FOO'), 'BAR'); +		$this->assertEquals($user->lang('EMPTY'), ''); +		$this->assertEquals($user->lang('ZERO'), '0'); + +		// Invalid index +		$this->assertEquals($user->lang('VOID'), 'VOID'); + +		// Unnecessary param +		$this->assertEquals($user->lang('FOO', 2), 'BAR'); +		$this->assertEquals($user->lang('FOO', 2, 3), 'BAR'); +		$this->assertEquals($user->lang('FOO', 2, 3, 'BARZ'), 'BAR'); + +		// String +		$this->assertEquals($user->lang('STR', 24, 'x', 42), '24 x, 42 topics'); +		$this->assertEquals($user->lang('STR2', 64), '64 foos'); + +		// Array +		$this->assertEquals($user->lang('ARRY', 0), 'No posts'); +		$this->assertEquals($user->lang('ARRY', 1), '1 post'); +		$this->assertEquals($user->lang('ARRY', 2), '2 posts'); +		$this->assertEquals($user->lang('ARRY', 123), '123 posts'); + +		// Bug PHPBB3-9949 +		$this->assertEquals($user->lang('ARRY', 1, 2), '1 post'); +		$this->assertEquals($user->lang('ARRY', 1, 's', 2), '1 post'); +	} +} | 
