Issue #1029060 by plopesc, Kars-T: Should allowed options for list fields trim() the strings?.

8.0.x
catch 2013-01-17 21:25:57 +00:00
parent 3af2941e48
commit 5ff1cee383
2 changed files with 17 additions and 3 deletions

View File

@ -199,7 +199,7 @@ class OptionsFieldUITest extends FieldTestBase {
}
/**
* Options (boolen) : test 'On/Off' values input.
* Options (boolean) : test 'On/Off' values input.
*/
function testOptionsAllowedValuesBoolean() {
$this->field_name = 'field_options_boolean';
@ -225,6 +225,19 @@ class OptionsFieldUITest extends FieldTestBase {
$this->assertFalse(isset($field['settings']['off']), 'The off value is not saved into settings');
}
/**
* Options (text) : test 'trimmed values' input.
*/
function testOptionsTrimmedValuesText() {
$this->field_name = 'field_options_trimmed_text';
$this->createOptionsField('list_text');
// Explicit keys.
$string = "zero |Zero\none | One";
$array = array('zero' => 'Zero', 'one' => 'One');
$this->assertAllowedValuesInput($string, $array, 'Explicit keys are accepted and trimmed.');
}
/**
* Helper function to create list field of a given type.
*

View File

@ -304,8 +304,9 @@ function options_extract_allowed_values($string, $field_type, $generate_keys) {
// Check for an explicit key.
$matches = array();
if (preg_match('/(.*)\|(.*)/', $text, $matches)) {
$key = $matches[1];
$value = $matches[2];
// Trim key and value to avoid unwanted spaces issues.
$key = trim($matches[1]);
$value = trim($matches[2]);
$explicit_keys = TRUE;
}
// Otherwise see if we can use the value as the key. Detecting true integer