public function FilterUidRevisionTest::testFilter in Drupal 9
Same name and namespace in other branches
- 8 core/modules/node/tests/src/Kernel/Views/FilterUidRevisionTest.php \Drupal\Tests\node\Kernel\Views\FilterUidRevisionTest::testFilter()
- 10 core/modules/node/tests/src/Kernel/Views/FilterUidRevisionTest.php \Drupal\Tests\node\Kernel\Views\FilterUidRevisionTest::testFilter()
Tests the node_uid_revision filter.
File
- core/
modules/ node/ tests/ src/ Kernel/ Views/ FilterUidRevisionTest.php, line 45
Class
- FilterUidRevisionTest
- Tests the node_uid_revision handler.
Namespace
Drupal\Tests\node\Kernel\ViewsCode
public function testFilter() {
$this
->installEntitySchema('user');
$this
->installEntitySchema('node');
$this
->installEntitySchema('view');
$this
->installSchema('system', [
'sequences',
]);
$this
->installSchema('node', [
'node_access',
]);
$this
->installConfig([
'filter',
]);
ViewTestData::createTestViews(static::class, [
'node_test_views',
]);
$author = $this
->createUser();
$no_author = $this
->createUser();
$expected_result = [];
// Create one node, with the author as the node author.
$node = $this
->createNode([
'uid' => $author
->id(),
]);
$expected_result[] = [
'nid' => $node
->id(),
];
// Create one node of which an additional revision author will be the
// author.
$node = $this
->createNode([
'revision_uid' => $no_author
->id(),
]);
$expected_result[] = [
'nid' => $node
->id(),
];
$revision = clone $node;
// Force to add a new revision.
$revision
->set('vid', NULL);
$revision
->set('revision_uid', $author
->id());
$revision
->save();
// Create one node on which the author has neither authorship of revisions
// or the main node.
$this
->createNode([
'uid' => $no_author
->id(),
]);
$view = Views::getView('test_filter_node_uid_revision');
$view
->initHandlers();
$view->filter['uid_revision']->value = [
$author
->id(),
];
$view
->preview();
$this
->assertIdenticalResultset($view, $expected_result, [
'nid' => 'nid',
], 'Make sure that the view only returns nodes which match either the node or the revision author.');
}