comparison core/modules/language/tests/src/Kernel/LanguageDependencyInjectionTest.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4c8ae668cc8c
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 }