diff --git a/phpBB/config/default/container/services.yml b/phpBB/config/default/container/services.yml index cd1d872ae0..3ead1e6181 100644 --- a/phpBB/config/default/container/services.yml +++ b/phpBB/config/default/container/services.yml @@ -129,8 +129,6 @@ services: - '@dispatcher' - '@path_helper' - '@user' - - '%core.root_path%' - - '%core.php_ext%' log: class: phpbb\log\log diff --git a/phpBB/phpbb/group/helper.php b/phpBB/phpbb/group/helper.php index 3b4796f3b2..9a53df68d3 100644 --- a/phpBB/phpbb/group/helper.php +++ b/phpBB/phpbb/group/helper.php @@ -14,7 +14,7 @@ namespace phpbb\group; use phpbb\auth\auth; -use phpbb\cache; +use phpbb\cache\service as cache; use phpbb\config\config; use phpbb\language\language; use phpbb\event\dispatcher_interface; @@ -26,7 +26,7 @@ class helper /** @var auth */ protected $auth; - /** @var cache\service */ + /** @var cache */ protected $cache; /** @var config */ @@ -36,10 +36,10 @@ class helper protected $language; /** @var dispatcher_interface */ - protected $phpbb_dispatcher; + protected $dispatcher; /** @var path_helper */ - protected $phpbb_path_helper; + protected $path_helper; /** @var user */ protected $user; @@ -47,40 +47,34 @@ class helper /** @var string phpBB root path */ protected $phpbb_root_path; - /** @var string PHP file extension */ - protected $php_ext; - /** @var array Return templates for a group name string */ protected $name_strings; /** * Constructor * - * @param auth $auth Authentication object - * @param cache\service $cache Cache service object - * @param config $config Configuration object - * @param language $language Language object - * @param dispatcher_interface $phpbb_dispatcher Event dispatcher object - * @param path_helper $phpbb_path_helper Path helper object - * @param user $user User object - * @param string $phpbb_root_path phpBB root path - * @param string $php_ext PHP file extension + * @param auth $auth Authentication object + * @param cache $cache Cache service object + * @param config $config Configuration object + * @param language $language Language object + * @param dispatcher_interface $dispatcher Event dispatcher object + * @param path_helper $path_helper Path helper object + * @param user $user User object */ - public function __construct(auth $auth, cache\service $cache, config $config, language $language, dispatcher_interface $phpbb_dispatcher, path_helper $phpbb_path_helper, user $user, $phpbb_root_path, $php_ext) + public function __construct(auth $auth, cache $cache, config $config, language $language, dispatcher_interface $dispatcher, path_helper $path_helper, user $user) { $this->auth = $auth; $this->cache = $cache; $this->config = $config; $this->language = $language; - $this->phpbb_dispatcher = $phpbb_dispatcher; - $this->phpbb_path_helper = $phpbb_path_helper; + $this->dispatcher = $dispatcher; + $this->path_helper = $path_helper; $this->user = $user; - $this->phpbb_root_path = $phpbb_root_path; - $this->php_ext = $php_ext; + $this->phpbb_root_path = $path_helper->get_phpbb_root_path(); $this->name_strings = array( - 'base_url' => append_sid("{$phpbb_root_path}memberlist.{$php_ext}", 'mode=group&g={GROUP_ID}'), + 'base_url' => append_sid("{$path_helper->get_phpbb_root_path()}memberlist.{$path_helper->get_php_ext()}", 'mode=group&g={GROUP_ID}'), 'tpl_noprofile' => '{GROUP_NAME}', 'tpl_noprofile_colour' => '{GROUP_NAME}', 'tpl_profile' => '{GROUP_NAME}', @@ -207,7 +201,7 @@ class helper 'group_name_string', 'name_strings', ); - extract($this->phpbb_dispatcher->trigger_event('core.modify_group_name_string', compact($vars))); + extract($this->dispatcher->trigger_event('core.modify_group_name_string', compact($vars))); return $group_name_string; } @@ -237,7 +231,7 @@ class helper */ $vars = array('group_data'); - extract($this->phpbb_dispatcher->trigger_event('core.get_group_rank_before', compact($vars))); + extract($this->dispatcher->trigger_event('core.get_group_rank_before', compact($vars))); if (!empty($group_data['group_rank'])) { @@ -250,7 +244,7 @@ class helper $group_rank_data['title'] = $rank['rank_title']; - $group_rank_data['img_src'] = (!empty($rank['rank_image'])) ? $this->phpbb_path_helper->update_web_root_path($this->phpbb_root_path . $this->config['ranks_path'] . '/' . $rank['rank_image']) : ''; + $group_rank_data['img_src'] = (!empty($rank['rank_image'])) ? $this->path_helper->update_web_root_path($this->phpbb_root_path . $this->config['ranks_path'] . '/' . $rank['rank_image']) : ''; $group_rank_data['img'] = (!empty($rank['rank_image'])) ? '' . $rank['rank_title'] . '' : ''; } @@ -269,7 +263,7 @@ class helper 'group_data', 'group_rank_data', ); - extract($this->phpbb_dispatcher->trigger_event('core.get_group_rank_after', compact($vars))); + extract($this->dispatcher->trigger_event('core.get_group_rank_after', compact($vars))); return $group_rank_data; } diff --git a/tests/group/helper_test_case.php b/tests/group/helper_test_case.php index 1318cf9040..cfbcd5890c 100644 --- a/tests/group/helper_test_case.php +++ b/tests/group/helper_test_case.php @@ -1,123 +1,123 @@ - - * @license GNU General Public License, version 2 (GPL-2.0) - * - * For full copyright and license information, please see - * the docs/CREDITS.txt file. - * - */ - -class phpbb_group_helper_test_case extends phpbb_test_case -{ - /** @var \phpbb\group\helper */ - protected $group_helper; - - protected function config_defaults() - { - $defaults = array( - 'ranks_path' => 'images/ranks' - ); - return $defaults; - } - - protected function get_test_language_data_set() - { - return array( - 'G_BOTS' => 'Bots', - 'G_NEW_GROUP' => 'Some new group', - 'G_not_uppercase' => 'The key does not contain uppercase letters', - 'G_GROUP_WITH_ÜMLAUTS' => 'Should work', - ); - } - - protected function get_test_rank_data_set() - { - return array( - 'special' => array( - 1 => array( - 'rank_id' => 1, - 'rank_title' => 'Site admin', - 'rank_special' => 1, - 'rank_image' => 'siteadmin.png', - ), - 2 => array( - 'rank_id' => 2, - 'rank_title' => 'Test member', - 'rank_special' => 1, - 'rank_image' => '', - ) - ) - ); - } - - protected function setup_engine(array $new_config = array()) - { - global $cache, $phpbb_dispatcher, $phpbb_root_path, $phpEx; - - // Set up authentication data for testing - $auth = $this->getMock('\phpbb\auth\auth'); - $auth->expects($this->any()) - ->method('acl_get') - ->with($this->stringContains('_'), $this->anything()) - ->will($this->returnValueMap(array( - array('u_viewprofile', true), - ))); - - // Set up cache service - $cache_service = $this->getMockBuilder('\phpbb\cache\service')->disableOriginalConstructor()->getMock(); - $cache_service->expects($this->any()) - ->method('obtain_ranks') - ->will($this->returnValue($this->get_test_rank_data_set())); - - // Set up configuration - $defaults = $this->config_defaults(); - $config = new \phpbb\config\config(array_merge($defaults, $new_config)); - - // Set up language service - $lang = new \phpbb\language\language( - new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx) - ); - - // Set up language data for testing - $reflection_class = new ReflectionClass('\phpbb\language\language'); - - // Set default language files loaded flag to true - $loaded_flag = $reflection_class->getProperty('common_language_files_loaded'); - $loaded_flag->setAccessible(true); - $loaded_flag->setValue($lang, true); - - // Set up test language data - $lang_array = $reflection_class->getProperty('lang'); - $lang_array->setAccessible(true); - $lang_array->setValue($lang, $this->get_test_language_data_set()); - - // Set up event dispatcher - $phpbb_dispatcher = new phpbb_mock_event_dispatcher(); - - // Set up path helper - $filesystem = new \phpbb\filesystem\filesystem(); - $path_helper = new \phpbb\path_helper( - new \phpbb\symfony_request( - new phpbb_mock_request() - ), - $filesystem, - $this->getMock('\phpbb\request\request'), - $phpbb_root_path, - $phpEx - ); - - $user = new \phpbb\user($lang, '\phpbb\datetime'); - $user->data['user_id'] = ANONYMOUS; - - $this->group_helper = new \phpbb\group\helper($auth, $cache_service, $config, $lang, $phpbb_dispatcher, $path_helper, $user, $phpbb_root_path, $phpEx); - } - - public function setUp() - { - $this->setup_engine(); - } -} + + * @license GNU General Public License, version 2 (GPL-2.0) + * + * For full copyright and license information, please see + * the docs/CREDITS.txt file. + * + */ + +class phpbb_group_helper_test_case extends phpbb_test_case +{ + /** @var \phpbb\group\helper */ + protected $group_helper; + + protected function config_defaults() + { + $defaults = array( + 'ranks_path' => 'images/ranks' + ); + return $defaults; + } + + protected function get_test_language_data_set() + { + return array( + 'G_BOTS' => 'Bots', + 'G_NEW_GROUP' => 'Some new group', + 'G_not_uppercase' => 'The key does not contain uppercase letters', + 'G_GROUP_WITH_ÜMLAUTS' => 'Should work', + ); + } + + protected function get_test_rank_data_set() + { + return array( + 'special' => array( + 1 => array( + 'rank_id' => 1, + 'rank_title' => 'Site admin', + 'rank_special' => 1, + 'rank_image' => 'siteadmin.png', + ), + 2 => array( + 'rank_id' => 2, + 'rank_title' => 'Test member', + 'rank_special' => 1, + 'rank_image' => '', + ) + ) + ); + } + + protected function setup_engine(array $new_config = array()) + { + global $phpbb_dispatcher, $phpbb_root_path, $phpEx; + + // Set up authentication data for testing + $auth = $this->getMock('\phpbb\auth\auth'); + $auth->expects($this->any()) + ->method('acl_get') + ->with($this->stringContains('_'), $this->anything()) + ->will($this->returnValueMap(array( + array('u_viewprofile', true), + ))); + + // Set up cache service + $cache_service = $this->getMockBuilder('\phpbb\cache\service')->disableOriginalConstructor()->getMock(); + $cache_service->expects($this->any()) + ->method('obtain_ranks') + ->will($this->returnValue($this->get_test_rank_data_set())); + + // Set up configuration + $defaults = $this->config_defaults(); + $config = new \phpbb\config\config(array_merge($defaults, $new_config)); + + // Set up language service + $lang = new \phpbb\language\language( + new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx) + ); + + // Set up language data for testing + $reflection_class = new ReflectionClass('\phpbb\language\language'); + + // Set default language files loaded flag to true + $loaded_flag = $reflection_class->getProperty('common_language_files_loaded'); + $loaded_flag->setAccessible(true); + $loaded_flag->setValue($lang, true); + + // Set up test language data + $lang_array = $reflection_class->getProperty('lang'); + $lang_array->setAccessible(true); + $lang_array->setValue($lang, $this->get_test_language_data_set()); + + // Set up event dispatcher + $phpbb_dispatcher = new phpbb_mock_event_dispatcher(); + + // Set up path helper + $filesystem = new \phpbb\filesystem\filesystem(); + $path_helper = new \phpbb\path_helper( + new \phpbb\symfony_request( + new phpbb_mock_request() + ), + $filesystem, + $this->getMock('\phpbb\request\request'), + $phpbb_root_path, + $phpEx + ); + + $user = new \phpbb\user($lang, '\phpbb\datetime'); + $user->data['user_id'] = ANONYMOUS; + + $this->group_helper = new \phpbb\group\helper($auth, $cache_service, $config, $lang, $phpbb_dispatcher, $path_helper, $user); + } + + public function setUp() + { + $this->setup_engine(); + } +} diff --git a/tests/notification/group_request_test.php b/tests/notification/group_request_test.php index f53fe32f2a..e849c66fa5 100644 --- a/tests/notification/group_request_test.php +++ b/tests/notification/group_request_test.php @@ -65,9 +65,7 @@ class phpbb_notification_group_request_test extends phpbb_tests_notification_bas $phpbb_root_path, $phpEx ), - $this->user, - $phpbb_root_path, - $phpEx + $this->user )); $phpbb_dispatcher = new phpbb_mock_event_dispatcher; $phpbb_log = new \phpbb\log\dummy();