You are here

public function TreeTableTest::testTreeTableStyle in Views tree 8.2

Tests the tree table style plugin.

File

tests/src/Kernel/Plugin/views/style/TreeTableTest.php, line 45

Class

TreeTableTest
Tests the views tree list style plugin.

Namespace

Drupal\Tests\views_tree\Kernel\Plugin\views\style

Code

public function testTreeTableStyle() {
  $view = Views::getView('views_tree_test');
  $this
    ->executeView($view);
  $this
    ->assertCount(15, $view->result);

  // Render the view, which will re-sort the result.
  // @see template_preprocess_views_tree_table()
  $output = $view
    ->render('default');
  $rendered_output = \Drupal::service('renderer')
    ->renderRoot($output);

  // Verify parents are properly set in the result.
  $result = $view->result;
  $this
    ->assertEquals(1, $result[0]->views_tree_parent);
  $this
    ->assertEquals(6, $result[11]->views_tree_parent);

  // Verify rendered output.
  $this
    ->setRawContent($rendered_output);
  $rows = $this
    ->xpath('//tbody/tr');
  $this
    ->assertEquals(1, (string) $rows[0]
    ->attributes()['data-hierarchy-level']);
  $this
    ->assertEquals(2, (string) $rows[1]
    ->attributes()['data-hierarchy-level']);
  $this
    ->assertEquals(3, (string) $rows[6]
    ->attributes()['data-hierarchy-level']);
  $this
    ->assertEquals(1, (string) $rows[11]
    ->attributes()['data-hierarchy-level']);

  // Verify the hierarchy display class is added to the correct cell.
  $this
    ->assertContains('views-tree-hierarchy-cell', (string) $rows[0]->td
    ->attributes()->class);
  $this
    ->assertNotContains('views-tree-hierarchy-cell', (string) $rows[0]->td[1]
    ->attributes()->class);
}