LanguageDependencyInjectionTest.php in Zircon Profile 8        
                          
                  
                        
  
  
  
File
  core/modules/language/src/Tests/LanguageDependencyInjectionTest.php
  
    View source  
  <?php
namespace Drupal\language\Tests;
use Drupal\language\Entity\ConfigurableLanguage;
use Drupal\language\Exception\DeleteDefaultLanguageException;
class LanguageDependencyInjectionTest extends LanguageTestBase {
  
  function testDependencyInjectedNewLanguage() {
    $expected = $this->languageManager
      ->getDefaultLanguage();
    $result = $this->languageManager
      ->getCurrentLanguage();
    foreach ($expected as $property => $value) {
      $this
        ->assertEqual($expected->{$property}, $result->{$property}, format_string('The dependency injected language object %prop property equals the new Language object %prop property.', array(
        '%prop' => $property,
      )));
    }
  }
  
  function testDependencyInjectedNewDefaultLanguage() {
    $default_language = ConfigurableLanguage::load(\Drupal::languageManager()
      ->getDefaultLanguage()
      ->getId());
    
    ConfigurableLanguage::createFromLangcode('fr')
      ->save();
    $this
      ->config('system.site')
      ->set('default_langcode', 'fr')
      ->save();
    
    $result = \Drupal::languageManager()
      ->getCurrentLanguage();
    $this
      ->assertIdentical($result
      ->getId(), 'fr');
    
    try {
      entity_delete_multiple('configurable_language', array(
        'fr',
      ));
      $this
        ->fail('Expected DeleteDefaultLanguageException thrown.');
    } catch (DeleteDefaultLanguageException $e) {
      $this
        ->pass('Expected DeleteDefaultLanguageException thrown.');
    }
    
    $this
      ->config('system.site')
      ->set('default_langcode', $default_language
      ->getId())
      ->save();
    entity_delete_multiple('configurable_language', array(
      'fr',
    ));
    $result = \Drupal::languageManager()
      ->getCurrentLanguage();
    $this
      ->assertIdentical($result
      ->getId(), $default_language
      ->getId());
  }
}