diff --git a/modules/field/tests/field_test.module b/modules/field/tests/field_test.module index 37ea7b1..461bb78 100644 --- a/modules/field/tests/field_test.module +++ b/modules/field/tests/field_test.module @@ -270,3 +270,22 @@ function field_test_query_efq_table_prefixing_test_alter(&$query) { // exception if the EFQ does not properly prefix the base table. $query->join('test_entity','te2','%alias.ftid = test_entity.ftid'); } + +/** + * Implements hook_field_formatter_settings_form_alter(). + */ +function field_test_field_formatter_settings_form_alter(&$element, &$form_state, $context) { + $settings = $context['instance']['display'][$context['view_mode']]['settings']; + $element['field_test_formatter_settings_form_alter'] = array( + '#type' => 'textfield', + '#title' => t('Formatter settings form alter'), + '#default_value' => isset($settings['field_test_formatter_settings_form_alter']) ? $settings['field_test_formatter_settings_form_alter'] : '', + ); +} + +/** + * Implements hook_field_formatter_settings_summary_alter(). + */ +function field_test_field_formatter_settings_summary_alter(&$summary, $context) { + $summary .= '
field_test_field_formatter_settings_summary_alter'; +} diff --git a/modules/field_ui/field_ui.test b/modules/field_ui/field_ui.test index d0a822a..4ea8943 100644 --- a/modules/field_ui/field_ui.test +++ b/modules/field_ui/field_ui.test @@ -460,7 +460,7 @@ class FieldUIManageDisplayTestCase extends FieldUITestCase { } function setUp() { - parent::setUp(array('search')); + parent::setUp(array('search', 'field_test')); } /** @@ -509,6 +509,24 @@ class FieldUIManageDisplayTestCase extends FieldUITestCase { $current_setting_value = $instance['display']['default']['settings'][$setting_name]; $this->assertEqual($current_format, $format, t('The formatter was updated.')); $this->assertEqual($current_setting_value, $setting_value, t('The setting was updated.')); + + // Assert that hook_field_formatter_settings_summary_alter() is called. + $this->assertText('field_test_field_formatter_settings_summary_alter'); + + // Click on the formatter settings button to open the formatter settings + // form. + $this->drupalPostAJAX(NULL, array(), "field_test_formatter_settings_edit"); + + // Assert that the field added in + // field_test_field_formatter_settings_form_alter() is present. + $fieldname = 'fields[field_test][settings_edit_form][settings][field_test_formatter_settings_form_alter]'; + $this->assertField($fieldname, 'The field added in hook_field_formatter_settings_form_alter() is present on the settings form.'); + $edit = array($fieldname => 'foo'); + $this->drupalPostAJAX(NULL, $edit, "field_test_formatter_settings_update"); + + // Confirm that the settings are updated on the settings form. + $this->drupalPostAJAX(NULL, array(), "field_test_formatter_settings_edit"); + $this->assertFieldByName($fieldname, 'foo'); } /**