From dbea0c4cbf3674fc059cc30d0f84fe555d65574e Mon Sep 17 00:00:00 2001 From: Lee Rowlands <lee.rowlands@previousnext.com.au> Date: Tue, 24 Dec 2024 07:03:13 +1000 Subject: [PATCH] Issue #3494130 by oily, nicxvan, nikolay shapovalov: Move helpers in field_test.module and delete it --- core/.phpstan-baseline.php | 24 ---- .../modules/field_test/field_test.entity.inc | 26 ---- .../modules/field_test/field_test.field.inc | 18 --- .../modules/field_test/field_test.module | 113 ------------------ .../field_test/src/FieldTestHelper.php | 97 +++++++++++++++ .../src/Hook/FieldTestEntityHooks.php | 3 +- .../field_test/src/Hook/FieldTestHooks.php | 52 +++++++- .../src/Plugin/Field/FieldType/TestItem.php | 3 +- .../src/Functional/TranslationWebTest.php | 3 +- .../field/tests/src/Kernel/BulkDeleteTest.php | 19 +-- .../src/Kernel/FieldAttachStorageTest.php | 5 +- .../tests/src/Kernel/FieldStorageCrudTest.php | 9 +- .../tests/src/Kernel/TranslationTest.php | 7 +- .../Core/Entity/EntityQueryTest.php | 5 +- 14 files changed, 176 insertions(+), 208 deletions(-) delete mode 100644 core/modules/field/tests/modules/field_test/field_test.entity.inc delete mode 100644 core/modules/field/tests/modules/field_test/field_test.field.inc delete mode 100644 core/modules/field/tests/modules/field_test/field_test.module create mode 100644 core/modules/field/tests/modules/field_test/src/FieldTestHelper.php diff --git a/core/.phpstan-baseline.php b/core/.phpstan-baseline.php index f9a888c25d27..8430ef4feada 100644 --- a/core/.phpstan-baseline.php +++ b/core/.phpstan-baseline.php @@ -17686,30 +17686,6 @@ 'count' => 1, 'path' => __DIR__ . '/modules/field/src/Plugin/migrate/field/Email.php', ]; -$ignoreErrors[] = [ - // identifier: missingType.return - 'message' => '#^Function field_test_entity_info_translatable\\(\\) has no return type specified\\.$#', - 'count' => 1, - 'path' => __DIR__ . '/modules/field/tests/modules/field_test/field_test.entity.inc', -]; -$ignoreErrors[] = [ - // identifier: missingType.return - 'message' => '#^Function field_test_default_value\\(\\) has no return type specified\\.$#', - 'count' => 1, - 'path' => __DIR__ . '/modules/field/tests/modules/field_test/field_test.field.inc', -]; -$ignoreErrors[] = [ - // identifier: missingType.return - 'message' => '#^Function _field_test_alter_widget\\(\\) has no return type specified\\.$#', - 'count' => 1, - 'path' => __DIR__ . '/modules/field/tests/modules/field_test/field_test.module', -]; -$ignoreErrors[] = [ - // identifier: missingType.return - 'message' => '#^Function field_test_field_storage_config_create\\(\\) has no return type specified\\.$#', - 'count' => 1, - 'path' => __DIR__ . '/modules/field/tests/modules/field_test/field_test.module', -]; $ignoreErrors[] = [ // identifier: missingType.return 'message' => '#^Method Drupal\\\\field_test\\\\FieldDefaultValueCallbackProvider\\:\\:calculateDefaultValue\\(\\) has no return type specified\\.$#', diff --git a/core/modules/field/tests/modules/field_test/field_test.entity.inc b/core/modules/field/tests/modules/field_test/field_test.entity.inc deleted file mode 100644 index 24e79ea74dac..000000000000 --- a/core/modules/field/tests/modules/field_test/field_test.entity.inc +++ /dev/null @@ -1,26 +0,0 @@ -<?php - -/** - * @file - * Defines an entity type. - */ - -declare(strict_types=1); - -/** - * Helper function to enable entity translations. - */ -function field_test_entity_info_translatable($entity_type_id = NULL, $translatable = NULL) { - static $stored_value = []; - if (isset($entity_type_id)) { - $entity_definition_update_manager = \Drupal::entityDefinitionUpdateManager(); - $entity_type = $entity_definition_update_manager->getEntityType($entity_type_id); - $stored_value[$entity_type_id] = $translatable; - if ($translatable != $entity_type->isTranslatable()) { - $entity_definition_update_manager->uninstallEntityType($entity_type); - $entity_type->set('translatable', $translatable); - $entity_definition_update_manager->installEntityType($entity_type); - } - } - return $stored_value; -} diff --git a/core/modules/field/tests/modules/field_test/field_test.field.inc b/core/modules/field/tests/modules/field_test/field_test.field.inc deleted file mode 100644 index 70099c926972..000000000000 --- a/core/modules/field/tests/modules/field_test/field_test.field.inc +++ /dev/null @@ -1,18 +0,0 @@ -<?php - -/** - * @file - * Defines a field type and its formatters and widgets. - */ - -declare(strict_types=1); - -use Drupal\Core\Entity\FieldableEntityInterface; -use Drupal\Core\Field\FieldDefinitionInterface; - -/** - * Sample 'default value' callback. - */ -function field_test_default_value(FieldableEntityInterface $entity, FieldDefinitionInterface $definition) { - return [['value' => 99]]; -} diff --git a/core/modules/field/tests/modules/field_test/field_test.module b/core/modules/field/tests/modules/field_test/field_test.module deleted file mode 100644 index 449cc5033a39..000000000000 --- a/core/modules/field/tests/modules/field_test/field_test.module +++ /dev/null @@ -1,113 +0,0 @@ -<?php - -/** - * @file - * Helper module for the Field API tests. - * - * The module defines - * - a field type and its formatters and widgets (field_test.field.inc) - * - a field storage backend (field_test.storage.inc) - * - * The main field_test.module file implements generic hooks and provides some - * test helper functions - */ - -declare(strict_types=1); - -use Drupal\Core\Form\FormStateInterface; -use Drupal\Core\Render\Element; -use Drupal\field\FieldStorageConfigInterface; - -require_once __DIR__ . '/field_test.entity.inc'; -require_once __DIR__ . '/field_test.field.inc'; - -/** - * Store and retrieve keyed data for later verification by unit tests. - * - * This function is a simple in-memory key-value store with the - * distinction that it stores all values for a given key instead of - * just the most recently set value. field_test module hooks call - * this function to record their arguments, keyed by hook name. The - * unit tests later call this function to verify that the correct - * hooks were called and were passed the correct arguments. - * - * This function ignores all calls until the first time it is called - * with $key of NULL. Each time it is called with $key of NULL, it - * erases all previously stored data from its internal cache, but also - * returns the previously stored data to the caller. A typical usage - * scenario is: - * - * @code - * // calls to field_test_memorize() here are ignored - * - * // turn on memorization - * field_test_memorize(); - * - * // call some Field API functions that invoke field_test hooks - * FieldStorageConfig::create($field_definition)->save(); - * - * // retrieve and reset the memorized hook call data - * $mem = field_test_memorize(); - * - * // make sure hook_field_storage_config_create() is invoked correctly - * assertEquals(1, count($mem['field_test_field_storage_config_create'])); - * assertEquals([$field], $mem['field_test_field_storage_config_create'][0]); - * @endcode - * - * @param $key - * The key under which to store to $value, or NULL as described above. - * @param $value - * A value to store for $key. - * - * @return array|null - * An array mapping each $key to an array of each $value passed in - * for that key. - */ -function field_test_memorize($key = NULL, $value = NULL) { - static $memorize; - - if (!isset($key)) { - $return = $memorize; - $memorize = []; - return $return; - } - if (is_array($memorize)) { - $memorize[$key][] = $value; - } -} - -/** - * Memorize calls to field_test_field_storage_config_create(). - */ -function field_test_field_storage_config_create(FieldStorageConfigInterface $field_storage) { - $args = func_get_args(); - field_test_memorize(__FUNCTION__, $args); -} - -/** - * Sets up alterations for widget alter tests. - * - * @see \Drupal\field\Tests\FormTest::widgetAlterTest() - */ -function _field_test_alter_widget($hook, array &$field_widget_complete_form, FormStateInterface $form_state, array $context) { - $elements = &$field_widget_complete_form['widget']; - // Set a message if this is for the form displayed to set default value for - // the field. - if ($context['default']) { - \Drupal::messenger()->addStatus("From $hook(): Default form is true."); - } - $alter_info = \Drupal::state()->get("field_test.widget_alter_test"); - $name = $context['items']->getFieldDefinition()->getName(); - if (!empty($alter_info) && $hook === $alter_info['hook'] && $name === $alter_info['field_name']) { - $elements['#prefix'] = "From $hook(): prefix on $name parent element."; - foreach (Element::children($elements) as $delta => $element) { - $elements[$delta]['#suffix'] = "From $hook(): suffix on $name child element."; - } - } -} - -function field_test_entity_reference_selection_alter(array &$definitions): void { - if (\Drupal::state()->get('field_test_disable_broken_entity_reference_handler')) { - unset($definitions['broken']); - } -} diff --git a/core/modules/field/tests/modules/field_test/src/FieldTestHelper.php b/core/modules/field/tests/modules/field_test/src/FieldTestHelper.php new file mode 100644 index 000000000000..0caaf9962469 --- /dev/null +++ b/core/modules/field/tests/modules/field_test/src/FieldTestHelper.php @@ -0,0 +1,97 @@ +<?php + +declare(strict_types=1); + +namespace Drupal\field_test; + +use Drupal\Core\Entity\FieldableEntityInterface; +use Drupal\Core\Field\FieldDefinitionInterface; + +/** + * Helper class for testing fields. + */ +class FieldTestHelper { + + /** + * Helper function to enable entity translations. + */ + public static function entityInfoTranslatable($entity_type_id = NULL, $translatable = NULL): array { + static $stored_value = []; + if (isset($entity_type_id)) { + $entity_definition_update_manager = \Drupal::entityDefinitionUpdateManager(); + $entity_type = $entity_definition_update_manager->getEntityType($entity_type_id); + $stored_value[$entity_type_id] = $translatable; + if ($translatable != $entity_type->isTranslatable()) { + $entity_definition_update_manager->uninstallEntityType($entity_type); + $entity_type->set('translatable', $translatable); + $entity_definition_update_manager->installEntityType($entity_type); + } + } + return $stored_value; + } + + /** + * Sample 'default value' callback. + */ + public static function defaultValue(FieldableEntityInterface $entity, FieldDefinitionInterface $definition): array { + return [['value' => 99]]; + } + + /** + * Store and retrieve keyed data for later verification by unit tests. + * + * This function is a simple in-memory key-value store with the + * distinction that it stores all values for a given key instead of + * just the most recently set value. field_test module hooks call + * this function to record their arguments, keyed by hook name. The + * unit tests later call this function to verify that the correct + * hooks were called and were passed the correct arguments. + * + * This function ignores all calls until the first time it is called + * with $key of NULL. Each time it is called with $key of NULL, it + * erases all previously stored data from its internal cache, but also + * returns the previously stored data to the caller. A typical usage + * scenario is: + * + * @code + * // calls to FieldTestHelper::memorize() here are ignored + * + * // turn on memorization + * FieldTestHelper::memorize(); + * + * // call some Field API functions that invoke field_test hooks + * FieldStorageConfig::create($field_definition)->save(); + * + * // retrieve and reset the memorized hook call data + * $mem = FieldTestHelper::memorize(); + * + * // make sure hook_field_storage_config_create() is invoked correctly + * assertEquals(1, count($mem['fieldStorageConfigCreate'])); + * assertEquals([$field], $mem['fieldStorageConfigCreate'][0]); + * @endcode + * + * @param $key + * The key under which to store to $value, or NULL as described above. + * @param $value + * A value to store for $key. + * + * @return array|null + * An array mapping each $key to an array of each $value passed in + * for that key. + */ + public static function memorize($key = NULL, $value = NULL): array|null { + static $memorize; + + if (!isset($key)) { + $return = $memorize; + $memorize = []; + return $return; + } + if (is_array($memorize)) { + $memorize[$key][] = $value; + } + + return NULL; + } + +} diff --git a/core/modules/field/tests/modules/field_test/src/Hook/FieldTestEntityHooks.php b/core/modules/field/tests/modules/field_test/src/Hook/FieldTestEntityHooks.php index 1f0bb302500f..4b06d8ffbbfd 100644 --- a/core/modules/field/tests/modules/field_test/src/Hook/FieldTestEntityHooks.php +++ b/core/modules/field/tests/modules/field_test/src/Hook/FieldTestEntityHooks.php @@ -5,6 +5,7 @@ namespace Drupal\field_test\Hook; use Drupal\Core\Hook\Attribute\Hook; +use Drupal\field_test\FieldTestHelper; /** * Hook implementations for field_test. @@ -17,7 +18,7 @@ class FieldTestEntityHooks { #[Hook('entity_type_alter')] public function entityTypeAlter(array &$entity_types) : void { /** @var \Drupal\Core\Entity\EntityTypeInterface[] $entity_types */ - foreach (field_test_entity_info_translatable() as $entity_type => $translatable) { + foreach (FieldTestHelper::entityInfoTranslatable() as $entity_type => $translatable) { $entity_types[$entity_type]->set('translatable', $translatable); } } diff --git a/core/modules/field/tests/modules/field_test/src/Hook/FieldTestHooks.php b/core/modules/field/tests/modules/field_test/src/Hook/FieldTestHooks.php index d5e307fb34a9..6b5d84b8b7d7 100644 --- a/core/modules/field/tests/modules/field_test/src/Hook/FieldTestHooks.php +++ b/core/modules/field/tests/modules/field_test/src/Hook/FieldTestHooks.php @@ -9,6 +9,9 @@ use Drupal\Core\Entity\EntityTypeInterface; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Hook\Attribute\Hook; +use Drupal\Core\Render\Element; +use Drupal\field_test\FieldTestHelper; +use Drupal\field\FieldStorageConfigInterface; /** * Hook implementations for field_test. @@ -46,7 +49,7 @@ public function fieldWidgetSingleElementFormAlter(&$element, FormStateInterface */ #[Hook('field_widget_complete_form_alter')] public function fieldWidgetCompleteFormAlter(array &$field_widget_complete_form, FormStateInterface $form_state, array $context): void { - _field_test_alter_widget("hook_field_widget_complete_form_alter", $field_widget_complete_form, $form_state, $context); + $this->alterWidget("hook_field_widget_complete_form_alter", $field_widget_complete_form, $form_state, $context); } /** @@ -54,7 +57,7 @@ public function fieldWidgetCompleteFormAlter(array &$field_widget_complete_form, */ #[Hook('field_widget_complete_test_field_widget_multiple_form_alter')] public function fieldWidgetCompleteTestFieldWidgetMultipleFormAlter(array &$field_widget_complete_form, FormStateInterface $form_state, array $context): void { - _field_test_alter_widget("hook_field_widget_complete_WIDGET_TYPE_form_alter", $field_widget_complete_form, $form_state, $context); + $this->alterWidget("hook_field_widget_complete_WIDGET_TYPE_form_alter", $field_widget_complete_form, $form_state, $context); } /** @@ -62,7 +65,7 @@ public function fieldWidgetCompleteTestFieldWidgetMultipleFormAlter(array &$fiel */ #[Hook('field_widget_complete_test_field_widget_multiple_single_value_form_alter')] public function fieldWidgetCompleteTestFieldWidgetMultipleSingleValueFormAlter(array &$field_widget_complete_form, FormStateInterface $form_state, array $context): void { - _field_test_alter_widget("hook_field_widget_complete_WIDGET_TYPE_form_alter", $field_widget_complete_form, $form_state, $context); + $this->alterWidget("hook_field_widget_complete_WIDGET_TYPE_form_alter", $field_widget_complete_form, $form_state, $context); } /** @@ -84,7 +87,7 @@ public function queryEfqTablePrefixingTestAlter(&$query): void { */ #[Hook('query_efq_metadata_test_alter')] public function queryEfqMetadataTestAlter(&$query): void { - field_test_memorize('field_test_query_efq_metadata_test_alter', $query->getMetadata('foo')); + FieldTestHelper::memorize('field_test_query_efq_metadata_test_alter', $query->getMetadata('foo')); } /** @@ -186,4 +189,45 @@ public function entityQueryTagEntityTestMulrevEntityQueryEntityTestMulrevAlterTa $query->condition('id', '15', '<>'); } + /** + * Implements hook_field_storage_config_create(). + */ + #[Hook('field_storage_config_create')] + public function fieldStorageConfigCreate(FieldStorageConfigInterface $field_storage): void { + $args = func_get_args(); + FieldTestHelper::memorize(__METHOD__, $args); + } + + /** + * Implements hook_entity_reference_selection_alter(). + */ + #[Hook('entity_reference_selection_alter')] + public function entityReferenceSelectionAlter(array &$definitions): void { + if (\Drupal::state()->get('field_test_disable_broken_entity_reference_handler')) { + unset($definitions['broken']); + } + } + + /** + * Sets up alterations for widget alter tests. + * + * @see \Drupal\field\Tests\FormTest::widgetAlterTest() + */ + public function alterWidget($hook, array &$field_widget_complete_form, FormStateInterface $form_state, array $context): void { + $elements = &$field_widget_complete_form['widget']; + // Set a message if this is for the form displayed to set default value for + // the field. + if ($context['default']) { + \Drupal::messenger()->addStatus("From $hook(): Default form is true."); + } + $alter_info = \Drupal::state()->get("field_test.widget_alter_test"); + $name = $context['items']->getFieldDefinition()->getName(); + if (!empty($alter_info) && $hook === $alter_info['hook'] && $name === $alter_info['field_name']) { + $elements['#prefix'] = "From $hook(): prefix on $name parent element."; + foreach (Element::children($elements) as $delta => $element) { + $elements[$delta]['#suffix'] = "From $hook(): suffix on $name child element."; + } + } + } + } diff --git a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldType/TestItem.php b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldType/TestItem.php index b1945dc6e708..e9ca1a5d8df9 100644 --- a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldType/TestItem.php +++ b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldType/TestItem.php @@ -10,6 +10,7 @@ use Drupal\Core\Form\FormStateInterface; use Drupal\Core\StringTranslation\TranslatableMarkup; use Drupal\Core\TypedData\DataDefinition; +use Drupal\field_test\FieldTestHelper; /** * Defines the 'test_field' entity field item. @@ -114,7 +115,7 @@ public function fieldSettingsForm(array $form, FormStateInterface $form_state) { */ public function delete() { // Reports that delete() method is executed for testing purposes. - field_test_memorize('field_test_field_delete', [$this->getEntity()]); + FieldTestHelper::memorize('field_test_field_delete', [$this->getEntity()]); } /** diff --git a/core/modules/field/tests/src/Functional/TranslationWebTest.php b/core/modules/field/tests/src/Functional/TranslationWebTest.php index 7733054d8283..df3e1343ab20 100644 --- a/core/modules/field/tests/src/Functional/TranslationWebTest.php +++ b/core/modules/field/tests/src/Functional/TranslationWebTest.php @@ -6,6 +6,7 @@ use Drupal\field\Entity\FieldStorageConfig; use Drupal\field\Entity\FieldConfig; +use Drupal\field_test\FieldTestHelper; use Drupal\language\Entity\ConfigurableLanguage; /** @@ -101,7 +102,7 @@ public function testFieldFormTranslationRevisions(): void { $this->drupalLogin($web_user); // Prepare the field translations. - field_test_entity_info_translatable($this->entityTypeId, TRUE); + FieldTestHelper::entityInfoTranslatable($this->entityTypeId, TRUE); $entity = $this->container->get('entity_type.manager') ->getStorage($this->entityTypeId) ->create(); diff --git a/core/modules/field/tests/src/Kernel/BulkDeleteTest.php b/core/modules/field/tests/src/Kernel/BulkDeleteTest.php index c31906ee2666..f423793542de 100644 --- a/core/modules/field/tests/src/Kernel/BulkDeleteTest.php +++ b/core/modules/field/tests/src/Kernel/BulkDeleteTest.php @@ -8,6 +8,7 @@ use Drupal\Core\Entity\EntityInterface; use Drupal\field\Entity\FieldConfig; use Drupal\field\Entity\FieldStorageConfig; +use Drupal\field_test\FieldTestHelper; /** * Bulk delete storages and fields, and clean up afterwards. @@ -59,7 +60,7 @@ class BulkDeleteTest extends FieldKernelTestBase { * Each entry is the value of the "$entity" parameter the hook is expected * to have been passed. * @param array $actual_hooks - * The array of actual hook invocations recorded by field_test_memorize(). + * The array of actual hook invocations recorded by FieldTestHelper::memorize(). */ public function checkHooksInvocations($expected_hooks, $actual_hooks): void { foreach ($expected_hooks as $hook => $invocations) { @@ -325,7 +326,7 @@ public function testPurgeWithDeletedAndActiveField(): void { */ public function testPurgeField(): void { // Start recording hook invocations. - field_test_memorize(); + FieldTestHelper::memorize(); $bundle = reset($this->bundles); $field_storage = reset($this->fieldStorages); @@ -336,7 +337,7 @@ public function testPurgeField(): void { $field->delete(); // No field hooks were called. - $mem = field_test_memorize(); + $mem = FieldTestHelper::memorize(); $this->assertCount(0, $mem, 'No field hooks were called'); $batch_size = 2; @@ -356,7 +357,7 @@ public function testPurgeField(): void { // Check hooks invocations. // FieldItemInterface::delete() should have been called once for each entity in the // bundle. - $actual_hooks = field_test_memorize(); + $actual_hooks = FieldTestHelper::memorize(); $hooks = []; $hooks['field_test_field_delete'] = $this->entitiesByBundles[$bundle]; $this->checkHooksInvocations($hooks, $actual_hooks); @@ -386,7 +387,7 @@ public function testPurgeField(): void { */ public function testPurgeFieldStorage(): void { // Start recording hook invocations. - field_test_memorize(); + FieldTestHelper::memorize(); $field_storage = reset($this->fieldStorages); $field_name = $field_storage->getName(); @@ -397,7 +398,7 @@ public function testPurgeFieldStorage(): void { $field->delete(); // Assert that FieldItemInterface::delete() was not called yet. - $mem = field_test_memorize(); + $mem = FieldTestHelper::memorize(); $this->assertCount(0, $mem, 'No field hooks were called.'); // Purge the data. @@ -406,7 +407,7 @@ public function testPurgeFieldStorage(): void { // Check hooks invocations. // FieldItemInterface::delete() should have been called once for each entity in the // bundle. - $actual_hooks = field_test_memorize(); + $actual_hooks = FieldTestHelper::memorize(); $hooks = []; $hooks['field_test_field_delete'] = $this->entitiesByBundles[$bundle]; $this->checkHooksInvocations($hooks, $actual_hooks); @@ -433,14 +434,14 @@ public function testPurgeFieldStorage(): void { $field->delete(); // Assert that FieldItemInterface::delete() was not called yet. - $mem = field_test_memorize(); + $mem = FieldTestHelper::memorize(); $this->assertCount(0, $mem, 'No field hooks were called.'); // Purge the data. field_purge_batch(10); // Check hooks invocations (same as above, for the 2nd bundle). - $actual_hooks = field_test_memorize(); + $actual_hooks = FieldTestHelper::memorize(); $hooks = []; $hooks['field_test_field_delete'] = $this->entitiesByBundles[$bundle]; $this->checkHooksInvocations($hooks, $actual_hooks); diff --git a/core/modules/field/tests/src/Kernel/FieldAttachStorageTest.php b/core/modules/field/tests/src/Kernel/FieldAttachStorageTest.php index e72cae7c29ea..347148ee4f8e 100644 --- a/core/modules/field/tests/src/Kernel/FieldAttachStorageTest.php +++ b/core/modules/field/tests/src/Kernel/FieldAttachStorageTest.php @@ -6,6 +6,7 @@ use Drupal\field\Entity\FieldConfig; use Drupal\field\Entity\FieldStorageConfig; +use Drupal\field_test\FieldTestHelper; /** * Tests storage-related Field Attach API functions. @@ -202,14 +203,14 @@ public function testFieldAttachSaveEmptyDataDefaultValue(): void { $this->createFieldWithStorage('', $entity_type); // Add a default value function. - $this->fieldTestData->field->set('default_value_callback', 'field_test_default_value'); + $this->fieldTestData->field->set('default_value_callback', FieldTestHelper::class . '::defaultValue'); $this->fieldTestData->field->save(); // Verify that fields are populated with default values. $entity_init = $this->container->get('entity_type.manager') ->getStorage($entity_type) ->create(['id' => 1, 'revision_id' => 1]); - $default = field_test_default_value($entity_init, $this->fieldTestData->field); + $default = FieldTestHelper::defaultValue($entity_init, $this->fieldTestData->field); $this->assertEquals($default, $entity_init->{$this->fieldTestData->field_name}->getValue(), 'Default field value correctly populated.'); // Insert: Field is NULL. diff --git a/core/modules/field/tests/src/Kernel/FieldStorageCrudTest.php b/core/modules/field/tests/src/Kernel/FieldStorageCrudTest.php index cd39a77a9419..6b1af094365f 100644 --- a/core/modules/field/tests/src/Kernel/FieldStorageCrudTest.php +++ b/core/modules/field/tests/src/Kernel/FieldStorageCrudTest.php @@ -10,6 +10,7 @@ use Drupal\entity_test\Entity\EntityTest; use Drupal\field\Entity\FieldConfig; use Drupal\field\Entity\FieldStorageConfig; +use Drupal\field_test\FieldTestHelper; /** * Tests field storage create, read, update, and delete. @@ -37,7 +38,7 @@ public function testCreate(): void { 'entity_type' => 'entity_test', 'type' => 'test_field', ]; - field_test_memorize(); + FieldTestHelper::memorize(); $field_storage = FieldStorageConfig::create($field_storage_definition); $field_storage->save(); @@ -45,9 +46,9 @@ public function testCreate(): void { $this->assertEquals('TRUE', $field_storage->getSetting('storage_setting_from_config_data')); $this->assertNull($field_storage->getSetting('config_data_from_storage_setting')); - $mem = field_test_memorize(); - $this->assertSame($field_storage_definition['field_name'], $mem['field_test_field_storage_config_create'][0][0]->getName(), 'hook_entity_create() called with correct arguments.'); - $this->assertSame($field_storage_definition['type'], $mem['field_test_field_storage_config_create'][0][0]->getType(), 'hook_entity_create() called with correct arguments.'); + $mem = FieldTestHelper::memorize(); + $this->assertSame($field_storage_definition['field_name'], $mem['Drupal\field_test\Hook\FieldTestHooks::fieldStorageConfigCreate'][0][0]->getName(), 'hook_entity_create() called with correct arguments.'); + $this->assertSame($field_storage_definition['type'], $mem['Drupal\field_test\Hook\FieldTestHooks::fieldStorageConfigCreate'][0][0]->getType(), 'hook_entity_create() called with correct arguments.'); // Read the configuration. Check against raw configuration data rather than // the loaded ConfigEntity, to be sure we check that the defaults are diff --git a/core/modules/field/tests/src/Kernel/TranslationTest.php b/core/modules/field/tests/src/Kernel/TranslationTest.php index 6c20a5e3f43c..b563e10ccd5d 100644 --- a/core/modules/field/tests/src/Kernel/TranslationTest.php +++ b/core/modules/field/tests/src/Kernel/TranslationTest.php @@ -5,8 +5,9 @@ namespace Drupal\Tests\field\Kernel; use Drupal\field\Entity\FieldConfig; -use Drupal\language\Entity\ConfigurableLanguage; use Drupal\field\Entity\FieldStorageConfig; +use Drupal\field_test\FieldTestHelper; +use Drupal\language\Entity\ConfigurableLanguage; /** * Tests multilingual fields logic. @@ -110,13 +111,13 @@ protected function setUp(): void { */ public function testTranslatableFieldSaveLoad(): void { // Enable field translations for nodes. - field_test_entity_info_translatable('node', TRUE); + FieldTestHelper::entityInfoTranslatable('node', TRUE); $entity_type = \Drupal::entityTypeManager()->getDefinition('node'); $this->assertTrue($entity_type->isTranslatable(), 'Nodes are translatable.'); // Prepare the field translations. $entity_type_id = 'entity_test'; - field_test_entity_info_translatable($entity_type_id, TRUE); + FieldTestHelper::entityInfoTranslatable($entity_type_id, TRUE); $entity = $this->container->get('entity_type.manager') ->getStorage($entity_type_id) ->create(['type' => $this->field->getTargetBundle()]); diff --git a/core/tests/Drupal/KernelTests/Core/Entity/EntityQueryTest.php b/core/tests/Drupal/KernelTests/Core/Entity/EntityQueryTest.php index c68d82e299fc..ebaa0e299fd5 100644 --- a/core/tests/Drupal/KernelTests/Core/Entity/EntityQueryTest.php +++ b/core/tests/Drupal/KernelTests/Core/Entity/EntityQueryTest.php @@ -10,6 +10,7 @@ use Drupal\entity_test\Entity\EntityTestMulRev; use Drupal\field\Entity\FieldConfig; use Drupal\field\Entity\FieldStorageConfig; +use Drupal\field_test\FieldTestHelper; use Drupal\language\Entity\ConfigurableLanguage; use Drupal\taxonomy\Entity\Term; use Drupal\taxonomy\Entity\Vocabulary; @@ -797,7 +798,7 @@ protected function assertBundleOrder(string $order): void { * The tags and metadata should propagate to the SQL query object. */ public function testMetaData(): void { - field_test_memorize(); + FieldTestHelper::memorize(); $query = $this->storage->getQuery()->accessCheck(FALSE); $query @@ -805,7 +806,7 @@ public function testMetaData(): void { ->addMetaData('foo', 'bar') ->execute(); - $mem = field_test_memorize(); + $mem = FieldTestHelper::memorize(); $this->assertEquals('bar', $mem['field_test_query_efq_metadata_test_alter'][0], 'Tag and metadata propagated to the SQL query object.'); } -- GitLab