function IconPackManagerKernelTest::testProcessDefinition

Test the IconPackManager::processDefinition method.

File

core/tests/Drupal/KernelTests/Core/Theme/Icon/IconPackManagerKernelTest.php, line 299

Class

IconPackManagerKernelTest
Tests values are from test module icon_test.

Namespace

Drupal\KernelTests\Core\Theme\Icon

Code

public function testProcessDefinition() : void {
  $relative_path = 'core/modules/system/tests/modules/icon_test';
  $definition = [
    'id' => 'foo',
    'label' => 'Foo',
    'provider' => 'icon_test',
    'extractor' => 'test',
  ];
  $this->pluginManagerIconPack
    ->processDefinition($definition, 'foo');
  $this->assertSame('foo', $definition['id']);
  $this->assertSame('Foo', $definition['label']);
  $this->assertEquals($relative_path, $definition['relative_path']);
  $absolute_path = sprintf('%s/%s', $this->appRoot, $relative_path);
  $this->assertEquals($absolute_path, $definition['absolute_path']);
  $this->assertArrayHasKey('icons', $definition);
  $this->assertEmpty($definition['icons']);
  $definition = [
    'id' => 'foo',
    'provider' => 'icon_test',
    'extractor' => 'test_finder',
    'template' => '{{ icon_id }}',
    'config' => [
      'sources' => [
        'icons/flat/*.svg',
      ],
    ],
  ];
  $this->pluginManagerIconPack
    ->processDefinition($definition, 'foo');
  $this->assertArrayHasKey('icons', $definition);
  $this->assertNotEmpty($definition['icons']);
  $this->assertCount(5, $definition['icons']);
  foreach ($definition['icons'] as $icon) {
    $this->assertInstanceOf(IconDefinitionInterface::class, $icon);
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.