Issue #381994 by xjm, good_man, elcuco, et al: Fixed Machine-name fields are always in Latin characters, and should therefore always be LTR.
parent
2747c3c4d7
commit
eb8c4c09a2
|
@ -3355,6 +3355,13 @@ function form_process_machine_name($element, &$form_state) {
|
||||||
'replace' => '_',
|
'replace' => '_',
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// By default, machine names are restricted to Latin alphanumeric characters.
|
||||||
|
// So, default to LTR directionality.
|
||||||
|
if (!isset($element['#attributes'])) {
|
||||||
|
$element['#attributes'] = array();
|
||||||
|
}
|
||||||
|
$element['#attributes'] += array('dir' => 'ltr');
|
||||||
|
|
||||||
// The source element defaults to array('name'), but may have been overidden.
|
// The source element defaults to array('name'), but may have been overidden.
|
||||||
if (empty($element['#machine_name']['source'])) {
|
if (empty($element['#machine_name']['source'])) {
|
||||||
return $element;
|
return $element;
|
||||||
|
|
|
@ -1861,6 +1861,34 @@ class LocaleContentFunctionalTest extends DrupalWebTestCase {
|
||||||
parent::setUp('locale');
|
parent::setUp('locale');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verifies that machine name fields are always LTR.
|
||||||
|
*/
|
||||||
|
function testMachineNameLTR() {
|
||||||
|
// User to add and remove language.
|
||||||
|
$admin_user = $this->drupalCreateUser(array('administer languages', 'administer content types', 'access administration pages'));
|
||||||
|
|
||||||
|
// Log in as admin.
|
||||||
|
$this->drupalLogin($admin_user);
|
||||||
|
|
||||||
|
// Verify that the machine name field is LTR for a new content type.
|
||||||
|
$this->drupalGet('admin/structure/types/add');
|
||||||
|
$this->assertFieldByXpath('//input[@name="type" and @dir="ltr"]', NULL, 'The machine name field is LTR when no additional language is configured.');
|
||||||
|
|
||||||
|
// Install the Arabic language (which is RTL) and configure as the default.
|
||||||
|
$edit = array();
|
||||||
|
$edit['predefined_langcode'] = 'ar';
|
||||||
|
$this->drupalPost('admin/config/regional/language/add', $edit, t('Add language'));
|
||||||
|
|
||||||
|
$edit = array();
|
||||||
|
$edit['site_default'] = 'ar';
|
||||||
|
$this->drupalPost(NULL, $edit, t('Save configuration'));
|
||||||
|
|
||||||
|
// Verify that the machine name field is still LTR for a new content type.
|
||||||
|
$this->drupalGet('admin/structure/types/add');
|
||||||
|
$this->assertFieldByXpath('//input[@name="type" and @dir="ltr"]', NULL, 'The machine name field is LTR when the default language is RTL.');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test if a content type can be set to multilingual and language is present.
|
* Test if a content type can be set to multilingual and language is present.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue