diff options
Diffstat (limited to 'tests/functions_acp')
| -rw-r--r-- | tests/functions_acp/build_cfg_template_test.php | 237 | ||||
| -rw-r--r-- | tests/functions_acp/build_select_test.php | 55 | ||||
| -rw-r--r-- | tests/functions_acp/h_radio_test.php | 120 | ||||
| -rw-r--r-- | tests/functions_acp/validate_config_vars_test.php | 158 | ||||
| -rw-r--r-- | tests/functions_acp/validate_range_test.php | 170 | 
5 files changed, 740 insertions, 0 deletions
| diff --git a/tests/functions_acp/build_cfg_template_test.php b/tests/functions_acp/build_cfg_template_test.php new file mode 100644 index 0000000000..acf4da1bd6 --- /dev/null +++ b/tests/functions_acp/build_cfg_template_test.php @@ -0,0 +1,237 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2010 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +require_once dirname(__FILE__) . '/../../phpBB/includes/functions_acp.php'; + +class phpbb_functions_acp_build_cfg_template_test extends phpbb_test_case +{ +	public function build_cfg_template_text_data() +	{ +		return array( +			array( +				array('text', 20, 255), +				'key_name', +				array('config_key_name'	=> '1'), +				'config_key_name', +				array(), +				'<input id="key_name" type="text" size="20" maxlength="255" name="config[config_key_name]" value="1" />', +			), +			array( +				array('password', 20, 128), +				'key_name', +				array('config_key_name'	=> '2'), +				'config_key_name', +				array(), +				'<input id="key_name" type="password" size="20" maxlength="128" name="config[config_key_name]" value="2" autocomplete="off" />', +			), +			array( +				array('text', 0, 255), +				'key_name', +				array('config_key_name'	=> '3'), +				'config_key_name', +				array(), +				'<input id="key_name" type="text" maxlength="255" name="config[config_key_name]" value="3" />', +			), +		); +	} + +	/** +	* @dataProvider build_cfg_template_text_data +	*/ +	public function test_build_cfg_template_text($tpl_type, $key, $new, $config_key, $vars, $expected) +	{ +		global $user, $phpbb_dispatcher; + +		$phpbb_dispatcher = new phpbb_mock_event_dispatcher(); +		$user = new phpbb_mock_user(); +		$user->lang = new phpbb_mock_lang(); + +		$this->assertEquals($expected, build_cfg_template($tpl_type, $key, $new, $config_key, $vars)); +	} + +	public function build_cfg_template_dimension_data() +	{ +		return array( +			array( +				array('dimension', 5, 15), +				'number_key_name', +				array('config_key_name_width' => 10, 'config_key_name_height' => 20), +				'config_key_name', +				array(), +				'<input id="number_key_name" type="number" size="2" maxlength="2" min="5" max="15" name="config[config_key_name_width]" value="10" /> x <input type="number" size="2" maxlength="2" min="5" max="15" name="config[config_key_name_height]" value="20" />', +			), +			array( +				array('dimension', 0, 15), +				'number_key_name', +				array('config_key_name_width' => 10, 'config_key_name_height' => 20), +				'config_key_name', +				array(), +				'<input id="number_key_name" type="number" size="2" maxlength="2" min="0" max="15" name="config[config_key_name_width]" value="10" /> x <input type="number" size="2" maxlength="2" min="0" max="15" name="config[config_key_name_height]" value="20" />', +			), +		); +	} + +	/** +	* @dataProvider build_cfg_template_dimension_data +	*/ +	public function test_build_cfg_template_dimension($tpl_type, $key, $new, $config_key, $vars, $expected) +	{ +		global $user, $phpbb_dispatcher; + +		$phpbb_dispatcher = new phpbb_mock_event_dispatcher(); +		$user = new phpbb_mock_user(); +		$user->lang = new phpbb_mock_lang(); + +		$this->assertEquals($expected, build_cfg_template($tpl_type, $key, $new, $config_key, $vars)); +	} + +	public function build_cfg_template_number_data() +	{ +		return array( +			array( +				array('number', 5, 15), +				'number_key_name', +				array('config_key_name' => 10), +				'config_key_name', +				array(), +				'<input id="number_key_name" type="number" maxlength="2" min="5" max="15" name="config[config_key_name]" value="10" />', +			), +			array( +				array('number', -1, 9999), +				'number_key_name', +				array('config_key_name' => 10), +				'config_key_name', +				array(), +				'<input id="number_key_name" type="number" maxlength="4" min="-1" max="9999" name="config[config_key_name]" value="10" />', +			), +		); +	} + +	/** +	* @dataProvider build_cfg_template_number_data +	*/ +	public function test_build_cfg_template_number($tpl_type, $key, $new, $config_key, $vars, $expected) +	{ +		global $user, $phpbb_dispatcher; + +		$phpbb_dispatcher = new phpbb_mock_event_dispatcher(); +		$user = new phpbb_mock_user(); +		$user->lang = new phpbb_mock_lang(); + +		$this->assertEquals($expected, build_cfg_template($tpl_type, $key, $new, $config_key, $vars)); +	} + +	public function build_cfg_template_textarea_data() +	{ +		return array( +			array( +				array('textarea', 5, 30), +				'key_name', +				array('config_key_name' => 'phpBB'), +				'config_key_name', +				array(), +				'<textarea id="key_name" name="config[config_key_name]" rows="5" cols="30">phpBB</textarea>', +			), +		); +	} + +	/** +	* @dataProvider build_cfg_template_textarea_data +	*/ +	public function test_build_cfg_template_textarea($tpl_type, $key, $new, $config_key, $vars, $expected) +	{ +		global $user, $phpbb_dispatcher; + +		$phpbb_dispatcher = new phpbb_mock_event_dispatcher(); +		$user = new phpbb_mock_user(); +		$user->lang = new phpbb_mock_lang(); + +		$this->assertEquals($expected, build_cfg_template($tpl_type, $key, $new, $config_key, $vars)); +	} + +	public function build_cfg_template_radio_data() +	{ +		return array( +			array( +				array('radio', 'enabled_disabled'), +				'key_name', +				array('config_key_name'	=> '0'), +				'config_key_name', +				array(), +				'<label><input type="radio" id="key_name" name="config[config_key_name]" value="1" class="radio" /> ENABLED</label><label><input type="radio" name="config[config_key_name]" value="0" checked="checked" class="radio" /> DISABLED</label>', +			), +			array( +				array('radio', 'enabled_disabled'), +				'key_name', +				array('config_key_name'	=> '1'), +				'config_key_name', +				array(), +				'<label><input type="radio" id="key_name" name="config[config_key_name]" value="1" checked="checked" class="radio" /> ENABLED</label><label><input type="radio" name="config[config_key_name]" value="0" class="radio" /> DISABLED</label>', +			), +			array( +				array('radio', 'yes_no'), +				'key_name', +				array('config_key_name'	=> '0'), +				'config_key_name', +				array(), +				'<label><input type="radio" id="key_name" name="config[config_key_name]" value="1" class="radio" /> YES</label><label><input type="radio" name="config[config_key_name]" value="0" checked="checked" class="radio" /> NO</label>', +			), +			array( +				array('radio', 'yes_no'), +				'key_name', +				array('config_key_name'	=> '1'), +				'config_key_name', +				array(), +				'<label><input type="radio" id="key_name" name="config[config_key_name]" value="1" checked="checked" class="radio" /> YES</label><label><input type="radio" name="config[config_key_name]" value="0" class="radio" /> NO</label>', +			), +		); +	} + +	/** +	* @dataProvider build_cfg_template_radio_data +	*/ +	public function test_build_cfg_template_radio($tpl_type, $key, $new, $config_key, $vars, $expected) +	{ +		global $user, $phpbb_dispatcher; + +		$phpbb_dispatcher = new phpbb_mock_event_dispatcher(); +		$user = new phpbb_mock_user(); +		$user->lang = new phpbb_mock_lang(); + +		$this->assertEquals($expected, build_cfg_template($tpl_type, $key, $new, $config_key, $vars)); +	} + +	public function build_cfg_template_append_data() +	{ +		return array( +			array( +				array('textarea', 5, 30), +				'key_name', +				array('config_key_name' => 'phpBB'), +				'config_key_name', +				array('append' => 'Bertie is cool!'), +				'<textarea id="key_name" name="config[config_key_name]" rows="5" cols="30">phpBB</textarea>Bertie is cool!', +			), +		); +	} + +	/** +	* @dataProvider build_cfg_template_append_data +	*/ +	public function test_build_cfg_template_append($tpl_type, $key, $new, $config_key, $vars, $expected) +	{ +		global $user, $phpbb_dispatcher; + +		$phpbb_dispatcher = new phpbb_mock_event_dispatcher(); +		$user = new phpbb_mock_user(); +		$user->lang = new phpbb_mock_lang(); + +		$this->assertEquals($expected, build_cfg_template($tpl_type, $key, $new, $config_key, $vars)); +	} +} diff --git a/tests/functions_acp/build_select_test.php b/tests/functions_acp/build_select_test.php new file mode 100644 index 0000000000..aca49b7655 --- /dev/null +++ b/tests/functions_acp/build_select_test.php @@ -0,0 +1,55 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2010 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +require_once dirname(__FILE__) . '/../../phpBB/includes/functions_acp.php'; + +class phpbb_functions_acp_built_select_test extends phpbb_test_case +{ +	public function build_select_data() +	{ +		return array( +			array( +				array( +					'test'		=> 'TEST', +					'second'	=> 'SEC_OPTION', +				), +				false, +				'<option value="test">TEST</option><option value="second">SEC_OPTION</option>', +			), +			array( +				array( +					'test'		=> 'TEST', +					'second'	=> 'SEC_OPTION', +				), +				'test', +				'<option value="test" selected="selected">TEST</option><option value="second">SEC_OPTION</option>', +			), +			array( +				array( +					'test'		=> 'TEST', +					'second'	=> 'SEC_OPTION', +				), +				'second', +				'<option value="test">TEST</option><option value="second" selected="selected">SEC_OPTION</option>', +			), +		); +	} + +	/** +	* @dataProvider build_select_data +	*/ +	public function test_build_select($option_ary, $option_default, $expected) +	{ +		global $user; + +		$user->lang = new phpbb_mock_lang(); + +		$this->assertEquals($expected, build_select($option_ary, $option_default)); +	} +} diff --git a/tests/functions_acp/h_radio_test.php b/tests/functions_acp/h_radio_test.php new file mode 100644 index 0000000000..a61f2e8975 --- /dev/null +++ b/tests/functions_acp/h_radio_test.php @@ -0,0 +1,120 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2010 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +require_once dirname(__FILE__) . '/../../phpBB/includes/functions_acp.php'; + +class phpbb_functions_acp_h_radio_test extends phpbb_test_case +{ +	public function h_radio_data() +	{ +		return array( +			array( +				'test_name', +				array( +					'test'		=> 'TEST', +					'second'	=> 'SEC_OPTION', +				), +				false, +				false, +				false, +				'<label><input type="radio" name="test_name" value="test" class="radio" /> TEST</label><label><input type="radio" name="test_name" value="second" class="radio" /> SEC_OPTION</label>', +			), +			array( +				'test_name', +				array( +					'test'		=> 'TEST', +					'second'	=> 'SEC_OPTION', +				), +				'test', +				false, +				false, +				'<label><input type="radio" name="test_name" value="test" checked="checked" class="radio" /> TEST</label><label><input type="radio" name="test_name" value="second" class="radio" /> SEC_OPTION</label>', +			), +			array( +				'test_name', +				array( +					'test'		=> 'TEST', +					'second'	=> 'SEC_OPTION', +				), +				false, +				'test_id', +				false, +				'<label><input type="radio" name="test_name" id="test_id" value="test" class="radio" /> TEST</label><label><input type="radio" name="test_name" value="second" class="radio" /> SEC_OPTION</label>', +			), +			array( +				'test_name', +				array( +					'test'		=> 'TEST', +					'second'	=> 'SEC_OPTION', +				), +				'test', +				'test_id', +				false, +				'<label><input type="radio" name="test_name" id="test_id" value="test" checked="checked" class="radio" /> TEST</label><label><input type="radio" name="test_name" value="second" class="radio" /> SEC_OPTION</label>', +			), + +			array( +				'test_name', +				array( +					'test'		=> 'TEST', +					'second'	=> 'SEC_OPTION', +				), +				false, +				false, +				'k', +				'<label><input type="radio" name="test_name" value="test" accesskey="k" class="radio" /> TEST</label><label><input type="radio" name="test_name" value="second" accesskey="k" class="radio" /> SEC_OPTION</label>', +			), +			array( +				'test_name', +				array( +					'test'		=> 'TEST', +					'second'	=> 'SEC_OPTION', +				), +				'test', +				false, +				'k', +				'<label><input type="radio" name="test_name" value="test" checked="checked" accesskey="k" class="radio" /> TEST</label><label><input type="radio" name="test_name" value="second" accesskey="k" class="radio" /> SEC_OPTION</label>', +			), +			array( +				'test_name', +				array( +					'test'		=> 'TEST', +					'second'	=> 'SEC_OPTION', +				), +				false, +				'test_id', +				'k', +				'<label><input type="radio" name="test_name" id="test_id" value="test" accesskey="k" class="radio" /> TEST</label><label><input type="radio" name="test_name" value="second" accesskey="k" class="radio" /> SEC_OPTION</label>', +			), +			array( +				'test_name', +				array( +					'test'		=> 'TEST', +					'second'	=> 'SEC_OPTION', +				), +				'test', +				'test_id', +				'k', +				'<label><input type="radio" name="test_name" id="test_id" value="test" checked="checked" accesskey="k" class="radio" /> TEST</label><label><input type="radio" name="test_name" value="second" accesskey="k" class="radio" /> SEC_OPTION</label>', +			), +		); +	} + +	/** +	* @dataProvider h_radio_data +	*/ +	public function test_h_radio($name, $input_ary, $input_default, $id, $key, $expected) +	{ +		global $user; + +		$user->lang = new phpbb_mock_lang(); + +		$this->assertEquals($expected, h_radio($name, $input_ary, $input_default, $id, $key)); +	} +} diff --git a/tests/functions_acp/validate_config_vars_test.php b/tests/functions_acp/validate_config_vars_test.php new file mode 100644 index 0000000000..7cd7fa3892 --- /dev/null +++ b/tests/functions_acp/validate_config_vars_test.php @@ -0,0 +1,158 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2010 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +require_once dirname(__FILE__) . '/../../phpBB/includes/functions_acp.php'; + +class phpbb_functions_acp_validate_config_vars_test extends phpbb_test_case +{ +	/** +	* Data sets that don't throw an error. +	*/ +	public function validate_config_vars_fit_data() +	{ +		return array( +			array( +				array( +					'test_bool'				=> array('lang' => 'TEST_BOOL',			'validate' => 'bool'), +					'test_string'			=> array('lang' => 'TEST_STRING',		'validate' => 'string'), +					'test_string'			=> array('lang' => 'TEST_STRING',		'validate' => 'string'), +					'test_string_128'		=> array('lang' => 'TEST_STRING_128',	'validate' => 'string:128'), +					'test_string_128'		=> array('lang' => 'TEST_STRING_128',	'validate' => 'string:128'), +					'test_string_32_64'		=> array('lang' => 'TEST_STRING_32_64',	'validate' => 'string:32:64'), +					'test_string_32_64'		=> array('lang' => 'TEST_STRING_32_64',	'validate' => 'string:32:64'), +					'test_int'				=> array('lang' => 'TEST_INT',			'validate' => 'int'), +					'test_int_32'			=> array('lang' => 'TEST_INT',			'validate' => 'int:32'), +					'test_int_32_64'		=> array('lang' => 'TEST_INT',			'validate' => 'int:32:64'), +					'test_lang'				=> array('lang' => 'TEST_LANG',			'validate' => 'lang'), +					/* +					'test_sp'				=> array('lang' => 'TEST_SP',			'validate' => 'script_path'), +					'test_rpath'			=> array('lang' => 'TEST_RPATH',		'validate' => 'rpath'), +					'test_rwpath'			=> array('lang' => 'TEST_RWPATH',		'validate' => 'rwpath'), +					'test_path'				=> array('lang' => 'TEST_PATH',			'validate' => 'path'), +					'test_wpath'			=> array('lang' => 'TEST_WPATH',		'validate' => 'wpath'), +					*/ +				), +				array( +					'test_bool'			=> true, +					'test_string'		=> str_repeat('a', 255), +					'test_string'		=> str_repeat("\xC3\x84", 255), +					'test_string_128'	=> str_repeat('a', 128), +					'test_string_128'	=> str_repeat("\xC3\x84", 128), +					'test_string_32_64'	=> str_repeat('a', 48), +					'test_string_32_64'	=> str_repeat("\xC3\x84", 48), +					'test_int'			=> 128, +					'test_int_32'		=> 32, +					'test_int_32_64'	=> 48, +					'test_lang'			=> 'en', +				), +			), +		); +	} + +	/** +	* @dataProvider validate_config_vars_fit_data +	*/ +	public function test_validate_config_vars_fit($test_data, $cfg_array) +	{ +		global $user; + +		$user->lang = new phpbb_mock_lang(); + +		$phpbb_error = array(); +		validate_config_vars($test_data, $cfg_array, $phpbb_error); + +		$this->assertEquals(array(), $phpbb_error); +	} + +	/** +	* Data sets that throw the error. +	*/ +	public function validate_config_vars_error_data() +	{ +		return array( +			array( +				array('test_string_32_64'		=> array('lang' => 'TEST_STRING_32_64',	'validate' => 'string:32:64')), +				array('test_string_32_64'	=> str_repeat('a', 20)), +				array('SETTING_TOO_SHORT'), +			), +			array( +				array('test_string_32_64'		=> array('lang' => 'TEST_STRING_32_64',	'validate' => 'string:32:64')), +				array('test_string_32_64'	=> str_repeat("\xC3\x84", 20)), +				array('SETTING_TOO_SHORT'), +			), +			array( +				array('test_string'		=> array('lang' => 'TEST_STRING',	'validate' => 'string')), +				array('test_string'		=> str_repeat('a', 256)), +				array('SETTING_TOO_LONG'), +			), +			array( +				array('test_string'		=> array('lang' => 'TEST_STRING',	'validate' => 'string')), +				array('test_string'		=> str_repeat("\xC3\x84", 256)), +				array('SETTING_TOO_LONG'), +			), +			array( +				array('test_string_32_64'	=> array('lang' => 'TEST_STRING_32_64',	'validate' => 'string:32:64')), +				array('test_string_32_64'	=> str_repeat('a', 65)), +				array('SETTING_TOO_LONG'), +			), +			array( +				array('test_string_32_64'	=> array('lang' => 'TEST_STRING_32_64',	'validate' => 'string:32:64')), +				array('test_string_32_64'	=> str_repeat("\xC3\x84", 65)), +				array('SETTING_TOO_LONG'), +			), + +			array( +				array('test_int_32'		=> array('lang' => 'TEST_INT',			'validate' => 'int:32')), +				array('test_int_32'		=> 31), +				array('SETTING_TOO_LOW'), +			), +			array( +				array('test_int_32_64'	=> array('lang' => 'TEST_INT',			'validate' => 'int:32:64')), +				array('test_int_32_64'	=> 31), +				array('SETTING_TOO_LOW'), +			), +			array( +				array('test_int_32_64'	=> array('lang' => 'TEST_INT',			'validate' => 'int:32:64')), +				array('test_int_32_64'	=> 65), +				array('SETTING_TOO_BIG'), +			), +			array( +				array( +					'test_int_min'	=> array('lang' => 'TEST_INT_MIN',		'validate' => 'int:32:64'), +					'test_int_max'	=> array('lang' => 'TEST_INT_MAX',		'validate' => 'int:32:64'), +				), +				array( +					'test_int_min'	=> 52, +					'test_int_max'	=> 48, +				), +				array('SETTING_TOO_LOW'), +			), +			array( +				array('test_lang'		=> array('lang' => 'TEST_LANG',			'validate' => 'lang')), +				array('test_lang'		=> 'this_is_no_language'), +				array('WRONG_DATA_LANG'), +			), +		); +	} + +	/** +	* @dataProvider validate_config_vars_error_data +	*/ +	public function test_validate_config_vars_error($test_data, $cfg_array, $expected) +	{ +		global $user; + +		$user->lang = new phpbb_mock_lang(); + +		$phpbb_error = array(); +		validate_config_vars($test_data, $cfg_array, $phpbb_error); + +		$this->assertEquals($expected, $phpbb_error); +	} +} diff --git a/tests/functions_acp/validate_range_test.php b/tests/functions_acp/validate_range_test.php new file mode 100644 index 0000000000..8606158251 --- /dev/null +++ b/tests/functions_acp/validate_range_test.php @@ -0,0 +1,170 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2010 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; +require_once dirname(__FILE__) . '/../../phpBB/includes/functions_acp.php'; + +class phpbb_functions_acp_validate_range_test extends phpbb_test_case +{ +	/** +	* Data sets that don't throw an error. +	*/ +	public function validate_range_data_fit() +	{ +		return array( +			array(array(array('column_type' => 'BOOL', 'lang' => 'TEST', 'value' => 0))), +			array(array(array('column_type' => 'BOOL', 'lang' => 'TEST', 'value' => 1))), + +			array(array(array('column_type' => 'USINT', 'lang' => 'TEST', 'value' => 0))), +			array(array(array('column_type' => 'USINT', 'lang' => 'TEST', 'value' => 65535))), +			array(array(array('column_type' => 'USINT:32:128', 'lang' => 'TEST', 'value' => 35))), + +			array(array(array('column_type' => 'UINT', 'lang' => 'TEST', 'value' => 0))), +			array(array(array('column_type' => 'UINT', 'lang' => 'TEST', 'value' => (int) 0x7fffffff))), +			array(array(array('column_type' => 'UINT:32:128', 'lang' => 'TEST', 'value' => 35))), + +			array(array(array('column_type' => 'INT', 'lang' => 'TEST', 'value' => (int) -2147483648))), +			array(array(array('column_type' => 'INT', 'lang' => 'TEST', 'value' => (int) 0x7fffffff))), +			array(array(array('column_type' => 'INT:-32:128', 'lang' => 'TEST', 'value' => -28))), +			array(array(array('column_type' => 'INT:-32:128', 'lang' => 'TEST', 'value' => 35))), + +			array(array(array('column_type' => 'TINT', 'lang' => 'TEST', 'value' => -128))), +			array(array(array('column_type' => 'TINT', 'lang' => 'TEST', 'value' => 127))), +			array(array(array('column_type' => 'TINT:-32:64', 'lang' => 'TEST', 'value' => -16))), +			array(array(array('column_type' => 'TINT:-32:64', 'lang' => 'TEST', 'value' => 16))), + +			array(array(array('column_type' => 'VCHAR', 'lang' => 'TEST', 'value' => ''))), +			array(array(array('column_type' => 'VCHAR', 'lang' => 'TEST', 'value' => str_repeat('a', 255)))), +			array(array(array('column_type' => 'VCHAR', 'lang' => 'TEST', 'value' => str_repeat("\xC3\x84", 255)))), +			array(array(array('column_type' => 'VCHAR:128', 'lang' => 'TEST', 'value' => str_repeat('a', 128)))), +			array(array(array('column_type' => 'VCHAR:128', 'lang' => 'TEST', 'value' => str_repeat("\xC3\x84", 128)))), +		); +	} + +	/** +	* @dataProvider validate_range_data_fit +	*/ +	public function test_validate_range_fit($test_data) +	{ +		global $user; + +		$user->lang = new phpbb_mock_lang(); + +		$phpbb_error = array(); +		validate_range($test_data, $phpbb_error); + +		$this->assertEquals(array(), $phpbb_error); +	} + +	/** +	* Data sets that throw the SETTING_TOO_LOW-error. +	*/ +	public function validate_range_data_too_low() +	{ +		return array( +			array(array(array('column_type' => 'BOOL', 'lang' => 'TEST', 'value' => -1))), + +			array(array(array('column_type' => 'USINT', 'lang' => 'TEST', 'value' => -1))), +			array(array(array('column_type' => 'USINT:32:128', 'lang' => 'TEST', 'value' => 31))), + +			array(array(array('column_type' => 'UINT', 'lang' => 'TEST', 'value' => -1))), +			array(array(array('column_type' => 'UINT:32:128', 'lang' => 'TEST', 'value' => 31))), + +			array(array(array('column_type' => 'INT', 'lang' => 'TEST', 'value' => ((int) -2147483648) - 1))), +			array(array(array('column_type' => 'INT:32:128', 'lang' => 'TEST', 'value' => 31))), +			array(array(array('column_type' => 'INT:-32:128', 'lang' => 'TEST', 'value' => -33))), + +			array(array(array('column_type' => 'TINT', 'lang' => 'TEST', 'value' => -129))), +			array(array(array('column_type' => 'TINT:32:64', 'lang' => 'TEST', 'value' => 31))), +			array(array(array('column_type' => 'TINT:-32:64', 'lang' => 'TEST', 'value' => -33))), +		); +	} + +	/** +	* @dataProvider validate_range_data_too_low +	*/ +	public function test_validate_range_too_low($test_data) +	{ +		global $user; + +		$user->lang = new phpbb_mock_lang(); + +		$phpbb_error = array(); +		validate_range($test_data, $phpbb_error); + +		$this->assertEquals(array('SETTING_TOO_LOW'), $phpbb_error); +	} + +	/** +	* Data sets that throw the SETTING_TOO_BIG-error. +	*/ +	public function validate_range_data_too_big() +	{ +		return array( +			array(array(array('column_type' => 'BOOL', 'lang' => 'TEST', 'value' => 2))), + +			array(array(array('column_type' => 'USINT', 'lang' => 'TEST', 'value' => 65536))), +			array(array(array('column_type' => 'USINT:32:128', 'lang' => 'TEST', 'value' => 129))), + +			array(array(array('column_type' => 'UINT', 'lang' => 'TEST', 'value' => ((int) 0x7fffffff) + 1))), +			array(array(array('column_type' => 'UINT:32:128', 'lang' => 'TEST', 'value' => 129))), + +			array(array(array('column_type' => 'INT', 'lang' => 'TEST', 'value' => ((int) 0x7fffffff) + 1))), +			array(array(array('column_type' => 'INT:-32:-16', 'lang' => 'TEST', 'value' => -15))), +			array(array(array('column_type' => 'INT:-32:128', 'lang' => 'TEST', 'value' => 129))), + +			array(array(array('column_type' => 'TINT', 'lang' => 'TEST', 'value' => 128))), +			array(array(array('column_type' => 'TINT:-32:-16', 'lang' => 'TEST', 'value' => -15))), +			array(array(array('column_type' => 'TINT:-32:64', 'lang' => 'TEST', 'value' => 65))), +		); +	} + +	/** +	* @dataProvider validate_range_data_too_big +	*/ +	public function test_validate_range_too_big($test_data) +	{ +		global $user; + +		$user->lang = new phpbb_mock_lang(); + +		$phpbb_error = array(); +		validate_range($test_data, $phpbb_error); + +		$this->assertEquals(array('SETTING_TOO_BIG'), $phpbb_error); +	} + +	/** +	* Data sets that throw the SETTING_TOO_LONG-error. +	*/ +	public function validate_range_data_too_long() +	{ +		return array( +			array(array(array('column_type' => 'VCHAR', 'lang' => 'TEST', 'value' => str_repeat('a', 256)))), +			array(array(array('column_type' => 'VCHAR', 'lang' => 'TEST', 'value' => str_repeat("\xC3\x84", 256)))), +			array(array(array('column_type' => 'VCHAR:128', 'lang' => 'TEST', 'value' => str_repeat('a', 129)))), +			array(array(array('column_type' => 'VCHAR:128', 'lang' => 'TEST', 'value' => str_repeat("\xC3\x84", 129)))), +		); +	} + +	/** +	* @dataProvider validate_range_data_too_long +	*/ +	public function test_validate_range_too_long($test_data) +	{ +		global $user; + +		$user->lang = new phpbb_mock_lang(); + +		$phpbb_error = array(); +		validate_range($test_data, $phpbb_error); + +		$this->assertEquals(array('SETTING_TOO_LONG'), $phpbb_error); +	} +} | 
