You are here

protected function ManageFieldsFunctionalTest::addPersistentFieldStorage in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/field_ui/tests/src/Functional/ManageFieldsFunctionalTest.php \Drupal\Tests\field_ui\Functional\ManageFieldsFunctionalTest::addPersistentFieldStorage()
  2. 9 core/modules/field_ui/tests/src/Functional/ManageFieldsFunctionalTest.php \Drupal\Tests\field_ui\Functional\ManageFieldsFunctionalTest::addPersistentFieldStorage()

Tests that persistent field storage appears in the field UI.

File

core/modules/field_ui/tests/src/Functional/ManageFieldsFunctionalTest.php, line 418

Class

ManageFieldsFunctionalTest
Tests the Field UI "Manage fields" screen.

Namespace

Drupal\Tests\field_ui\Functional

Code

protected function addPersistentFieldStorage() {
  $field_storage = FieldStorageConfig::loadByName('node', $this->fieldName);

  // Persist the field storage even if there are no fields.
  $field_storage
    ->set('persist_with_no_fields', TRUE)
    ->save();

  // Delete all instances of the field.
  foreach ($field_storage
    ->getBundles() as $node_type) {

    // Delete all the body field instances.
    $this
      ->drupalGet('admin/structure/types/manage/' . $node_type . '/fields/node.' . $node_type . '.' . $this->fieldName);
    $this
      ->clickLink('Delete');
    $this
      ->submitForm([], 'Delete');
  }

  // Check "Re-use existing field" appears.
  $this
    ->drupalGet('admin/structure/types/manage/page/fields/add-field');
  $this
    ->assertSession()
    ->pageTextContains("Re-use an existing field");

  // Ensure that we test with a label that contains HTML.
  $label = $this
    ->randomString(4) . '<br/>' . $this
    ->randomString(4);

  // Add a new field for the orphaned storage.
  $this
    ->fieldUIAddExistingField("admin/structure/types/manage/page", $this->fieldName, $label);
}