#394246 by flobruit: Check to ensure that field type is specified.

merge-requests/26/head
Angie Byron 2009-03-30 05:24:38 +00:00
parent 9f7aaa2341
commit 243ecdaf52
2 changed files with 24 additions and 0 deletions

View File

@ -178,6 +178,10 @@ function field_create_field($field) {
if (empty($field['field_name'])) {
throw new FieldException('Attempt to create an unnamed field.');
}
// Field type is required.
if (empty($field['type'])) {
throw new FieldException('Attempt to create a field with no type.');
}
// Field name cannot contain invalid characters.
if (preg_match('/[^a-z0-9_]/', $field['field_name'])) {
throw new FieldException('Attempt to create a field with invalid characters. Only alphanumeric characters and underscores are allowed.');

View File

@ -939,6 +939,26 @@ class FieldTestCase extends DrupalWebTestCase {
* Test the creation of a field.
*/
function testCreateField() {
// Check that field type is required.
try {
$field_definition = array(
'field_name' => drupal_strtolower($this->randomName()),
);
field_create_field($field_definition);
$this->fail(t('Cannot create a field with no type.'));
} catch (FieldException $e) {
$this->pass(t('Cannot create a field with no type.'));
}
// Check that field name is required.
try {
$field_definition = array('type' => 'test_field');
field_create_field($field_definition);
$this->fail(t('Cannot create an unnamed field.'));
} catch (FieldException $e) {
$this->pass(t('Cannot create an unnamed field.'));
}
$field_definition = array(
'field_name' => drupal_strtolower($this->randomName()),
'type' => 'test_field',