public function LocaleBuildTest::testBuildProjects in Drupal 9
Same name and namespace in other branches
- 8 core/modules/locale/tests/src/Kernel/LocaleBuildTest.php \Drupal\Tests\locale\Kernel\LocaleBuildTest::testBuildProjects()
Checks if a list of translatable projects gets built.
File
- core/
modules/ locale/ tests/ src/ Kernel/ LocaleBuildTest.php, line 26
Class
- LocaleBuildTest
- Tests building the translatable project information.
Namespace
Drupal\Tests\locale\KernelCode
public function testBuildProjects() {
$this->container
->get('module_handler')
->loadInclude('locale', 'compare.inc');
/** @var \Drupal\Core\Extension\ExtensionList $module_list */
$module_list = \Drupal::service('extension.list.module');
// Make the test modules look like a normal custom module. I.e. make the
// modules not hidden. locale_test_system_info_alter() modifies the project
// info of the locale_test and locale_test_translate modules.
\Drupal::state()
->set('locale.test_system_info_alter', TRUE);
// Confirm the project name and core value before the module is altered.
$projects = locale_translation_build_projects();
$this
->assertSame('locale_test', $projects['locale_test']->name);
$this
->assertSame('all', $projects['locale_test']->core);
$projects['locale_test']->langcode = 'de';
$this
->assertSame('/all/locale_test/locale_test-1.2.de.po', locale_translation_build_server_pattern($projects['locale_test'], '/%core/%project/%project-%version.%language.po'));
// Alter both the name and core value of the project.
\Drupal::state()
->set('locale.test_system_info_alter_name_core', TRUE);
drupal_static_reset('locale_translation_project_list');
$module_list
->reset();
// Confirm the name and core value are changed in $module->info.
$module = $module_list
->get('locale_test');
$this
->assertSame('locale_test_alter', $module->info['name']);
$this
->assertSame('8.6.7', $module->info['core']);
$this
->assertSame('locale_test', $module
->getName());
// Confirm the name and core value are not changed in the project.
$projects = locale_translation_build_projects();
$this
->assertSame('locale_test', $projects['locale_test']->name);
$this
->assertSame('all', $projects['locale_test']->core);
$projects['locale_test']->langcode = 'de';
$this
->assertSame('/all/locale_test/locale_test-1.2.de.po', locale_translation_build_server_pattern($projects['locale_test'], '/%core/%project/%project-%version.%language.po'));
}