You are here

public function LinksWidgetTest::testChildren in Facets 8

Tests for links widget with children.

File

tests/src/Unit/Plugin/widget/LinksWidgetTest.php, line 157

Class

LinksWidgetTest
Unit test for widget.

Namespace

Drupal\Tests\facets\Unit\Plugin\widget

Code

public function testChildren() {
  $original_results = $this->originalResults;
  $facet = $this->facet;
  $child = new Result($facet, 'snake', 'Snake', 5);
  $original_results[1]
    ->setActiveState(TRUE);
  $original_results[1]
    ->setChildren([
    $child,
  ]);
  $facet
    ->setResults($original_results);
  $this->widget
    ->setConfiguration([
    'show_numbers' => TRUE,
  ]);
  $output = $this->widget
    ->build($facet);
  $this
    ->assertSame('array', gettype($output));
  $this
    ->assertCount(4, $output['#items']);
  $expected_links = [
    $this
      ->buildLinkAssertion('Llama', 'llama', $facet, 10),
    $this
      ->buildLinkAssertion('Badger', 'badger', $facet, 20, TRUE),
    $this
      ->buildLinkAssertion('Duck', 'duck', $facet, 15),
    $this
      ->buildLinkAssertion('Alpaca', 'alpaca', $facet, 9),
  ];
  foreach ($expected_links as $index => $value) {
    $this
      ->assertSame('array', gettype($output['#items'][$index]));
    $this
      ->assertEquals($value, $output['#items'][$index]['#title']);
    $this
      ->assertEquals('link', $output['#items'][$index]['#type']);
    if ($index === 1) {
      $this
        ->assertEquals([
        'is-active',
      ], $output['#items'][$index]['#attributes']['class']);
      $this
        ->assertEquals([
        'facet-item',
        'facet-item--expanded',
      ], $output['#items'][$index]['#wrapper_attributes']['class']);
    }
    else {
      $this
        ->assertEquals([
        'facet-item',
      ], $output['#items'][$index]['#wrapper_attributes']['class']);
    }
  }
}