function FieldUITestCase::fieldUIAddNewField

Creates a new field through the Field UI.

Parameters

$bundle_path: Admin path of the bundle that the new field is to be attached to.

$initial_edit: $edit parameter for drupalPost() on the first step ('Manage fields' screen).

$field_edit: $edit parameter for drupalPost() on the second step ('Field settings' form).

$instance_edit: $edit parameter for drupalPost() on the third step ('Instance settings' form).

4 calls to FieldUITestCase::fieldUIAddNewField()
FieldUIManageDisplayTestCase::testFormatterUI in modules/field_ui/field_ui.test
Tests formatter settings.
FieldUIManageDisplayTestCase::testViewModeCustom in modules/field_ui/field_ui.test
Tests switching view modes to use custom or 'default' settings'.
FieldUIManageFieldsTestCase::createField in modules/field_ui/field_ui.test
Tests adding a new field.
FieldUIManageFieldsTestCase::testDeleteField in modules/field_ui/field_ui.test
Tests that deletion removes fields and instances as expected.

File

modules/field_ui/field_ui.test, line 53

Class

FieldUITestCase
Provides common functionality for the Field UI test classes.

Code

function fieldUIAddNewField($bundle_path, $initial_edit, $field_edit = array(), $instance_edit = array()) {
    // Use 'test_field' field type by default.
    $initial_edit += array(
        'fields[_add_new_field][type]' => 'test_field',
        'fields[_add_new_field][widget_type]' => 'test_field_widget',
    );
    $label = $initial_edit['fields[_add_new_field][label]'];
    $field_name = $initial_edit['fields[_add_new_field][field_name]'];
    // First step : 'Add new field' on the 'Manage fields' page.
    $this->drupalPost("{$bundle_path}/fields", $initial_edit, t('Save'));
    $this->assertRaw(t('These settings apply to the %label field everywhere it is used.', array(
        '%label' => $label,
    )), 'Field settings page was displayed.');
    // Second step : 'Field settings' form.
    $this->drupalPost(NULL, $field_edit, t('Save field settings'));
    $this->assertRaw(t('Updated field %label field settings.', array(
        '%label' => $label,
    )), 'Redirected to instance and widget settings page.');
    // Third step : 'Instance settings' form.
    $this->drupalPost(NULL, $instance_edit, t('Save settings'));
    $this->assertRaw(t('Saved %label configuration.', array(
        '%label' => $label,
    )), 'Redirected to "Manage fields" page.');
    // Check that the field appears in the overview form.
    $this->assertFieldByXPath('//table[@id="field-overview"]//td[1]', $label, 'Field was created and appears in the overview page.');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.