diff --git a/core/modules/language/lib/Drupal/language/Tests/LanguageConfigurationElementTest.php b/core/modules/language/lib/Drupal/language/Tests/LanguageConfigurationElementTest.php index 5a00f7d..644c03b 100644 --- a/core/modules/language/lib/Drupal/language/Tests/LanguageConfigurationElementTest.php +++ b/core/modules/language/lib/Drupal/language/Tests/LanguageConfigurationElementTest.php @@ -91,9 +91,16 @@ class LanguageConfigurationElementTest extends WebTestBase { $langcode = language_get_default_langcode('custom_type', 'custom_bundle'); $this->assertEqual($langcode, 'cc'); - // @todo: The language_get_default_langcode() uses the global $user to - // return the preferred language, but the global $user is not the logged - // in user from the simpletest browser... + // Check the default value of a language field when authors preferred option + // is selected. + // Create first an user and assign a preferred langcode to him. + $some_user = $this->drupalCreateUser(); + $some_user->preferred_langcode = 'bb'; + $some_user->save(); + $this->drupalLogin($some_user); + language_save_default_configuration('custom_type', 'some_bundle', array('langcode' => 'authors_default', 'language_hidden' => FALSE)); + $this->drupalGet('language-tests/language_configuration_element_test'); + $this->assertOptionSelected('edit-langcode', 'bb'); // Some custom language code, hook_language_default_langcode() is // implemented in the language_elements_test module. diff --git a/core/modules/language/tests/language_elements_test/language_elements_test.module b/core/modules/language/tests/language_elements_test/language_elements_test.module index 5e43165..56811f6 100644 --- a/core/modules/language/tests/language_elements_test/language_elements_test.module +++ b/core/modules/language/tests/language_elements_test/language_elements_test.module @@ -14,12 +14,19 @@ function language_elements_test_menu() { 'type' => MENU_CALLBACK, 'access callback' => TRUE, 'page callback' => 'drupal_get_form', - 'page arguments' => array('language_elements_test_configuration_element'), + 'page arguments' => array('language_elements_configuration_element'), + ); + $items['language-tests/language_configuration_element_test'] = array( + 'title' => 'Language configuration form element', + 'type' => MENU_CALLBACK, + 'access callback' => TRUE, + 'page callback' => 'drupal_get_form', + 'page arguments' => array('language_elements_configuration_element_test'), ); return $items; } -function language_elements_test_configuration_element() { +function language_elements_configuration_element() { $conf = language_get_default_configuration('some_custom_type', 'some_bundle'); $form['lang_configuration'] = array( @@ -38,3 +45,11 @@ function language_elements_test_configuration_element() { $form['#submit'][] = 'language_configuration_element_submit'; return $form; } + +function language_elements_configuration_element_test() { + $form['langcode'] = array( + '#type' => 'language_select', + '#default_value' => language_get_default_langcode('custom_type', 'some_bundle'), + ); + return $form; +} diff --git a/core/modules/node/content_types.js b/core/modules/node/content_types.js index bce9909..d2a63b6 100644 --- a/core/modules/node/content_types.js +++ b/core/modules/node/content_types.js @@ -24,7 +24,7 @@ Drupal.behaviors.contentTypes = { $('fieldset#edit-language', context).drupalSetSummary(function(context) { var vals = []; - vals.push($(".form-item-language-configuration-language select option:selected", context).text()); + vals.push($(".form-item-language-configuration-langcode select option:selected", context).text()) $('input:checked', context).next('label').each(function() { vals.push(Drupal.checkPlain($(this).text()));