You are here

public function FilterUidRevisionTest::testFilter in Views (for Drupal 7) 8.3

Tests the node_uid_revision filter.

File

lib/Drupal/views/Tests/Node/FilterUidRevisionTest.php, line 27
Definition of Drupal\views\Tests\Comment\FilterUidRevisionTest.

Class

FilterUidRevisionTest
Tests the node_uid_revision handler.

Namespace

Drupal\views\Tests\Node

Code

public function testFilter() {
  $author = $this
    ->drupalCreateUser();
  $no_author = $this
    ->drupalCreateUser();
  $expected_result = array();

  // Create one node, with the author as the node author.
  $node = $this
    ->drupalCreateNode(array(
    'uid' => $author
      ->id(),
  ));
  $expected_result[] = array(
    'nid' => $node
      ->id(),
  );

  // Create one node of which an additional revision author will be the
  // author.
  $node = $this
    ->drupalCreateNode(array(
    'uid' => $no_author
      ->id(),
  ));
  $expected_result[] = array(
    '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.
  $node = $this
    ->drupalCreateNode(array(
    'uid' => $no_author
      ->id(),
  ));
  $view = views_get_view('test_filter_node_uid_revision');
  $view
    ->initHandlers();
  $view->filter['uid_revision']->value = array(
    $author->uid,
  );
  $this
    ->executeView($view);
  $this
    ->assertIdenticalResultset($view, $expected_result, array(
    'nid' => 'nid',
  ), 'Make sure that the view only returns nodes which match either the node or the revision author.');
}