Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\Tests\locale\Kernel;
|
Chris@0
|
4
|
Chris@0
|
5 use Drupal\Core\Language\LanguageInterface;
|
Chris@0
|
6 use Drupal\language\Entity\ConfigurableLanguage;
|
Chris@0
|
7 use Drupal\KernelTests\KernelTestBase;
|
Chris@0
|
8
|
Chris@0
|
9 /**
|
Chris@0
|
10 * Tests that the configurable language manager and locale operate correctly.
|
Chris@0
|
11 *
|
Chris@0
|
12 * @group locale
|
Chris@0
|
13 */
|
Chris@0
|
14 class LocaleConfigurableLanguageManagerTest extends KernelTestBase {
|
Chris@0
|
15
|
Chris@0
|
16 /**
|
Chris@0
|
17 * A list of modules to install for this test.
|
Chris@0
|
18 *
|
Chris@0
|
19 * @var array
|
Chris@0
|
20 */
|
Chris@0
|
21 public static $modules = ['language', 'locale'];
|
Chris@0
|
22
|
Chris@0
|
23 public function testGetLanguages() {
|
Chris@0
|
24 $this->installSchema('locale', ['locales_source', 'locales_target', 'locales_location']);
|
Chris@0
|
25 $default_language = new ConfigurableLanguage(['label' => $this->randomMachineName(), 'id' => 'default', 'weight' => 0], 'configurable_language');
|
Chris@0
|
26 $default_language->save();
|
Chris@0
|
27
|
Chris@0
|
28 // Set new default language.
|
Chris@0
|
29 \Drupal::service('language.default')->set($default_language);
|
Chris@0
|
30 \Drupal::service('string_translation')->setDefaultLangcode($default_language->getId());
|
Chris@0
|
31
|
Chris@0
|
32 $languages = \Drupal::service('language_manager')->getLanguages(LanguageInterface::STATE_ALL);
|
Chris@0
|
33 $this->assertEqual(['default', 'und', 'zxx'], array_keys($languages));
|
Chris@0
|
34
|
Chris@0
|
35 $configurableLanguage = new ConfigurableLanguage(['label' => $this->randomMachineName(), 'id' => 'test', 'weight' => 1], 'configurable_language');
|
Chris@0
|
36 // Simulate a configuration sync by setting the flag otherwise the locked
|
Chris@0
|
37 // language weights would be updated whilst saving.
|
Chris@0
|
38 // @see \Drupal\language\Entity\ConfigurableLanguage::postSave()
|
Chris@0
|
39 $configurableLanguage->setSyncing(TRUE)->save();
|
Chris@0
|
40
|
Chris@0
|
41 $languages = \Drupal::service('language_manager')->getLanguages(LanguageInterface::STATE_ALL);
|
Chris@0
|
42 $this->assertEqual(['default', 'test', 'und', 'zxx'], array_keys($languages));
|
Chris@0
|
43 }
|
Chris@0
|
44
|
Chris@0
|
45 }
|