diff --git a/core/config/schema/core.entity.data_types.schema.yml b/core/config/schema/core.entity.data_types.schema.yml index f0b87ee..36e59fb 100644 --- a/core/config/schema/core.entity.data_types.schema.yml +++ b/core/config/schema/core.entity.data_types.schema.yml @@ -18,6 +18,9 @@ entity_field_view_display_base: label: type: string label: 'Label setting machine name' + settings: + type: sequence + label: 'Settings' # Schema for the base of the form mode display format settings. entity_field_form_display_base: @@ -34,3 +37,6 @@ entity_field_form_display_base: label: 'Third party settings' sequence: - type: entity_form_display.third_party.[%key] + settings: + type: sequence + label: 'Settings' diff --git a/core/config/schema/core.entity.schema.yml b/core/config/schema/core.entity.schema.yml index 63a35eb..20a820f 100644 --- a/core/config/schema/core.entity.schema.yml +++ b/core/config/schema/core.entity.schema.yml @@ -148,32 +148,14 @@ entity_form_display.field.string_textfield: entity_form_display.field.datetime_timestamp: type: entity_field_form_display_base label: 'Datetime timestamp display format settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string entity_form_display.field.boolean_checkbox: type: entity_field_form_display_base label: 'Boolean checkbox display format settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string entity_form_display.field.hidden: type: entity_field_form_display_base label: '- Hidden - format settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string entity_form_display.field.number: type: entity_field_form_display_base @@ -238,29 +220,11 @@ entity_view_display.field.number_integer: entity_view_display.field.number_unformatted: type: entity_field_view_display_base label: 'Number unformatted display format settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string entity_view_display.field.uri_link: type: entity_field_view_display_base label: 'URI as link display format settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string entity_view_display.field.timestamp_ago: type: entity_field_view_display_base label: 'Timestamp ago display format settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string diff --git a/core/modules/comment/config/schema/comment.schema.yml b/core/modules/comment/config/schema/comment.schema.yml index b5bcd86..f27f81a 100644 --- a/core/modules/comment/config/schema/comment.schema.yml +++ b/core/modules/comment/config/schema/comment.schema.yml @@ -3,22 +3,10 @@ entity_view_display.field.comment_default: type: entity_field_view_display_base label: 'Comment display format settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string entity_form_display.field.comment_default: type: entity_field_form_display_base label: 'Comment display format settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string action.configuration.comment_publish_action: type: action_configuration_default diff --git a/core/modules/datetime/config/schema/datetime.schema.yml b/core/modules/datetime/config/schema/datetime.schema.yml index 58e4cc6..3086164 100644 --- a/core/modules/datetime/config/schema/datetime.schema.yml +++ b/core/modules/datetime/config/schema/datetime.schema.yml @@ -41,12 +41,6 @@ entity_view_display.field.datetime_default: entity_view_display.field.datetime_plain: type: entity_field_view_display_base label: 'Datetime plain display format settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string entity_form_display.field.datetime_datelist: type: entity_field_form_display_base @@ -69,9 +63,3 @@ entity_form_display.field.datetime_datelist: entity_form_display.field.datetime_default: type: entity_field_form_display_base label: 'Datetime default display format settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string diff --git a/core/modules/datetime/src/Tests/DateTimeFieldTest.php b/core/modules/datetime/src/Tests/DateTimeFieldTest.php index 281e78c..8285a2b 100644 --- a/core/modules/datetime/src/Tests/DateTimeFieldTest.php +++ b/core/modules/datetime/src/Tests/DateTimeFieldTest.php @@ -9,6 +9,7 @@ use Drupal\Component\Utility\Unicode; use Drupal\Core\Entity\Entity\EntityViewDisplay; +use Drupal\field\Tests\FieldItemTestBase; use Drupal\simpletest\WebTestBase; use Drupal\Core\Datetime\DrupalDateTime; @@ -17,7 +18,7 @@ * * @group datetime */ -class DateTimeFieldTest extends WebTestBase { +class DateTimeFieldTest extends FieldItemTestBase { /** * Modules to enable. diff --git a/core/modules/entity_reference/config/schema/entity_reference.schema.yml b/core/modules/entity_reference/config/schema/entity_reference.schema.yml index 5404963..22561c9 100644 --- a/core/modules/entity_reference/config/schema/entity_reference.schema.yml +++ b/core/modules/entity_reference/config/schema/entity_reference.schema.yml @@ -55,12 +55,6 @@ entity_view_display.field.entity_reference_entity_view: entity_view_display.field.entity_reference_entity_id: type: entity_field_view_display_base label: 'Entity reference entity ID display format settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string entity_view_display.field.entity_reference_label: type: entity_field_view_display_base diff --git a/core/modules/field/src/Tests/Email/EmailFieldTest.php b/core/modules/field/src/Tests/Email/EmailFieldTest.php index 2ce3c46..552cad2 100644 --- a/core/modules/field/src/Tests/Email/EmailFieldTest.php +++ b/core/modules/field/src/Tests/Email/EmailFieldTest.php @@ -8,14 +8,14 @@ namespace Drupal\field\Tests\Email; use Drupal\Component\Utility\Unicode; -use Drupal\simpletest\WebTestBase; +use Drupal\field\Tests\FieldItemTestBase; /** * Tests email field functionality. * * @group field */ -class EmailFieldTest extends WebTestBase { +class EmailFieldTest extends FieldItemTestBase { /** * Modules to enable. diff --git a/core/modules/field/src/Tests/FieldItemTestBase.php b/core/modules/field/src/Tests/FieldItemTestBase.php new file mode 100644 index 0000000..3b707bc --- /dev/null +++ b/core/modules/field/src/Tests/FieldItemTestBase.php @@ -0,0 +1,41 @@ +container->get('config.storage')->listAll('core.entity_view_display.'), + $this->container->get('config.storage')->listAll('core.entity_form_display.') + ); + + $factory = $this->container->get('config.factory'); + /** @var \Drupal\Core\Config\TypedConfigManagerInterface $typed_config */ + $typed_config = $this->container->get('config.typed'); + foreach ($names as $name) { + $config = $factory->get($name); + $this->assertConfigSchema($typed_config, $name, $config->get()); + } + + parent::tearDown(); + } + +} diff --git a/core/modules/field/src/Tests/Number/NumberFieldTest.php b/core/modules/field/src/Tests/Number/NumberFieldTest.php index ca1fbb0..a1abf41 100644 --- a/core/modules/field/src/Tests/Number/NumberFieldTest.php +++ b/core/modules/field/src/Tests/Number/NumberFieldTest.php @@ -8,6 +8,7 @@ namespace Drupal\field\Tests\Number; use Drupal\Component\Utility\Unicode; +use Drupal\field\Tests\FieldItemTestBase; use Drupal\simpletest\WebTestBase; /** @@ -15,7 +16,7 @@ * * @group field */ -class NumberFieldTest extends WebTestBase { +class NumberFieldTest extends FieldItemTestBase { /** * Modules to enable. diff --git a/core/modules/field/src/Tests/String/StringFieldTest.php b/core/modules/field/src/Tests/String/StringFieldTest.php new file mode 100644 index 0000000..faee5a5 --- /dev/null +++ b/core/modules/field/src/Tests/String/StringFieldTest.php @@ -0,0 +1,98 @@ +web_user = $this->drupalCreateUser(array('view test entity', 'administer entity_test content')); + $this->drupalLogin($this->web_user); + } + + // Test fields. + + /** + * Test widgets. + */ + function testTextfieldWidgets() { + $this->_testTextfieldWidgets('string', 'string_textfield'); + $this->_testTextfieldWidgets('string_long', 'string_textarea'); + } + + /** + * Helper function for testTextfieldWidgets(). + */ + function _testTextfieldWidgets($field_type, $widget_type) { + // Create a field. + $field_name = Unicode::strtolower($this->randomMachineName()); + $field_storage = entity_create('field_storage_config', array( + 'field_name' => $field_name, + 'entity_type' => 'entity_test', + 'type' => $field_type + )); + $field_storage->save(); + entity_create('field_config', array( + 'field_storage' => $field_storage, + 'bundle' => 'entity_test', + 'label' => $this->randomMachineName() . '_label', + ))->save(); + entity_get_form_display('entity_test', 'entity_test', 'default') + ->setComponent($field_name, array( + 'type' => $widget_type, + 'settings' => array( + 'placeholder' => 'A placeholder on ' . $widget_type, + ), + )) + ->save(); + entity_get_display('entity_test', 'entity_test', 'full') + ->setComponent($field_name) + ->save(); + + // Display creation form. + $this->drupalGet('entity_test/add'); + $this->assertFieldByName("{$field_name}[0][value]", '', 'Widget is displayed'); + $this->assertNoFieldByName("{$field_name}[0][format]", '1', 'Format selector is not displayed'); + $this->assertRaw(format_string('placeholder="A placeholder on !widget_type"', array('!widget_type' => $widget_type))); + + // Submit with some value. + $value = $this->randomMachineName(); + $edit = array( + "{$field_name}[0][value]" => $value, + ); + $this->drupalPostForm(NULL, $edit, t('Save')); + preg_match('|entity_test/manage/(\d+)|', $this->url, $match); + $id = $match[1]; + $this->assertText(t('entity_test @id has been created.', array('@id' => $id)), 'Entity was created'); + + // Display the entity. + $entity = entity_load('entity_test', $id); + $display = entity_get_display($entity->getEntityTypeId(), $entity->bundle(), 'full'); + $content = $display->build($entity); + $this->drupalSetContent(drupal_render($content)); + $this->assertText($value, 'Filtered tags are not displayed'); + } +} diff --git a/core/modules/file/config/schema/file.schema.yml b/core/modules/file/config/schema/file.schema.yml index cd21f38..0babe38 100644 --- a/core/modules/file/config/schema/file.schema.yml +++ b/core/modules/file/config/schema/file.schema.yml @@ -70,43 +70,18 @@ field.file.field_settings: entity_view_display.field.file_default: type: entity_field_view_display_base label: 'Generic file format settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string entity_view_display.field.file_rss_enclosure: type: entity_field_view_display_base label: 'RSS enclosure format settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string entity_view_display.field.file_table: type: entity_field_view_display_base label: 'Table of files format settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string entity_view_display.field.file_url_plain: type: entity_field_view_display_base label: 'URL to file format settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string - entity_form_display.field.file_generic: type: entity_field_form_display_base diff --git a/core/modules/image/config/schema/image.schema.yml b/core/modules/image/config/schema/image.schema.yml index f0db0d5..33e8a90 100644 --- a/core/modules/image/config/schema/image.schema.yml +++ b/core/modules/image/config/schema/image.schema.yml @@ -137,12 +137,6 @@ field.image.value: entity_view_display.field.image: type: entity_field_view_display_base label: 'Image field display format settings' - mapping: - settings: - type: sequence - label: 'Format settings' - sequence: - - type: string entity_form_display.field.image_image: type: entity_field_form_display_base diff --git a/core/modules/image/src/Tests/ImageFieldTestBase.php b/core/modules/image/src/Tests/ImageFieldTestBase.php index 33e7fc1..554954b 100644 --- a/core/modules/image/src/Tests/ImageFieldTestBase.php +++ b/core/modules/image/src/Tests/ImageFieldTestBase.php @@ -7,6 +7,7 @@ namespace Drupal\image\Tests; +use Drupal\field\Tests\FieldItemTestBase; use Drupal\simpletest\WebTestBase; /** @@ -25,7 +26,7 @@ /** * This class provides methods specifically for testing Image's field handling. */ -abstract class ImageFieldTestBase extends WebTestBase { +abstract class ImageFieldTestBase extends FieldItemTestBase { /** * Modules to enable. diff --git a/core/modules/options/config/schema/options.schema.yml b/core/modules/options/config/schema/options.schema.yml index 03cb81f..f0d444a 100644 --- a/core/modules/options/config/schema/options.schema.yml +++ b/core/modules/options/config/schema/options.schema.yml @@ -114,39 +114,15 @@ field.list_string.value: entity_view_display.field.list_default: type: entity_field_view_display_base label: 'Options list default display settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string entity_view_display.field.list_key: type: entity_field_view_display_base label: 'Key format settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string entity_form_display.field.options_buttons: type: entity_field_form_display_base label: 'Check boxes/radio buttons format settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string entity_form_display.field.options_select: type: entity_field_form_display_base label: 'Select list format settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string diff --git a/core/modules/path/config/schema/path.schema.yml b/core/modules/path/config/schema/path.schema.yml index f595e4b..ebed69c 100644 --- a/core/modules/path/config/schema/path.schema.yml +++ b/core/modules/path/config/schema/path.schema.yml @@ -3,6 +3,3 @@ entity_form_display.field.path: type: entity_field_form_display_base label: 'Link format settings' - mapping: - settings: - type: sequence diff --git a/core/modules/taxonomy/config/schema/taxonomy.schema.yml b/core/modules/taxonomy/config/schema/taxonomy.schema.yml index 579f673..e9aed2b 100644 --- a/core/modules/taxonomy/config/schema/taxonomy.schema.yml +++ b/core/modules/taxonomy/config/schema/taxonomy.schema.yml @@ -94,12 +94,6 @@ entity_view_display.field.taxonomy_term_reference_rss_category: entity_view_display.field.taxonomy_term_reference_link: type: entity_field_view_display_base label: 'Taxonomy format settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string entity_form_display.field.taxonomy_autocomplete: type: entity_field_form_display_base diff --git a/core/modules/text/config/schema/text.schema.yml b/core/modules/text/config/schema/text.schema.yml index f472aec..f211cbf 100644 --- a/core/modules/text/config/schema/text.schema.yml +++ b/core/modules/text/config/schema/text.schema.yml @@ -93,12 +93,6 @@ field.text_with_summary.value: entity_view_display.field.text_default: type: entity_field_view_display_base label: 'Formatted text default display format settings' - mapping: - settings: - type: sequence - label: 'Settings' - sequence: - - type: string entity_view_display.field.text_summary_or_trimmed: type: entity_field_view_display_base diff --git a/core/modules/text/src/Tests/TextFieldTest.php b/core/modules/text/src/Tests/TextFieldTest.php index e771af9..e8ece1f 100644 --- a/core/modules/text/src/Tests/TextFieldTest.php +++ b/core/modules/text/src/Tests/TextFieldTest.php @@ -9,31 +9,21 @@ use Drupal\Component\Utility\String; use Drupal\Component\Utility\Unicode; -use Drupal\simpletest\WebTestBase; +use Drupal\field\Tests\String\StringFieldTest; /** * Tests the creation of text fields. * * @group text */ -class TextFieldTest extends WebTestBase { - - /** - * Modules to enable. - * - * @var array - */ - public static $modules = array('entity_test'); +class TextFieldTest extends StringFieldTest { protected $admin_user; - protected $web_user; protected function setUp() { parent::setUp(); $this->admin_user = $this->drupalCreateUser(array('administer filters')); - $this->web_user = $this->drupalCreateUser(array('view test entity', 'administer entity_test content')); - $this->drupalLogin($this->web_user); } // Test fields. @@ -82,59 +72,6 @@ function testTextfieldWidgets() { } /** - * Helper function for testTextfieldWidgets(). - */ - function _testTextfieldWidgets($field_type, $widget_type) { - // Create a field. - $field_name = Unicode::strtolower($this->randomMachineName()); - $field_storage = entity_create('field_storage_config', array( - 'field_name' => $field_name, - 'entity_type' => 'entity_test', - 'type' => $field_type - )); - $field_storage->save(); - entity_create('field_config', array( - 'field_storage' => $field_storage, - 'bundle' => 'entity_test', - 'label' => $this->randomMachineName() . '_label', - ))->save(); - entity_get_form_display('entity_test', 'entity_test', 'default') - ->setComponent($field_name, array( - 'type' => $widget_type, - 'settings' => array( - 'placeholder' => 'A placeholder on ' . $widget_type, - ), - )) - ->save(); - entity_get_display('entity_test', 'entity_test', 'full') - ->setComponent($field_name) - ->save(); - - // Display creation form. - $this->drupalGet('entity_test/add'); - $this->assertFieldByName("{$field_name}[0][value]", '', 'Widget is displayed'); - $this->assertNoFieldByName("{$field_name}[0][format]", '1', 'Format selector is not displayed'); - $this->assertRaw(format_string('placeholder="A placeholder on !widget_type"', array('!widget_type' => $widget_type))); - - // Submit with some value. - $value = $this->randomMachineName(); - $edit = array( - "{$field_name}[0][value]" => $value, - ); - $this->drupalPostForm(NULL, $edit, t('Save')); - preg_match('|entity_test/manage/(\d+)|', $this->url, $match); - $id = $match[1]; - $this->assertText(t('entity_test @id has been created.', array('@id' => $id)), 'Entity was created'); - - // Display the entity. - $entity = entity_load('entity_test', $id); - $display = entity_get_display($entity->getEntityTypeId(), $entity->bundle(), 'full'); - $content = $display->build($entity); - $this->drupalSetContent(drupal_render($content)); - $this->assertText($value, 'Filtered tags are not displayed'); - } - - /** * Test widgets + 'formatted_text' setting. */ function testTextfieldWidgetsFormatted() {