function LanguageConfigurationElementTest::testDefaultLangcode
Same name and namespace in other branches
- 10 core/modules/language/tests/src/Functional/LanguageConfigurationElementTest.php \Drupal\Tests\language\Functional\LanguageConfigurationElementTest::testDefaultLangcode()
- 11.x core/modules/language/tests/src/Functional/LanguageConfigurationElementTest.php \Drupal\Tests\language\Functional\LanguageConfigurationElementTest::testDefaultLangcode()
- 9 core/modules/language/tests/src/Functional/LanguageConfigurationElementTest.php \Drupal\Tests\language\Functional\LanguageConfigurationElementTest::testDefaultLangcode()
- 8.9.x core/modules/language/tests/src/Functional/LanguageConfigurationElementTest.php \Drupal\Tests\language\Functional\LanguageConfigurationElementTest::testDefaultLangcode()
Tests that default langcode is correctly returned.
File
-
core/
modules/ language/ tests/ src/ Functional/ LanguageConfigurationElementTest.php, line 104
Class
- LanguageConfigurationElementTest
- Tests the features of the language configuration element field.
Namespace
Drupal\Tests\language\FunctionalCode
public function testDefaultLangcode() : void {
// Add some custom languages.
foreach ([
'aa',
'bb',
'cc',
] as $language_code) {
ConfigurableLanguage::create([
'id' => $language_code,
'label' => $this->randomMachineName(),
])
->save();
}
// Ensure the bundle under test exist, to avoid config validation errors.
EntityTestHelper::createBundle('custom_bundle');
// Fixed language.
ContentLanguageSettings::loadByEntityTypeBundle('entity_test', 'custom_bundle')->setLanguageAlterable(TRUE)
->setDefaultLangcode('bb')
->save();
$this->assertSame('bb', $this->getDefaultLangcode());
// Current interface.
ContentLanguageSettings::loadByEntityTypeBundle('entity_test', 'custom_bundle')->setDefaultLangcode('current_interface')
->save();
$language_interface = \Drupal::languageManager()->getCurrentLanguage();
$this->assertSame($language_interface->getId(), $this->getDefaultLangcode());
// Site's default.
$old_default = \Drupal::languageManager()->getDefaultLanguage();
// Ensure the language entity default value is correct.
$configurable_language = ConfigurableLanguage::load($old_default->getId());
$this->assertTrue($configurable_language->isDefault(), 'The en language entity is flagged as the default language.');
$this->config('system.site')
->set('default_langcode', 'cc')
->save();
ContentLanguageSettings::loadByEntityTypeBundle('entity_test', 'custom_bundle')->setDefaultLangcode(LanguageInterface::LANGCODE_SITE_DEFAULT)
->save();
$this->assertSame('cc', $this->getDefaultLangcode());
// Ensure the language entity default value is correct.
$configurable_language = ConfigurableLanguage::load($old_default->getId());
$this->assertFalse($configurable_language->isDefault(), 'The en language entity is not flagged as the default language.');
$configurable_language = ConfigurableLanguage::load('cc');
// Check calling the
// \Drupal\language\ConfigurableLanguageInterface::isDefault() method
// directly.
$this->assertTrue($configurable_language->isDefault(), 'The cc language entity is flagged as the default language.');
// Check the default value of a language field when the author's preferred
// option is selected. First, create a user with a preferred language.
$some_user = $this->createUser(values: [
'preferred_langcode' => 'bb',
]);
$this->drupalLogin($some_user);
ContentLanguageSettings::loadByEntityTypeBundle('entity_test', 'custom_bundle')->setDefaultLangcode('authors_default')
->save();
$this->assertSame('bb', $this->getDefaultLangcode());
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.