function FieldUIManageFieldsTestCase::testDefaultValue in Drupal 7
Tests that default value is correctly validated and saved.
File
- modules/
field_ui/ field_ui.test, line 286 - Tests for field_ui.module.
Class
- FieldUIManageFieldsTestCase
- Tests the functionality of the 'Manage fields' screen.
Code
function testDefaultValue() {
// Create a test field and instance.
$field_name = 'test';
$field = array(
'field_name' => $field_name,
'type' => 'test_field',
);
field_create_field($field);
$instance = array(
'field_name' => $field_name,
'entity_type' => 'node',
'bundle' => $this->type,
);
field_create_instance($instance);
$langcode = LANGUAGE_NONE;
$admin_path = 'admin/structure/types/manage/' . $this->hyphen_type . '/fields/' . $field_name;
$element_id = "edit-{$field_name}-{$langcode}-0-value";
$element_name = "{$field_name}[{$langcode}][0][value]";
$this
->drupalGet($admin_path);
$this
->assertFieldById($element_id, '', 'The default value widget was empty.');
// Check that invalid default values are rejected.
$edit = array(
$element_name => '-1',
);
$this
->drupalPost($admin_path, $edit, t('Save settings'));
$this
->assertText("{$field_name} does not accept the value -1", 'Form vaildation failed.');
// Check that the default value is saved.
$edit = array(
$element_name => '1',
);
$this
->drupalPost($admin_path, $edit, t('Save settings'));
$this
->assertText("Saved {$field_name} configuration", 'The form was successfully submitted.');
$instance = field_info_instance('node', $field_name, $this->type);
$this
->assertEqual($instance['default_value'], array(
array(
'value' => 1,
),
), 'The default value was correctly saved.');
// Check that the default value shows up in the form
$this
->drupalGet($admin_path);
$this
->assertFieldById($element_id, '1', 'The default value widget was displayed with the correct value.');
// Check that the default value can be emptied.
$edit = array(
$element_name => '',
);
$this
->drupalPost(NULL, $edit, t('Save settings'));
$this
->assertText("Saved {$field_name} configuration", 'The form was successfully submitted.');
field_info_cache_clear();
$instance = field_info_instance('node', $field_name, $this->type);
$this
->assertEqual($instance['default_value'], NULL, 'The default value was correctly saved.');
}