diff --git a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/field/formatter/TestFieldEmptySettingFormatter.php b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/field/formatter/TestFieldEmptySettingFormatter.php new file mode 100644 index 0000000..4600851 --- /dev/null +++ b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/field/formatter/TestFieldEmptySettingFormatter.php @@ -0,0 +1,67 @@ + t('Setting'), + '#type' => 'textfield', + '#size' => 20, + '#default_value' => $this->getSetting('field_empty_setting'), + '#required' => TRUE, + ); + return $element; + } + + /** + * {@inheritdoc} + */ + public function settingsSummary() { + $summary = array(); + $setting = $this->getSetting('field_empty_setting'); + if (!empty($setting)) { + $summary[] = t('Default empty setting now has a value.'); + } + return $summary; + } + + /** + * {@inheritdoc} + */ + public function viewElements(EntityInterface $entity, $langcode, FieldInterface $items) { + $elements = array(); + + if (!empty($items)) { + foreach ($items as $delta => $item) { + $elements[$delta] = array('#markup' => $this->getSetting('field_empty_setting')); + } + } + + return $elements; + } +} diff --git a/core/modules/field_ui/lib/Drupal/field_ui/Tests/ManageDisplayTest.php b/core/modules/field_ui/lib/Drupal/field_ui/Tests/ManageDisplayTest.php index d1edd6d..141db8f 100644 --- a/core/modules/field_ui/lib/Drupal/field_ui/Tests/ManageDisplayTest.php +++ b/core/modules/field_ui/lib/Drupal/field_ui/Tests/ManageDisplayTest.php @@ -93,6 +93,17 @@ function testFormatterUI() { // Confirm that the settings are updated on the settings form. $this->drupalPostAJAX(NULL, array(), "field_test_settings_edit"); $this->assertFieldByName($fieldname, 'foo'); + + // Test the empty setting formatter. + $edit = array('fields[field_test][type]' => 'field_empty_setting'); + $this->drupalPost(NULL, $edit, t('Save')); + $this->assertNoText('Default empty setting now has a value.'); + $this->assertFieldById('edit-fields-field-test-settings-edit'); + $this->drupalPostAJAX(NULL, array(), "field_test_settings_edit"); + $fieldname = 'fields[field_test][settings_edit_form][settings][field_empty_setting]'; + $edit = array($fieldname => 'non empty setting'); + $this->drupalPostAJAX(NULL, $edit, "field_test_plugin_settings_update"); + $this->assertText('Default empty setting now has a value.'); } /**