You are here

public function HookFivestarWidgetsTest::testWidgetDiscovery in Fivestar 8

Tests finding widgets defined by hook_fivestar_widgets().

File

tests/src/Kernel/HookFivestarWidgetsTest.php, line 42

Class

HookFivestarWidgetsTest
Tests the operation of hook_fivestar_widgets().

Namespace

Drupal\Tests\fivestar\Kernel

Code

public function testWidgetDiscovery() {
  $expected = [
    // Awesome Stars is defined in the fivestar_widget_provider module.
    'awesome' => [
      'library' => 'fivestar_widget_provider/awesome',
      'label' => 'Awesome Stars',
    ],
    // Cools Stars is defined in the fivestar_widget_provider module.
    'cool' => [
      'library' => 'fivestar_widget_provider/cool',
      'label' => 'Cool Stars',
    ],
  ];

  // Invoke the hook and collect all defined widgets.
  $widgets = $this->widgetManager
    ->getWidgets();

  // Verify "Awesome Stars" was discovered.
  $this
    ->assertArrayHasKey('awesome', $widgets);
  $this
    ->assertEquals($expected['awesome']['label'], $widgets['awesome']['label']);
  $this
    ->assertEquals($expected['awesome']['library'], $widgets['awesome']['library']);

  // Verify "Cool Stars" was discovered.
  $this
    ->assertArrayHasKey('cool', $widgets);
  $this
    ->assertEquals($expected['cool']['label'], $widgets['cool']['label']);
  $this
    ->assertEquals($expected['cool']['library'], $widgets['cool']['library']);
}