function ManageFieldsLifecycleTest::addPersistentFieldStorage

Same name in other branches
  1. 11.x core/modules/field_ui/tests/src/Functional/ManageFieldsLifecycleTest.php \Drupal\Tests\field_ui\Functional\ManageFieldsLifecycleTest::addPersistentFieldStorage()

Tests that persistent field storage appears in the field UI.

1 call to ManageFieldsLifecycleTest::addPersistentFieldStorage()
ManageFieldsLifecycleTest::testCRUDFields in core/modules/field_ui/tests/src/Functional/ManageFieldsLifecycleTest.php
Runs the field CRUD tests.

File

core/modules/field_ui/tests/src/Functional/ManageFieldsLifecycleTest.php, line 279

Class

ManageFieldsLifecycleTest
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');
    $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);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.