Tests that the language_get_default_langcode() returns the correct values.
public function testDefaultLangcode() {
// Add some custom languages.
foreach (array(
'aa',
'bb',
'cc',
) as $language_code) {
$language = new Language(array(
'langcode' => $language_code,
'name' => $this
->randomName(),
));
language_save($language);
}
// Fixed language.
language_save_default_configuration('custom_type', 'custom_bundle', array(
'langcode' => 'bb',
'language_hidden' => FALSE,
));
$langcode = language_get_default_langcode('custom_type', 'custom_bundle');
$this
->assertEqual($langcode, 'bb');
// Current interface.
language_save_default_configuration('custom_type', 'custom_bundle', array(
'langcode' => 'current_interface',
'language_hidden' => FALSE,
));
$langcode = language_get_default_langcode('custom_type', 'custom_bundle');
$language_interface = language(LANGUAGE_TYPE_INTERFACE);
$this
->assertEqual($langcode, $language_interface->langcode);
// Site's default.
$old_default = language_default();
$old_default->default = FALSE;
language_save($old_default);
$new_default = language_load('cc');
$new_default->default = TRUE;
language_save($new_default);
language_save_default_configuration('custom_type', 'custom_bundle', array(
'langcode' => 'site_default',
'language_hidden' => FALSE,
));
$langcode = language_get_default_langcode('custom_type', 'custom_bundle');
$this
->assertEqual($langcode, 'cc');
// 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');
}