function FieldUpdateTest::testFieldUpdate8002

Tests field_update_8002().

See also

field_update_8002()

File

core/modules/field/tests/src/Functional/Update/FieldUpdateTest.php, line 102

Class

FieldUpdateTest
Tests that field settings are properly updated during database updates.

Namespace

Drupal\Tests\field\Functional\Update

Code

public function testFieldUpdate8002() {
    // Check that 'entity_reference' is the provider and a dependency of the
    // test field storage .
    $field_storage = $this->configFactory
        ->get('field.storage.node.field_ref_views_select_2429191');
    $this->assertIdentical($field_storage->get('module'), 'entity_reference');
    $this->assertEntityRefDependency($field_storage, TRUE);
    // Check that 'entity_reference' is a dependency of the test field.
    $field = $this->configFactory
        ->get('field.field.node.article.field_ref_views_select_2429191');
    $this->assertEntityRefDependency($field, TRUE);
    // Check that 'entity_reference' is a dependency of the test view.
    $view = $this->configFactory
        ->get('views.view.entity_reference_plugins_2429191');
    $this->assertEntityRefDependency($view, TRUE);
    // Run updates.
    $this->runUpdates();
    // Check that 'entity_reference' is no longer a dependency of the test field
    // and view.
    $field_storage = $this->configFactory
        ->get('field.storage.node.field_ref_views_select_2429191');
    $this->assertIdentical($field_storage->get('module'), 'core');
    $this->assertEntityRefDependency($field_storage, FALSE);
    $field = $this->configFactory
        ->get('field.field.node.article.field_ref_views_select_2429191');
    $this->assertEntityRefDependency($field, FALSE);
    $view = $this->configFactory
        ->get('views.view.entity_reference_plugins_2429191');
    $this->assertEntityRefDependency($view, FALSE);
    // Check that field selection, based on the view, still works. It only
    // selects nodes whose title contains 'foo'.
    $node_1 = Node::create([
        'type' => 'article',
        'title' => 'foobar',
    ]);
    $node_1->save();
    $node_2 = Node::create([
        'type' => 'article',
        'title' => 'barbaz',
    ]);
    $node_2->save();
    $field = FieldConfig::load('node.article.field_ref_views_select_2429191');
    $selection = \Drupal::service('plugin.manager.entity_reference_selection')->getSelectionHandler($field);
    $referencable = $selection->getReferenceableEntities();
    $this->assertEqual(array_keys($referencable['article']), [
        $node_1->id(),
    ]);
}

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