diff options
Diffstat (limited to 'tests')
25 files changed, 462 insertions, 49 deletions
| diff --git a/tests/auth/provider_apache_test.php b/tests/auth/provider_apache_test.php index e135a1f002..d7509a72bf 100644 --- a/tests/auth/provider_apache_test.php +++ b/tests/auth/provider_apache_test.php @@ -7,7 +7,8 @@  *  */ -require_once dirname(__FILE__).'/../../phpBB/includes/functions.php'; +require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; +require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php';  class phpbb_auth_provider_apache_test extends phpbb_database_test_case  { diff --git a/tests/auth/provider_db_test.php b/tests/auth/provider_db_test.php index 140a28cd3d..45a893220b 100644 --- a/tests/auth/provider_db_test.php +++ b/tests/auth/provider_db_test.php @@ -7,7 +7,8 @@  *  */ -require_once dirname(__FILE__).'/../../phpBB/includes/functions.php'; +require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; +require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php';  class phpbb_auth_provider_db_test extends phpbb_database_test_case  { diff --git a/tests/functional/avatar_acp_groups_test.php b/tests/functional/avatar_acp_groups_test.php index 5e908bc6da..5f767b44f2 100644 --- a/tests/functional/avatar_acp_groups_test.php +++ b/tests/functional/avatar_acp_groups_test.php @@ -69,4 +69,13 @@ class phpbb_functional_avatar_acp_groups_test extends phpbb_functional_common_av  	{  		$this->assert_avatar_submit($expected, $avatar_type, $data);  	} + +	// Test if avatar was really deleted +	public function test_no_avatar_acp_groups() +	{ +		$crawler = self::request('GET', $this->get_url() . '&sid=' . $this->sid); +		$form = $crawler->selectButton($this->lang('SUBMIT'))->form(); +		$form_data = $form->getValues(); +		$this->assertEmpty($form_data['avatar_type']); +	}  } diff --git a/tests/functional/extension_module_test.php b/tests/functional/extension_module_test.php index 090cd38daf..ba025d582e 100644 --- a/tests/functional/extension_module_test.php +++ b/tests/functional/extension_module_test.php @@ -80,18 +80,53 @@ class phpbb_functional_extension_module_test extends phpbb_functional_test_case  		);  		$modules->update_module_data($module_data, true); +		$parent_data = array( +			'module_basename'	=> '', +			'module_enabled'	=> 1, +			'module_display'	=> 1, +			'parent_id'			=> 0, +			'module_class'		=> 'ucp', +			'module_langname'	=> 'UCP_FOOBAR_TITLE', +			'module_mode'		=> '', +			'module_auth'		=> '', +		); +		$modules->update_module_data($parent_data, true); + +		$module_data = array( +			'module_basename'	=> 'foo\\bar\\ucp\\main_module', +			'module_enabled'	=> 1, +			'module_display'	=> 1, +			'parent_id'			=> $parent_data['module_id'], +			'module_class'		=> 'ucp', +			'module_langname'	=> 'UCP_FOOBAR_TITLE', +			'module_mode'		=> 'mode', +			'module_auth'		=> '', +		); +		$modules->update_module_data($module_data, true); +  		$this->purge_cache();  	} -	/** -	* Check a controller for extension foo/bar. -	*/ -	public function test_foo_bar() +	public function test_acp()  	{  		$this->login();  		$this->admin_login(); +  		$crawler = self::request('GET', 'adm/index.php?i=foo%5cbar%5cacp%5cmain_module&mode=mode&sid=' . $this->sid); -		$this->assertContains("Bertie rulez!", $crawler->filter('#main')->text()); +		$this->assertContains('Bertie rulez!', $crawler->filter('#main')->text()); +	} + +	public function test_ucp() +	{ +		$this->login(); + +		$crawler = self::request('GET', 'ucp.php?sid=' . $this->sid); +		$this->assertContains('UCP_FOOBAR_TITLE', $crawler->filter('#tabs')->text()); + +		$link = $crawler->selectLink('UCP_FOOBAR_TITLE')->link()->getUri(); +		$crawler = self::request('GET', substr($link, strpos($link, 'ucp.'))); +		$this->assertContains('UCP Extension Template Test Passed!', $crawler->filter('#content')->text()); +  		$this->phpbb_extension_manager->purge('foo/bar');  	}  } diff --git a/tests/functional/fixtures/ext/foo/bar/styles/prosilver/template/foobar.html b/tests/functional/fixtures/ext/foo/bar/styles/prosilver/template/foobar.html new file mode 100644 index 0000000000..cbded623f4 --- /dev/null +++ b/tests/functional/fixtures/ext/foo/bar/styles/prosilver/template/foobar.html @@ -0,0 +1,3 @@ +<!-- INCLUDE overall_header.html --> +<div id="content">UCP Extension Template Test Passed!</div> +<!-- INCLUDE overall_footer.html --> diff --git a/tests/functional/fixtures/ext/foo/bar/ucp/main_info.php b/tests/functional/fixtures/ext/foo/bar/ucp/main_info.php new file mode 100644 index 0000000000..2ba37f3050 --- /dev/null +++ b/tests/functional/fixtures/ext/foo/bar/ucp/main_info.php @@ -0,0 +1,26 @@ +<?php + +/** +* +* @package testing +* @copyright (c) 2013 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +namespace foo\bar\ucp; + +class main_info +{ +	function module() +	{ +		return array( +			'filename'	=> '\foo\bar\ucp\main_module', +			'title'		=> 'ACP_FOOBAR_TITLE', +			'version'	=> '1.0.0', +			'modes'		=> array( +				'mode'		=> array('title' => 'ACP_FOOBAR_MODE', 'auth' => '', 'cat' => array('ACP_FOOBAR_TITLE')), +			), +		); +	} +} diff --git a/tests/functional/fixtures/ext/foo/bar/ucp/main_module.php b/tests/functional/fixtures/ext/foo/bar/ucp/main_module.php new file mode 100644 index 0000000000..cd3dacc9db --- /dev/null +++ b/tests/functional/fixtures/ext/foo/bar/ucp/main_module.php @@ -0,0 +1,22 @@ +<?php + +/** +* +* @package testing +* @copyright (c) 2013 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +namespace foo\bar\ucp; + +class main_module +{ +	var $u_action; + +	function main($id, $mode) +	{ +		$this->tpl_name = 'foobar'; +		$this->page_title = 'Bertie'; +	} +} diff --git a/tests/functional/group_create_test.php b/tests/functional/group_create_test.php new file mode 100644 index 0000000000..96780069f7 --- /dev/null +++ b/tests/functional/group_create_test.php @@ -0,0 +1,31 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2013 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +/** +* @group functional +*/ +class phpbb_functional_group_create_test extends phpbb_functional_test_case +{ + +	public function test_create_group() +	{ +		$this->login(); +		$this->admin_login(); +		$this->add_lang('acp/groups'); + +		$crawler = self::request('GET', 'adm/index.php?i=acp_groups&mode=manage&sid=' . $this->sid); +		$form = $crawler->selectButton($this->lang('SUBMIT'))->form(); +		$crawler = self::submit($form, array('group_name' => 'testtest')); + +		$form = $crawler->selectButton($this->lang('SUBMIT'))->form(); +		$crawler = self::submit($form, array('group_name' => 'testtest')); + +		$this->assertContainsLang('GROUP_CREATED', $crawler->filter('#main')->text()); +	} +} diff --git a/tests/functions/obtain_online_test.php b/tests/functions/obtain_online_test.php index 624e05f77f..cf42fd5b58 100644 --- a/tests/functions/obtain_online_test.php +++ b/tests/functions/obtain_online_test.php @@ -21,8 +21,9 @@ class phpbb_functions_obtain_online_test extends phpbb_database_test_case  	{  		parent::setUp(); -		global $config, $db; +		global $config, $db, $user; +		$user = new StdClass;  		$db = $this->db = $this->new_dbal();  		$config = array(  			'load_online_time'	=> 5, diff --git a/tests/functions/validate_password_test.php b/tests/functions/validate_password_test.php index 4639f6cc89..82c5fa03c1 100644 --- a/tests/functions/validate_password_test.php +++ b/tests/functions/validate_password_test.php @@ -7,6 +7,7 @@  *  */ +require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';  require_once dirname(__FILE__) . '/../../phpBB/includes/functions_user.php';  require_once dirname(__FILE__) . '/validate_data_helper.php'; diff --git a/tests/functions_acp/build_cfg_template_test.php b/tests/functions_acp/build_cfg_template_test.php index acf4da1bd6..7f8db799c5 100644 --- a/tests/functions_acp/build_cfg_template_test.php +++ b/tests/functions_acp/build_cfg_template_test.php @@ -234,4 +234,54 @@ class phpbb_functions_acp_build_cfg_template_test extends phpbb_test_case  		$this->assertEquals($expected, build_cfg_template($tpl_type, $key, $new, $config_key, $vars));  	} + +	public function build_cfg_template_select_data() +	{ +		return array( +			array( +				array('select'), +				'key_name', +				array('config_key_name'	=> '0'), +				'config_key_name', +				array('method' => 'select_helper'), +				'<select id="key_name" name="config[config_key_name]"><option value="1">First_Option</option><option value="2" selected="selected">Second_Option</option><option value="3">Third_Option</option></select>', +			), +			array( +				array('select', 8), +				'key_name', +				array('config_key_name'	=> '1'), +				'config_key_name', +				array('method' => 'select_helper'), +				'<select id="key_name" name="config[config_key_name]" size="8"><option value="1">First_Option</option><option value="2" selected="selected">Second_Option</option><option value="3">Third_Option</option></select>', +			), +		); +	} + +	/** +	* @dataProvider build_cfg_template_select_data +	*/ +	public function test_build_cfg_template_select($tpl_type, $key, $new, $config_key, $vars, $expected) +	{ +		global $module, $user, $phpbb_dispatcher; + +		$phpbb_dispatcher = new phpbb_mock_event_dispatcher(); +		$user = new phpbb_mock_user(); +		$user->lang = new phpbb_mock_lang(); +		$user->module = $this; +		$module = $user; + +		$this->assertEquals($expected, build_cfg_template($tpl_type, $key, $new, $config_key, $vars)); +	} + +	public function select_helper() +	{ +		return build_select( +			array( +				'1'	=> 'First_Option', +				'2'	=> 'Second_Option', +				'3'	=> 'Third_Option', +			), +			'2' +		); +	}  } diff --git a/tests/functions_acp/build_select_test.php b/tests/functions_acp/build_select_test.php index aca49b7655..c44fd97ec3 100644 --- a/tests/functions_acp/build_select_test.php +++ b/tests/functions_acp/build_select_test.php @@ -11,6 +11,16 @@ require_once dirname(__FILE__) . '/../../phpBB/includes/functions_acp.php';  class phpbb_functions_acp_built_select_test extends phpbb_test_case  { +	protected function setUp() +	{ +		parent::setUp(); + +		global $user; + +		$user = new phpbb_mock_user(); +		$user->lang = new phpbb_mock_lang(); +	} +  	public function build_select_data()  	{  		return array( @@ -46,10 +56,6 @@ class phpbb_functions_acp_built_select_test extends phpbb_test_case  	*/  	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 index a61f2e8975..4c1872d341 100644 --- a/tests/functions_acp/h_radio_test.php +++ b/tests/functions_acp/h_radio_test.php @@ -11,6 +11,16 @@ require_once dirname(__FILE__) . '/../../phpBB/includes/functions_acp.php';  class phpbb_functions_acp_h_radio_test extends phpbb_test_case  { +	protected function setUp() +	{ +		parent::setUp(); + +		global $user; + +		$user = new phpbb_mock_user(); +		$user->lang = new phpbb_mock_lang(); +	} +  	public function h_radio_data()  	{  		return array( @@ -111,10 +121,6 @@ class phpbb_functions_acp_h_radio_test extends phpbb_test_case  	*/  	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 index 7cd7fa3892..acc98fbf0d 100644 --- a/tests/functions_acp/validate_config_vars_test.php +++ b/tests/functions_acp/validate_config_vars_test.php @@ -8,9 +8,20 @@  */  require_once dirname(__FILE__) . '/../../phpBB/includes/functions_acp.php'; +require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php';  class phpbb_functions_acp_validate_config_vars_test extends phpbb_test_case  { +	protected function setUp() +	{ +		parent::setUp(); + +		global $user; + +		$user = new phpbb_mock_user(); +		$user->lang = new phpbb_mock_lang(); +	} +  	/**  	* Data sets that don't throw an error.  	*/ @@ -60,10 +71,6 @@ class phpbb_functions_acp_validate_config_vars_test extends phpbb_test_case  	*/  	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); @@ -146,10 +153,6 @@ class phpbb_functions_acp_validate_config_vars_test extends phpbb_test_case  	*/  	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); diff --git a/tests/functions_acp/validate_range_test.php b/tests/functions_acp/validate_range_test.php index 8606158251..cb028d4d07 100644 --- a/tests/functions_acp/validate_range_test.php +++ b/tests/functions_acp/validate_range_test.php @@ -12,6 +12,16 @@ require_once dirname(__FILE__) . '/../../phpBB/includes/functions_acp.php';  class phpbb_functions_acp_validate_range_test extends phpbb_test_case  { +	protected function setUp() +	{ +		parent::setUp(); + +		global $user; + +		$user = new phpbb_mock_user(); +		$user->lang = new phpbb_mock_lang(); +	} +  	/**  	* Data sets that don't throw an error.  	*/ @@ -52,10 +62,6 @@ class phpbb_functions_acp_validate_range_test extends phpbb_test_case  	*/  	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); @@ -91,10 +97,6 @@ class phpbb_functions_acp_validate_range_test extends phpbb_test_case  	*/  	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); @@ -130,10 +132,6 @@ class phpbb_functions_acp_validate_range_test extends phpbb_test_case  	*/  	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); @@ -158,10 +156,6 @@ class phpbb_functions_acp_validate_range_test extends phpbb_test_case  	*/  	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); diff --git a/tests/functions_user/group_user_attributes_test.php b/tests/functions_user/group_user_attributes_test.php index f8d52a9a6a..86e4767970 100644 --- a/tests/functions_user/group_user_attributes_test.php +++ b/tests/functions_user/group_user_attributes_test.php @@ -27,7 +27,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes  				2,  				array(  					'group_avatar'	=> '', -					'group_avatar_type'		=> 0, +					'group_avatar_type'		=> '',  					'group_avatar_height'	=> 0,  					'group_avatar_width'	=> 0,  					'group_rank'	=> 0, @@ -43,7 +43,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes  				2,  				array(  					'group_avatar'	=> '', -					'group_avatar_type'		=> 0, +					'group_avatar_type'		=> '',  					'group_avatar_height'	=> 0,  					'group_avatar_width'	=> 0,  					'group_rank'	=> 0, @@ -59,7 +59,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes  				2,  				array(  					'group_avatar'	=> '', -					'group_avatar_type'		=> 0, +					'group_avatar_type'		=> '',  					'group_avatar_height'	=> 0,  					'group_avatar_width'	=> 0,  					'group_rank'	=> 0, @@ -75,7 +75,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes  				3,  				array(  					'group_avatar'	=> 'default2', -					'group_avatar_type'		=> 1, +					'group_avatar_type'		=> 'avatar.driver.upload',  					'group_avatar_height'	=> 1,  					'group_avatar_width'	=> 1,  					'group_rank'	=> 3, @@ -91,7 +91,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes  				3,  				array(  					'group_avatar'	=> 'default2', -					'group_avatar_type'		=> 1, +					'group_avatar_type'		=> 'avatar.driver.upload',  					'group_avatar_height'	=> 1,  					'group_avatar_width'	=> 1,  					'group_rank'	=> 3, @@ -107,7 +107,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes  				3,  				array(  					'group_avatar'	=> 'default2', -					'group_avatar_type'		=> 1, +					'group_avatar_type'		=> 'avatar.driver.upload',  					'group_avatar_height'	=> 1,  					'group_avatar_width'	=> 1,  					'group_rank'	=> 3, @@ -127,6 +127,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes  	{  		global $auth, $cache, $db, $phpbb_dispatcher, $user, $phpbb_container, $phpbb_log, $phpbb_root_path, $phpEx; +		$user = new phpbb_mock_user;  		$user->ip = '';  		$cache = new phpbb_mock_cache;  		$db = $this->new_dbal(); diff --git a/tests/lint_test.php b/tests/lint_test.php index 905067072d..eba117839b 100644 --- a/tests/lint_test.php +++ b/tests/lint_test.php @@ -23,6 +23,10 @@ class phpbb_lint_test extends phpbb_test_case  		}  		self::$exclude = array( +			dirname(__FILE__) . '/../.git', +			dirname(__FILE__) . '/../build/new_version', +			dirname(__FILE__) . '/../build/old_versions', +			dirname(__FILE__) . '/../phpBB/cache',  			// PHP Fatal error:  Cannot declare class Container because the name is already in use in /var/www/projects/phpbb3/tests/../phpBB/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1-1.php on line 20  			// https://gist.github.com/e003913ffd493da63cbc  			dirname(__FILE__) . '/../phpBB/vendor', @@ -45,7 +49,7 @@ class phpbb_lint_test extends phpbb_test_case  		$dh = opendir($root);  		while (($filename = readdir($dh)) !== false)  		{ -			if ($filename == '.' || $filename == '..' || $filename == 'git') +			if ($filename == '.' || $filename == '..')  			{  				continue;  			} diff --git a/tests/mimetype/fixtures/jpg b/tests/mimetype/fixtures/jpgBinary files differ new file mode 100644 index 0000000000..3cd5038e38 --- /dev/null +++ b/tests/mimetype/fixtures/jpg diff --git a/tests/mimetype/guesser_test.php b/tests/mimetype/guesser_test.php new file mode 100644 index 0000000000..9f0371262b --- /dev/null +++ b/tests/mimetype/guesser_test.php @@ -0,0 +1,166 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2013 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +namespace phpbb\mimetype; + +require_once dirname(__FILE__) . '/null_guesser.php'; +require_once dirname(__FILE__) . '/incorrect_guesser.php'; + +function function_exists($name) +{ +	return guesser_test::$function_exists; +} + +class guesser_test extends \phpbb_test_case +{ +	public static $function_exists = true; + +	public function setUp() +	{ +		global $phpbb_root_path; + +		$guessers = array( +			new \Symfony\Component\HttpFoundation\File\MimeType\FileinfoMimeTypeGuesser(), +			new \Symfony\Component\HttpFoundation\File\MimeType\FileBinaryMimeTypeGuesser(), +		); +		$this->guesser = new \phpbb\mimetype\guesser($guessers); +		$this->path = dirname(__FILE__); +		$this->jpg_file = $this->path . '/fixtures/jpg'; +		$this->phpbb_root_path = $phpbb_root_path; +	} + +	public function data_guess_files() +	{ +		return array( +			array('image/gif', 'gif'), +			array('image/png', 'png'), +			array('image/jpeg', 'jpg'), +			array('image/tiff', 'tif'), +			array('text/html', 'txt'), +			array(false, 'foobar'), +		); +	} + +	/** +	* @dataProvider data_guess_files +	*/ +	public function test_guess_files($expected, $file) +	{ +		$this->assertEquals($expected, $this->guesser->guess($this->path . '/../upload/fixture/' . $file)); +	} + +	public function test_file_not_readable() +	{ +		@chmod($this->jpg_file, 0000); +		if (is_readable($this->jpg_file)) +		{ +			@chmod($this->jpg_file, 0644); +			$this->markTestSkipped('is_readable always returns true if user is superuser or chmod does not work'); +		} +		$this->assertEquals(false, $this->guesser->guess($this->jpg_file)); +		@chmod($this->jpg_file, 0644); +		$this->assertEquals('image/jpeg', $this->guesser->guess($this->jpg_file)); +	} + +	public function test_null_guess() +	{ +		$guesser = new \phpbb\mimetype\guesser(array(new \phpbb\mimetype\null_guesser)); +		$this->assertEquals('application/octet-stream', $guesser->guess($this->jpg_file)); +	} + +	public function data_incorrect_guessers() +	{ +		return array( +			array(array(new \phpbb\mimetype\incorrect_guesser)), +			array(array(new \phpbb\mimetype\null_guesser(false))), +			array(array()), +		); +	} + +	/** +	* @dataProvider data_incorrect_guessers +	* +	* @expectedException \LogicException +	*/ +	public function test_incorrect_guesser($guessers) +	{ +		$guesser = new \phpbb\mimetype\guesser($guessers); +	} + +	public function data_content_guesser() +	{ +		return array( +			array( +				array( +					'image/jpeg', +					'image/jpeg', +				), +				array(new \phpbb\mimetype\content_guesser), +				false, +			), +			array( +				array( +					'application/octet-stream', +					'application/octet-stream', +				), +				array(new \phpbb\mimetype\content_guesser), +				true, +			), +			array( +				array( +					'application/octet-stream', +					'image/jpeg', +				), +				array(new \phpbb\mimetype\extension_guesser), +			), +		); +	} + +	/** +	* @dataProvider data_content_guesser +	*/ +	public function test_content_guesser($expected, $guessers, $overload = false) +	{ +		$supported = false; +		self::$function_exists = !$overload; + +		// Cover possible LogicExceptions +		foreach ($guessers as $cur_guesser) +		{ +			$supported += $cur_guesser->is_supported(); +		} + +		if (!$supported) +		{ +			$this->setExpectedException('\LogicException'); +		} + +		$guesser = new \phpbb\mimetype\guesser($guessers); +		$this->assertEquals($expected[0], $guesser->guess($this->jpg_file)); +		$this->assertEquals($expected[1], $guesser->guess($this->jpg_file, $this->jpg_file . '.jpg')); +		@copy($this->jpg_file, $this->jpg_file . '.jpg'); +		$this->assertEquals($expected[1], $guesser->guess($this->jpg_file . '.jpg')); +		@unlink($this->jpg_file . '.jpg'); +	} + +	public function test_sort_priority() +	{ +		$guessers = array( +			'FileinfoMimeTypeGuesser'	=> new \Symfony\Component\HttpFoundation\File\MimeType\FileinfoMimeTypeGuesser, +			'extension_guesser'		=> new \phpbb\mimetype\extension_guesser, +			'FileBinaryMimeTypeGuesser'	=> new \Symfony\Component\HttpFoundation\File\MimeType\FileBinaryMimeTypeGuesser, +			'content_guesser'		=> new \phpbb\mimetype\content_guesser, +		); +		$guessers['content_guesser']->set_priority(5); +		$guessers['extension_guesser']->set_priority(-5); +		usort($guessers, array($this->guesser, 'sort_priority')); +		$this->assertInstanceOf('\phpbb\mimetype\content_guesser', $guessers[0]); +		$this->assertInstanceOf('\phpbb\mimetype\extension_guesser', $guessers[3]); +	} +} diff --git a/tests/mimetype/incorrect_guesser.php b/tests/mimetype/incorrect_guesser.php new file mode 100644 index 0000000000..3939826faa --- /dev/null +++ b/tests/mimetype/incorrect_guesser.php @@ -0,0 +1,18 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2013 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +namespace phpbb\mimetype; + +class incorrect_guesser +{ +	public function guess($file) +	{ +		return 'image/jpeg'; +	} +} diff --git a/tests/mimetype/null_guesser.php b/tests/mimetype/null_guesser.php new file mode 100644 index 0000000000..5316d3726f --- /dev/null +++ b/tests/mimetype/null_guesser.php @@ -0,0 +1,30 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2013 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +namespace phpbb\mimetype; + +class null_guesser +{ +	protected $is_supported; + +	public function __construct($is_supported = true) +	{ +		$this->is_supported = $is_supported; +	} + +	public function is_supported() +	{ +		return $this->is_supported; +	} + +	public function guess($file) +	{ +		return null; +	} +} diff --git a/tests/notification/submit_post_base.php b/tests/notification/submit_post_base.php index a9ed59686a..fb8e2ac807 100644 --- a/tests/notification/submit_post_base.php +++ b/tests/notification/submit_post_base.php @@ -12,7 +12,7 @@ require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php';  require_once dirname(__FILE__) . '/../../phpBB/includes/functions_posting.php';  require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; -class phpbb_notification_submit_post_base extends phpbb_database_test_case +abstract class phpbb_notification_submit_post_base extends phpbb_database_test_case  {  	protected $notifications, $db, $container, $user, $config, $auth, $cache; diff --git a/tests/regex/password_complexity_test.php b/tests/regex/password_complexity_test.php index 07453555ee..e2aefdaac8 100644 --- a/tests/regex/password_complexity_test.php +++ b/tests/regex/password_complexity_test.php @@ -7,6 +7,7 @@  *  */ +require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';  require_once dirname(__FILE__) . '/../../phpBB/includes/functions_user.php';  class phpbb_password_complexity_test extends phpbb_test_case diff --git a/tests/text_processing/generate_text_for_display_test.php b/tests/text_processing/generate_text_for_display_test.php index a157fe7d9a..15905535ac 100644 --- a/tests/text_processing/generate_text_for_display_test.php +++ b/tests/text_processing/generate_text_for_display_test.php @@ -16,7 +16,7 @@ class phpbb_text_processing_generate_text_for_display_test extends phpbb_test_ca  {  	public function setUp()  	{ -		global $cache, $user; +		global $cache, $user, $phpbb_dispatcher;  		parent::setUp(); @@ -24,6 +24,8 @@ class phpbb_text_processing_generate_text_for_display_test extends phpbb_test_ca  		$user = new phpbb_mock_user;  		$user->optionset('viewcensors', false); + +		$phpbb_dispatcher = new phpbb_mock_event_dispatcher();  	}  	public function test_empty_string() diff --git a/tests/user/lang_test.php b/tests/user/lang_test.php index c7c858c59d..9cb9e320b3 100644 --- a/tests/user/lang_test.php +++ b/tests/user/lang_test.php @@ -7,6 +7,8 @@  *  */ +require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; +  class phpbb_user_lang_test extends phpbb_test_case  {  	public function test_user_lang_sprintf() | 
