diff --git a/modules/field/field.crud.inc b/modules/field/field.crud.inc index b96dbfb4ba9..6993250e67f 100644 --- a/modules/field/field.crud.inc +++ b/modules/field/field.crud.inc @@ -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.'); diff --git a/modules/field/field.test b/modules/field/field.test index 12eb854c3fd..2dabfca5e5c 100644 --- a/modules/field/field.test +++ b/modules/field/field.test @@ -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',