function ViewEntityDependenciesTest::testGetDependencies

Same name and namespace in other branches
  1. 9 core/modules/views/tests/src/Kernel/Entity/ViewEntityDependenciesTest.php \Drupal\Tests\views\Kernel\Entity\ViewEntityDependenciesTest::testGetDependencies()
  2. 8.9.x core/modules/views/tests/src/Kernel/Entity/ViewEntityDependenciesTest.php \Drupal\Tests\views\Kernel\Entity\ViewEntityDependenciesTest::testGetDependencies()
  3. 11.x core/modules/views/tests/src/Kernel/Entity/ViewEntityDependenciesTest.php \Drupal\Tests\views\Kernel\Entity\ViewEntityDependenciesTest::testGetDependencies()

Tests the getDependencies method.

File

core/modules/views/tests/src/Kernel/Entity/ViewEntityDependenciesTest.php, line 95

Class

ViewEntityDependenciesTest
Tests the calculation of dependencies for views.

Namespace

Drupal\Tests\views\Kernel\Entity

Code

public function testGetDependencies() : void {
  $expected = [];
  $expected['test_field_get_entity'] = [
    'module' => [
      'comment',
      'node',
      'user',
    ],
  ];
  // Tests dependencies of relationships.
  $expected['test_relationship_dependency'] = [
    'module' => [
      'comment',
      'node',
      'user',
    ],
  ];
  $expected['test_plugin_dependencies'] = [
    'module' => [
      'comment',
      'views_test_data',
    ],
    'content' => [
      'RowTest',
      'StaticTest',
      'StyleTest',
    ],
  ];
  $expected['test_argument_dependency'] = [
    'config' => [
      'core.entity_view_mode.node.teaser',
      'field.storage.node.body',
    ],
    'content' => [
      'ArgumentDefaultTest',
      'ArgumentValidatorTest',
    ],
    'module' => [
      'node',
      // The argument handler is provided by the search module.
'search',
      'text',
      'user',
    ],
  ];
  foreach ($this::$testViews as $view_id) {
    $view = Views::getView($view_id);
    $dependencies = $view->getDependencies();
    $this->assertEquals($expected[$view_id], $dependencies);
    $config = $this->config('views.view.' . $view_id);
    \Drupal::service('config.storage.sync')->write($view_id, $config->get());
  }
  // Ensure that dependencies are calculated on the display level.
  $expected_display['default'] = [
    'config' => [
      'core.entity_view_mode.node.teaser',
    ],
    'content' => [
      'ArgumentDefaultTest',
      'ArgumentValidatorTest',
    ],
    'module' => [
      'core',
      'node',
      'search',
      'user',
      'views',
    ],
  ];
  $expected_display['page'] = [
    'config' => [
      'field.storage.node.body',
    ],
    'module' => [
      'core',
      'node',
      'text',
      'views',
    ],
  ];
  $view = Views::getView('test_argument_dependency');
  $view->initDisplay();
  foreach ($view->displayHandlers as $display) {
    // Calculate the dependencies each display has.
    $this->assertEquals($expected_display[$display->getPluginId()], $display->calculateDependencies());
  }
}

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