Security update for Core, with self-updated composer
[yaffs-website] / web / core / modules / language / tests / src / Kernel / LanguageDependencyInjectionTest.php
1 <?php
2
3 namespace Drupal\Tests\language\Kernel;
4
5 use Drupal\language\Entity\ConfigurableLanguage;
6 use Drupal\language\Exception\DeleteDefaultLanguageException;
7
8 /**
9  * Compares the default language from $GLOBALS against the dependency injected
10  * language object.
11  *
12  * @group language
13  */
14 class LanguageDependencyInjectionTest extends LanguageTestBase {
15
16   /**
17    * Test dependency injected languages against a new Language object.
18    *
19    * @see \Drupal\Core\Language\LanguageInterface
20    */
21   public function testDependencyInjectedNewLanguage() {
22     $expected = $this->languageManager->getDefaultLanguage();
23     $result = $this->languageManager->getCurrentLanguage();
24     foreach ($expected as $property => $value) {
25       $this->assertEqual($expected->$property, $result->$property, format_string('The dependency injected language object %prop property equals the new Language object %prop property.', ['%prop' => $property]));
26     }
27   }
28
29   /**
30    * Test dependency injected Language object against a new default language
31    * object.
32    *
33    * @see \Drupal\Core\Language\Language
34    */
35   public function testDependencyInjectedNewDefaultLanguage() {
36     $default_language = ConfigurableLanguage::load(\Drupal::languageManager()->getDefaultLanguage()->getId());
37     // Change the language default object to different values.
38     ConfigurableLanguage::createFromLangcode('fr')->save();
39     $this->config('system.site')->set('default_langcode', 'fr')->save();
40
41     // The language system creates a Language object which contains the
42     // same properties as the new default language object.
43     $result = \Drupal::languageManager()->getCurrentLanguage();
44     $this->assertIdentical($result->getId(), 'fr');
45
46     // Delete the language to check that we fallback to the default.
47     try {
48       entity_delete_multiple('configurable_language', ['fr']);
49       $this->fail('Expected DeleteDefaultLanguageException thrown.');
50     }
51     catch (DeleteDefaultLanguageException $e) {
52       $this->pass('Expected DeleteDefaultLanguageException thrown.');
53     }
54
55     // Re-save the previous default language and the delete should work.
56     $this->config('system.site')->set('default_langcode', $default_language->getId())->save();
57
58     entity_delete_multiple('configurable_language', ['fr']);
59     $result = \Drupal::languageManager()->getCurrentLanguage();
60     $this->assertIdentical($result->getId(), $default_language->getId());
61   }
62
63 }