You are here

public function NidArgumentTest::testNidArgument in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/modules/node/src/Tests/Views/NidArgumentTest.php \Drupal\node\Tests\Views\NidArgumentTest::testNidArgument()

Test the nid argument.

File

core/modules/node/src/Tests/Views/NidArgumentTest.php, line 51
Contains \Drupal\node\Tests\Views\NidArgumentTest.

Class

NidArgumentTest
Tests the nid argument handler.

Namespace

Drupal\node\Tests\Views

Code

public function testNidArgument() {
  $view = Views::getView('test_nid_argument');
  $view
    ->setDisplay();
  $node1 = Node::create([
    'type' => 'default',
    'title' => $this
      ->randomMachineName(),
  ]);
  $node1
    ->save();
  $node2 = Node::create([
    'type' => 'default',
    'title' => $this
      ->randomMachineName(),
  ]);
  $node2
    ->save();
  $view
    ->preview();
  $this
    ->assertEqual(count($view->result), 2, 'Found the expected number of results.');

  // Set an the second node id as an argument.
  $view
    ->destroy();
  $view
    ->preview('default', [
    $node2
      ->id(),
  ]);

  // Verify that the title is overridden.
  $this
    ->assertEqual($view
    ->getTitle(), $node2
    ->getTitle());

  // Verify that the argument filtering works.
  $this
    ->assertEqual(count($view->result), 1, 'Found the expected number of results.');
  $this
    ->assertEqual($node2
    ->id(), (string) $view->style_plugin
    ->getField(0, 'nid'), 'Found the correct nid.');

  // Verify that setting a non-existing id as argument results in no nodes
  // being shown.
  $view
    ->destroy();
  $view
    ->preview('default', [
    22,
  ]);
  $this
    ->assertEqual(count($view->result), 0, 'Found the expected number of results.');
}