diff --git a/core/modules/language/lib/Drupal/language/Tests/LanguageListModuleInstallTest.php b/core/modules/language/lib/Drupal/language/Tests/LanguageListModuleInstallTest.php new file mode 100644 index 0000000..89e5c07 --- /dev/null +++ b/core/modules/language/lib/Drupal/language/Tests/LanguageListModuleInstallTest.php @@ -0,0 +1,50 @@ + 'Language list during module install', + 'description' => 'Tests enabling Language if a module exists that calls language_list during installation.', + 'group' => 'Language', + ); + } + + /** + * Tests enabling Language. + */ + function testModuleInstallLanguageList() { + // Since language_list uses static caches we need to do this be enabling + // the module using a the UI. + $admin_user = $this->drupalCreateUser(array('access administration pages', 'administer modules')); + $this->drupalLogin($admin_user); + $edit = array(); + $edit['modules[Multilingual][language][enable]'] = 'language'; + $this->drupalPostForm('admin/modules', $edit, t('Save configuration')); + + $this->assertEqual(\Drupal::state()->get('language_test.language_count_preinstall', 0), 1, 'Using language_list() returns 1 language during Language installation.'); + + // Get updated module list by rebuilding container. + $this->rebuildContainer(); + $this->assertTrue(\Drupal::moduleHandler()->moduleExists('language'), 'Language module is enabled'); + } +} diff --git a/core/modules/language/tests/language_test/language_test.module b/core/modules/language/tests/language_test/language_test.module index 8e8cbaf..31c0a84 100644 --- a/core/modules/language/tests/language_test/language_test.module +++ b/core/modules/language/tests/language_test/language_test.module @@ -128,3 +128,10 @@ function language_test_language_fallback_candidates_test_alter(array &$candidate $candidates[$langcode] = $langcode; } } + +/** + * Implements hook_module_preinstall(). + */ +function language_test_module_preinstall() { + \Drupal::state()->set('language_test.language_count_preinstall', count(language_list())); +}