summaryrefslogtreecommitdiff
path: root/modules/field/tests/field.test
diff options
context:
space:
mode:
Diffstat (limited to 'modules/field/tests/field.test')
-rw-r--r--modules/field/tests/field.test73
1 files changed, 69 insertions, 4 deletions
diff --git a/modules/field/tests/field.test b/modules/field/tests/field.test
index 657f1f364..f7d9dddb2 100644
--- a/modules/field/tests/field.test
+++ b/modules/field/tests/field.test
@@ -1079,11 +1079,14 @@ class FieldInfoTestCase extends FieldTestCase {
}
// Verify that no unexpected instances exist.
- $core_fields = field_info_fields();
+ $instances = field_info_instances('test_entity');
+ $expected = array('test_bundle' => array());
+ $this->assertIdentical($instances, $expected, "field_info_instances('test_entity') returns " . var_export($expected, TRUE) . '.');
$instances = field_info_instances('test_entity', 'test_bundle');
- $this->assertTrue(empty($instances), t('With no instances, info bundles is empty.'));
+ $this->assertIdentical($instances, array(), "field_info_instances('test_entity', 'test_bundle') returns an empty array.");
// Create a field, verify it shows up.
+ $core_fields = field_info_fields();
$field = array(
'field_name' => drupal_strtolower($this->randomName()),
'type' => 'test_field',
@@ -1119,6 +1122,25 @@ class FieldInfoTestCase extends FieldTestCase {
$instances = field_info_instances('test_entity', $instance['bundle']);
$this->assertEqual(count($instances), 1, t('One instance shows up in info when attached to a bundle.'));
$this->assertTrue($instance < $instances[$instance['field_name']], t('Instance appears in info correctly'));
+
+ // Test a valid entity type but an invalid bundle.
+ $instances = field_info_instances('test_entity', 'invalid_bundle');
+ $this->assertIdentical($instances, array(), "field_info_instances('test_entity', 'invalid_bundle') returns an empty array.");
+
+ // Test invalid entity type and bundle.
+ $instances = field_info_instances('invalid_entity', $instance['bundle']);
+ $this->assertIdentical($instances, array(), "field_info_instances('invalid_entity', 'test_bundle') returns an empty array.");
+
+ // Test invalid entity type, no bundle provided.
+ $instances = field_info_instances('invalid_entity');
+ $this->assertIdentical($instances, array(), "field_info_instances('invalid_entity') returns an empty array.");
+
+ // Test with an entity type that has no bundles.
+ $instances = field_info_instances('user');
+ $expected = array('user' => array());
+ $this->assertIdentical($instances, $expected, "field_info_instances('user') returns " . var_export($expected, TRUE) . '.');
+ $instances = field_info_instances('user', 'user');
+ $this->assertIdentical($instances, array(), "field_info_instances('user', 'user') returns an empty array.");
}
/**
@@ -1460,6 +1482,51 @@ class FieldFormTestCase extends FieldTestCase {
// Test with several multiple fields in a form
}
+ /**
+ * Tests widget handling of multiple required radios.
+ */
+ function testFieldFormMultivalueWithRequiredRadio() {
+ // Create a multivalue test field.
+ $this->field = $this->field_unlimited;
+ $this->field_name = $this->field['field_name'];
+ $this->instance['field_name'] = $this->field_name;
+ field_create_field($this->field);
+ field_create_instance($this->instance);
+ $langcode = LANGUAGE_NONE;
+
+ // Add a required radio field.
+ field_create_field(array(
+ 'field_name' => 'required_radio_test',
+ 'type' => 'list_text',
+ 'settings' => array(
+ 'allowed_values' => array('yes' => 'yes', 'no' => 'no'),
+ ),
+ ));
+ field_create_instance(array(
+ 'field_name' => 'required_radio_test',
+ 'entity_type' => 'test_entity',
+ 'bundle' => 'test_bundle',
+ 'required' => TRUE,
+ 'widget' => array(
+ 'type' => 'options_buttons',
+ ),
+ ));
+
+ // Display creation form.
+ $this->drupalGet('test-entity/add/test-bundle');
+
+ // Press the 'Add more' button.
+ $this->drupalPost(NULL, array(), t('Add another item'));
+
+ // Verify that no error is thrown by the radio element.
+ $this->assertNoFieldByXpath('//div[contains(@class, "error")]', FALSE, 'No error message is displayed.');
+
+ // Verify that the widget is added.
+ $this->assertFieldByName("{$this->field_name}[$langcode][0][value]", '', 'Widget 1 is displayed');
+ $this->assertFieldByName("{$this->field_name}[$langcode][1][value]", '', 'New widget is displayed');
+ $this->assertNoField("{$this->field_name}[$langcode][2][value]", 'No extraneous widget is displayed');
+ }
+
function testFieldFormJSAddMore() {
$this->field = $this->field_unlimited;
$this->field_name = $this->field['field_name'];
@@ -2357,7 +2424,6 @@ class FieldCrudTestCase extends FieldTestCase {
$this->assertTrue($field_definition <= $field, t('The field was properly read.'));
module_disable($modules, FALSE);
- drupal_flush_all_caches();
$fields = field_read_fields(array('field_name' => $field_name), array('include_inactive' => TRUE));
$this->assertTrue(isset($fields[$field_name]) && $field_definition < $field, t('The field is properly read when explicitly fetching inactive fields.'));
@@ -2370,7 +2436,6 @@ class FieldCrudTestCase extends FieldTestCase {
$module = array_shift($modules);
module_enable(array($module), FALSE);
- drupal_flush_all_caches();
}
// Check that the field is active again after all modules have been