function AccessTest::testContentAccessFilter

Tests that node_access table is joined when hook_node_grants() is implemented.

File

core/modules/views/tests/src/Functional/Plugin/AccessTest.php, line 127

Class

AccessTest
Tests pluggable access for views.

Namespace

Drupal\Tests\views\Functional\Plugin

Code

public function testContentAccessFilter() : void {
  $view = Views::getView('test_content_access_filter');
  $view->setDisplay('page_1');
  $view->initQuery();
  $view->execute();
  /** @var \Drupal\Core\Database\Query\Select $main_query */
  $main_query = $view->build_info['query'];
  $tables = array_keys($main_query->getTables());
  $this->assertNotContains('node_access', $tables);
  // Enable node access test module to ensure that table is present again.
  \Drupal::service('module_installer')->install([
    'node_access_test',
  ]);
  node_access_rebuild();
  $view = Views::getView('test_content_access_filter');
  $view->setDisplay('page_1');
  $view->initQuery();
  $view->execute();
  /** @var \Drupal\Core\Database\Query\Select $main_query */
  $main_query = $view->build_info['query'];
  $tables = array_keys($main_query->getTables());
  $this->assertContains('node_access', $tables);
}

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