1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-31 22:10:45 +02:00

Merge pull request #3652 from Elsensee/ticket/12143

[ticket/12143] Make it possible to use translated group names for non-special groups

* Elsensee/ticket/12143:
  [ticket/12143] Fix tests after rebase
  [ticket/12143] Avoid no output from get_group_name()
  [ticket/12143] Fix those tests
  [ticket/12143] Add some tests
  [ticket/12143] Oops, fixed array index
  [ticket/12143] Replace group name output
  [ticket/12143] Add group helper class to translate groupnames
  [ticket/12143] Add is_set method to language service
This commit is contained in:
Tristan Darricau
2015-08-23 22:42:18 +02:00
22 changed files with 286 additions and 68 deletions

View File

@@ -0,0 +1,68 @@
<?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()
{
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',
);
}
}

View File

@@ -39,6 +39,20 @@ class phpbb_language_test extends phpbb_test_case
$lang_array->setValue($this->lang, $this->get_test_data_set());
}
public function test_is_set()
{
// Check for non-existing key
$this->assertFalse($this->lang->is_set('VALUE'));
$this->assertFalse($this->lang->is_set(array('dateformat', 'MAYBE')));
// Check for existing key
$this->assertTrue($this->lang->is_set('FOO'));
$this->assertTrue($this->lang->is_set(array('dateformat', 'AGO')));
// Array doesn't exist at all...
$this->assertFalse($this->lang->is_set(array('PHPBB', 'PHP')));
}
public function test_lang()
{
// No param

View File

@@ -23,6 +23,9 @@ services:
cache.driver:
synthetic: true
group_helper:
synthetic: true
path_helper:
synthetic: true

View File

@@ -49,6 +49,11 @@ class phpbb_notification_group_request_test extends phpbb_tests_notification_bas
$this->user,
$this->cache->get_driver()
));
$this->container->set('group_helper', new \phpbb\group\helper(
new \phpbb\language\language(
new phpbb\language\language_file_loader($phpbb_root_path, $phpEx)
)
));
$phpbb_dispatcher = new phpbb_mock_event_dispatcher;
$phpbb_log = new \phpbb\log\dummy();
$this->get_test_case_helpers()->set_s9e_services();