You are here

protected function ManageFieldsTest::addPersistentFieldStorage in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 core/modules/field_ui/src/Tests/ManageFieldsTest.php \Drupal\field_ui\Tests\ManageFieldsTest::addPersistentFieldStorage()

Tests that persistent field storage appears in the field UI.

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

File

core/modules/field_ui/src/Tests/ManageFieldsTest.php, line 300
Contains \Drupal\field_ui\Tests\ManageFieldsTest.

Class

ManageFieldsTest
Tests the Field UI "Manage fields" screen.

Namespace

Drupal\field_ui\Tests

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(t('Delete'));
    $this
      ->drupalPostForm(NULL, array(), t('Delete'));
  }

  // Check "Re-use existing field" appears.
  $this
    ->drupalGet('admin/structure/types/manage/page/fields/add-field');
  $this
    ->assertRaw(t('Re-use an existing field'), '"Re-use existing field" was found.');

  // 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);
}