You are here

public function LinksWidgetTest::testActiveItems in Facets 8

Test widget with 2 active items.

File

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

Class

LinksWidgetTest
Unit test for widget.

Namespace

Drupal\Tests\facets\Unit\Plugin\widget

Code

public function testActiveItems() {
  $original_results = $this->originalResults;
  $original_results[0]
    ->setActiveState(TRUE);
  $original_results[3]
    ->setActiveState(TRUE);
  $facet = $this->facet;
  $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, TRUE),
    $this
      ->buildLinkAssertion('Badger', 'badger', $facet, 20),
    $this
      ->buildLinkAssertion('Duck', 'duck', $facet, 15),
    $this
      ->buildLinkAssertion('Alpaca', 'alpaca', $facet, 9, TRUE),
  ];
  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 === 0 || $index === 3) {
      $this
        ->assertEquals([
        'is-active',
      ], $output['#items'][$index]['#attributes']['class']);
    }
    $this
      ->assertEquals([
      'facet-item',
    ], $output['#items'][$index]['#wrapper_attributes']['class']);
  }
}