summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/field/field.crud.inc4
-rw-r--r--modules/field/field.test20
2 files changed, 24 insertions, 0 deletions
diff --git a/modules/field/field.crud.inc b/modules/field/field.crud.inc
index b96dbfb4b..6993250e6 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 12eb854c3..2dabfca5e 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',