You are here

public function EntityReferenceSettingsTest::testConfigTargetBundleDeletion in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/modules/field/src/Tests/EntityReference/EntityReferenceSettingsTest.php \Drupal\field\Tests\EntityReference\EntityReferenceSettingsTest::testConfigTargetBundleDeletion()

Tests that config bundle deletions are mirrored in field config settings.

File

core/modules/field/src/Tests/EntityReference/EntityReferenceSettingsTest.php, line 81
Contains \Drupal\field\Tests\EntityReference\EntityReferenceSettingsTest.

Class

EntityReferenceSettingsTest
Tests entity reference field settings.

Namespace

Drupal\field\Tests\EntityReference

Code

public function testConfigTargetBundleDeletion() {

  // Attach an entity reference field to $this->nodeType.
  $name = Unicode::strtolower($this
    ->randomMachineName());
  $label = $this
    ->randomString();
  $vid = $this->vocabulary
    ->id();
  $handler_settings = [
    'target_bundles' => [
      $vid => $vid,
    ],
  ];
  $this
    ->createEntityReferenceField('node', $this->nodeType
    ->id(), $name, $label, 'taxonomy_term', 'default', $handler_settings);

  // Check that the 'target_bundle' setting contains the vocabulary.
  $field_config = FieldConfig::loadByName('node', $this->nodeType
    ->id(), $name);
  $actual_handler_settings = $field_config
    ->getSetting('handler_settings');
  $this
    ->assertEqual($handler_settings, $actual_handler_settings);

  // Delete the vocabulary.
  $this->vocabulary
    ->delete();

  // Check that the deleted vocabulary is no longer present in the
  // 'target_bundles' field setting.
  $field_config = FieldConfig::loadByName('node', $this->nodeType
    ->id(), $name);
  $handler_settings = $field_config
    ->getSetting('handler_settings');
  $this
    ->assertTrue(empty($handler_settings['target_bundles']));
}