function NodeBodyFieldStorageTest::testFieldOverrides

Tests node body field storage persistence even if there are no instances.

File

core/modules/field/tests/src/Kernel/NodeBodyFieldStorageTest.php, line 48

Class

NodeBodyFieldStorageTest
Tests node body field storage.

Namespace

Drupal\Tests\field\Kernel

Code

public function testFieldOverrides() : void {
  FieldStorageConfig::create([
    'field_name' => 'body',
    'type' => 'text_long',
    'entity_type' => 'node',
    'cardinality' => 1,
    'persist_with_no_fields' => TRUE,
  ])->save();
  $field_storage = FieldStorageConfig::loadByName('node', 'body');
  $this->assertNotEmpty($field_storage, 'Node body field storage exists.');
  $this->createContentType([
    'name' => 'Ponies',
    'type' => 'ponies',
  ]);
  $field_storage = FieldStorageConfig::loadByName('node', 'body');
  $this->assertCount(1, $field_storage->getBundles(), 'Node body field storage is being used on the new node type.');
  $field = FieldConfig::loadByName('node', 'ponies', 'body');
  $field->delete();
  $field_storage = FieldStorageConfig::loadByName('node', 'body');
  $this->assertCount(0, $field_storage->getBundles(), 'Node body field storage exists after deleting the only instance of a field.');
  \Drupal::service('module_installer')->uninstall([
    'node',
  ]);
  $field_storage = FieldStorageConfig::loadByName('node', 'body');
  $this->assertNull($field_storage, 'Node body field storage does not exist after uninstalling the Node module.');
}

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