mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-30 21:40:43 +02:00
Merge branch '3.2.x' into 3.3.x
This commit is contained in:
115
tests/group/helper_get_name_string_test.php
Normal file
115
tests/group/helper_get_name_string_test.php
Normal file
@@ -0,0 +1,115 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
require_once dirname(__FILE__) . '/helper_test_case.php';
|
||||
|
||||
class phpbb_group_helper_get_name_string_test extends phpbb_group_helper_test_case
|
||||
{
|
||||
|
||||
public function get_name_string_profile_data()
|
||||
{
|
||||
global $phpbb_root_path, $phpEx;
|
||||
|
||||
return array(
|
||||
array(0, 'Non existing group', '', false, ''),
|
||||
array(2, 'Administrators', 'AA0000', false, "{$phpbb_root_path}memberlist.$phpEx?mode=group&g=2"),
|
||||
array(42, 'Example Group', '', 'http://www.example.org/group.php?mode=show', 'http://www.example.org/group.php?mode=show&g=42'),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider get_name_string_profile_data
|
||||
*/
|
||||
public function test_get_name_string_profile($group_id, $group_name, $group_colour, $custom_profile_url, $expected)
|
||||
{
|
||||
$this->assertEquals($expected, $this->group_helper->get_name_string('profile', $group_id, $group_name, $group_colour, $custom_profile_url));
|
||||
}
|
||||
|
||||
public function get_name_string_group_name_data()
|
||||
{
|
||||
return array(
|
||||
// Should be fine
|
||||
array(0, 'BOTS', 'AA0000', false, 'Bots'),
|
||||
array(1, 'new_group', '', false, 'Some new group'),
|
||||
array(2, 'group_with_ümlauts', '', 'http://www.example.org/group.php?mode=show', 'Should work'),
|
||||
|
||||
// Should fail and thus return the same
|
||||
array(3, 'not_uppercase', 'FFFFFF', false, 'not_uppercase'),
|
||||
array(4, 'Awesome group', '', false, 'Awesome group'),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider get_name_string_group_name_data
|
||||
*/
|
||||
public function test_get_name_string_group_name($group_id, $group_name, $group_colour, $custom_profile_url, $expected)
|
||||
{
|
||||
$this->assertEquals($expected, $this->group_helper->get_name_string('group_name', $group_id, $group_name, $group_colour, $custom_profile_url));
|
||||
}
|
||||
|
||||
public function get_name_string_colour_data()
|
||||
{
|
||||
return array(
|
||||
array(0, '', '', false, ''),
|
||||
array(0, '', 'F0F0F0', false, '#F0F0F0'),
|
||||
array(1, 'Guests', '000000', false, '#000000'),
|
||||
array(2, 'Administrators', '', false, ''),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider get_name_string_colour_data
|
||||
*/
|
||||
public function test_get_name_string_colour($group_id, $group_name, $group_colour, $custom_profile_url, $expected)
|
||||
{
|
||||
$this->assertEquals($expected, $this->group_helper->get_name_string('colour', $group_id, $group_name, $group_colour, $custom_profile_url));
|
||||
}
|
||||
|
||||
public function get_name_string_full_data()
|
||||
{
|
||||
global $phpbb_root_path, $phpEx;
|
||||
|
||||
return array(
|
||||
array(0, 'BOTS', '000000', false, '<span class="username-coloured" style="color: #000000;">Bots</span>'),
|
||||
array(1, 'BOTS', '111111', false, '<span class="username-coloured" style="color: #111111;">Bots</span>'),
|
||||
array(7, 'new_group', 'FFA500', false, '<a class="username-coloured" href="' . $phpbb_root_path . 'memberlist.' . $phpEx . '?mode=group&g=7" style="color: #FFA500;">Some new group</a>'),
|
||||
array(14, 'Awesome group', '', 'http://www.example.org/group.php?mode=show', '<a class="username" href="http://www.example.org/group.php?mode=show&g=14">Awesome group</a>'),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider get_name_string_full_data
|
||||
*/
|
||||
public function test_get_name_string_full($group_id, $group_name, $group_colour, $custom_profile_url, $expected)
|
||||
{
|
||||
$this->assertEquals($expected, $this->group_helper->get_name_string('full', $group_id, $group_name, $group_colour, $custom_profile_url));
|
||||
}
|
||||
|
||||
public function get_name_string_no_profile_data()
|
||||
{
|
||||
return array(
|
||||
array(0, 'BOTS', '000000', false, '<span class="username-coloured" style="color: #000000;">Bots</span>'),
|
||||
array(1, 'new_group', '', false, '<span class="username">Some new group</span>'),
|
||||
array(2, 'not_uppercase', 'FF0000', false, '<span class="username-coloured" style="color: #FF0000;">not_uppercase</span>'),
|
||||
array(5, 'Awesome group', '', 'http://www.example.org/group.php?mode=show', '<span class="username">Awesome group</span>'),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider get_name_string_no_profile_data
|
||||
*/
|
||||
public function test_get_name_string_no_profile($group_id, $group_name, $group_colour, $custom_profile_url, $expected)
|
||||
{
|
||||
$this->assertEquals($expected, $this->group_helper->get_name_string('no_profile', $group_id, $group_name, $group_colour, $custom_profile_url));
|
||||
}
|
||||
}
|
31
tests/group/helper_get_name_test.php
Normal file
31
tests/group/helper_get_name_test.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
require_once dirname(__FILE__) . '/helper_test_case.php';
|
||||
|
||||
class phpbb_group_helper_get_name_test extends phpbb_group_helper_test_case
|
||||
{
|
||||
public function test_get_name()
|
||||
{
|
||||
// They should be totally fine
|
||||
$this->assertEquals('Bots', $this->group_helper->get_name('Bots'));
|
||||
$this->assertEquals('Some new group', $this->group_helper->get_name('new_group'));
|
||||
$this->assertEquals('Should work', $this->group_helper->get_name('group_with_ümlauts'));
|
||||
|
||||
// This should fail (obviously)
|
||||
$this->assertNotEquals('The key does not contain uppercase letters', $this->group_helper->get_name('not_uppercase'));
|
||||
|
||||
// The key doesn't exist so just return group name...
|
||||
$this->assertEquals('Awesome group', $this->group_helper->get_name('Awesome group'));
|
||||
}
|
||||
}
|
43
tests/group/helper_get_rank_test.php
Normal file
43
tests/group/helper_get_rank_test.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
require_once dirname(__FILE__) . '/helper_test_case.php';
|
||||
|
||||
class phpbb_group_helper_get_rank_test extends phpbb_group_helper_test_case
|
||||
{
|
||||
public function get_rank_data()
|
||||
{
|
||||
global $phpbb_root_path;
|
||||
|
||||
return array(
|
||||
array(
|
||||
array('group_id' => 0, 'group_rank' => 1),
|
||||
array(
|
||||
'title' => 'Site admin',
|
||||
'img' => '<img src="' . $phpbb_root_path . 'images/ranks/siteadmin.png' . '" alt="Site admin" title="Site admin" />',
|
||||
'img_src' => $phpbb_root_path . 'images/ranks/siteadmin.png',
|
||||
)
|
||||
),
|
||||
array(array('group_id' => 1, 'group_rank' => 0), array('title' => null, 'img' => null, 'img_src' => null)),
|
||||
array(array('group_id' => 2, 'group_rank' => 2), array('title' => 'Test member', 'img' => '', 'img_src' => '')),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider get_rank_data
|
||||
*/
|
||||
public function test_get_rank($group_data, $expected)
|
||||
{
|
||||
$this->assertEquals($expected, $this->group_helper->get_rank($group_data));
|
||||
}
|
||||
}
|
@@ -1,68 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @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 extends phpbb_test_case
|
||||
{
|
||||
/** @var \phpbb\group\helper */
|
||||
protected $group_helper;
|
||||
|
||||
public function setUp(): void
|
||||
{
|
||||
global $phpbb_root_path, $phpEx;
|
||||
|
||||
// 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 group helper
|
||||
$this->group_helper = new \phpbb\group\helper($lang);
|
||||
}
|
||||
|
||||
public function test_get_name()
|
||||
{
|
||||
// They should be totally fine
|
||||
$this->assertEquals('Bots', $this->group_helper->get_name('Bots'));
|
||||
$this->assertEquals('Some new group', $this->group_helper->get_name('new_group'));
|
||||
$this->assertEquals('Should work', $this->group_helper->get_name('group_with_ümlauts'));
|
||||
|
||||
// This should fail (obviously)
|
||||
$this->assertNotEquals('They key does not contain uppercase letters', $this->group_helper->get_name('not_uppercase'));
|
||||
|
||||
// The key doesn't exist so just return group name...
|
||||
$this->assertEquals('Awesome group', $this->group_helper->get_name('Awesome group'));
|
||||
}
|
||||
|
||||
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',
|
||||
);
|
||||
}
|
||||
}
|
123
tests/group/helper_test_case.php
Normal file
123
tests/group/helper_test_case.php
Normal file
@@ -0,0 +1,123 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @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
|
||||
$path_helper = $this->getMockBuilder('\phpbb\path_helper')
|
||||
->disableOriginalConstructor()
|
||||
->setMethods(array())
|
||||
->getMock();
|
||||
$path_helper->method('get_phpbb_root_path')
|
||||
->willReturn($phpbb_root_path);
|
||||
$path_helper->method('get_php_ext')
|
||||
->willReturn($phpEx);
|
||||
$path_helper->method('update_web_root_path')
|
||||
->will($this->returnArgument(0));
|
||||
|
||||
$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();
|
||||
}
|
||||
}
|
@@ -49,9 +49,23 @@ class phpbb_notification_group_request_test extends phpbb_tests_notification_bas
|
||||
$this->cache->get_driver()
|
||||
));
|
||||
$this->container->set('group_helper', new \phpbb\group\helper(
|
||||
$this->getMock('\phpbb\auth\auth'),
|
||||
$this->cache,
|
||||
$this->config,
|
||||
new \phpbb\language\language(
|
||||
new phpbb\language\language_file_loader($phpbb_root_path, $phpEx)
|
||||
)
|
||||
),
|
||||
new phpbb_mock_event_dispatcher(),
|
||||
new \phpbb\path_helper(
|
||||
new \phpbb\symfony_request(
|
||||
new phpbb_mock_request()
|
||||
),
|
||||
new \phpbb\filesystem\filesystem(),
|
||||
$this->getMock('\phpbb\request\request'),
|
||||
$phpbb_root_path,
|
||||
$phpEx
|
||||
),
|
||||
$this->user
|
||||
));
|
||||
$phpbb_dispatcher = new phpbb_mock_event_dispatcher;
|
||||
$phpbb_log = new \phpbb\log\dummy();
|
||||
|
Reference in New Issue
Block a user