function IconDefinitionTest::testCreateIcon

Test the IconDefinition::createIcon method.

Attributes

#[DataProvider('providerCreateIcon')]

Parameters

array $data: The icon data.

File

core/tests/Drupal/Tests/Core/Theme/Icon/IconDefinitionTest.php, line 107

Class

IconDefinitionTest
Tests Drupal\Core\Theme\Icon\IconDefinition.

Namespace

Drupal\Tests\Core\Theme\Icon

Code

public function testCreateIcon(array $data) : void {
  $icon_data = $data['data'] ?? NULL;
  if ($icon_data) {
    $actual = IconDefinition::create($data['pack_id'], $data['icon_id'], $data['template'], $data['source'] ?? NULL, $data['group'] ?? NULL, $icon_data);
  }
  else {
    $actual = IconDefinition::create($data['pack_id'], $data['icon_id'], $data['template'], $data['source'] ?? NULL, $data['group'] ?? NULL);
  }
  $icon_full_id = IconDefinition::createIconId($data['pack_id'], $data['icon_id']);
  $this->assertEquals($icon_full_id, $actual->getId());
  $this->assertEquals(IconDefinition::humanize($data['icon_id']), $actual->getLabel());
  $this->assertEquals($data['icon_id'], $actual->getIconId());
  $this->assertEquals($data['pack_id'], $actual->getPackId());
  $this->assertEquals($data['template'], $actual->getTemplate());
  if (isset($data['source'])) {
    $this->assertEquals($data['source'], $actual->getSource());
  }
  if (isset($data['group'])) {
    $this->assertEquals($data['group'], $actual->getGroup());
  }
  if ($icon_data) {
    if (isset($icon_data['library'])) {
      $this->assertEquals($icon_data['library'], $actual->getLibrary());
      unset($icon_data['library']);
    }
    if (isset($icon_data['label'])) {
      $this->assertSame($icon_data['label'], $actual->getPackLabel());
      unset($icon_data['label']);
    }
    foreach ($icon_data as $key => $value) {
      $this->assertEquals($icon_data[$key], $actual->getData($key));
    }
  }
}

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