Version 1
[yaffs-website] / web / core / modules / language / tests / src / Functional / LanguageListModuleInstallTest.php
diff --git a/web/core/modules/language/tests/src/Functional/LanguageListModuleInstallTest.php b/web/core/modules/language/tests/src/Functional/LanguageListModuleInstallTest.php
new file mode 100644 (file)
index 0000000..013d00d
--- /dev/null
@@ -0,0 +1,41 @@
+<?php
+
+namespace Drupal\Tests\language\Functional;
+
+use Drupal\Tests\BrowserTestBase;
+
+/**
+ * Tests enabling Language if a module exists that calls
+ * LanguageManager::getLanguages() during installation.
+ *
+ * @group language
+ */
+class LanguageListModuleInstallTest extends BrowserTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = ['language_test'];
+
+  /**
+   * Tests enabling Language.
+   */
+  public function testModuleInstallLanguageList() {
+    // Since LanguageManager::getLanguages() uses static caches we need to do
+    // this by enabling the module using the UI.
+    $admin_user = $this->drupalCreateUser(['access administration pages', 'administer modules']);
+    $this->drupalLogin($admin_user);
+    $edit = [];
+    $edit['modules[language][enable]'] = 'language';
+    $this->drupalPostForm('admin/modules', $edit, t('Install'));
+
+    $this->assertEqual(\Drupal::state()->get('language_test.language_count_preinstall', 0), 1, 'Using LanguageManager::getLanguages() 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');
+  }
+
+}