function DesignTokenPluginManagerTest::providerFlattenDefinitions

Data provider for ::testFlattenDefinitions().

Return value

\Generator The test cases.

File

core/tests/Drupal/Tests/Core/Theme/DesignToken/DesignTokenPluginManagerTest.php, line 286

Class

DesignTokenPluginManagerTest
Tests design token plugin manager.

Namespace

Drupal\Tests\Core\Theme\DesignToken

Code

public static function providerFlattenDefinitions() : iterable {
  $valuePlugins = static::getValuePlugins();
  yield 'Null value' => [
    NULL,
    [],
  ];
  $token = new DesignToken(provider: 'test', name: 'root name', value: $valuePlugins['number'], description: new translatableMarkup('my description'), type: 'number');
  yield 'One token' => [
    $token,
    [
      'root_name' => $token,
    ],
  ];
  yield 'One empty group' => [
    new DesignTokenGroup(provider: 'test', name: 'root name', description: new translatableMarkup('my description'), type: 'number'),
    [],
  ];
  $group = new DesignTokenGroup(provider: 'test', name: 'root name', description: new translatableMarkup('my description'), type: 'number');
  $token1 = new DesignToken(provider: 'test', name: 'my token 1', value: $valuePlugins['fontWeight'], parent: $group, description: new translatableMarkup('my description 1'), type: 'fontWeight');
  $token2 = new DesignToken(provider: 'test', name: 'my token 2', value: $valuePlugins['fontFamily'], parent: $group, description: new translatableMarkup('my description 2'), type: 'fontFamily');
  $group->setChildren([
    'my token 1' => $token1,
    'my token 2' => $token2,
  ]);
  yield 'One group with 2 tokens' => [
    $group,
    [
      'root_name.my_token_1' => $token1,
      'root_name.my_token_2' => $token2,
    ],
  ];
  $group1 = new DesignTokenGroup(provider: 'test', name: 'root name', description: new translatableMarkup('my description'), type: 'number');
  $group2 = new DesignTokenGroup(provider: 'test', name: 'sub group', parent: $group1, description: new translatableMarkup('my description 2'), type: 'number');
  $token1 = new DesignToken(provider: 'test', name: 'my token 1', value: $valuePlugins['fontWeight'], parent: $group1, description: new translatableMarkup('my description 1'), type: 'fontWeight');
  $token2 = new DesignToken(provider: 'test', name: 'my token 2', value: $valuePlugins['fontFamily'], parent: $group2, description: new translatableMarkup('my description 2'), type: 'fontFamily');
  $group1->setChildren([
    'my token 1' => $token1,
    'sub group' => $group2,
  ]);
  $group2->setChildren([
    'my token 2' => $token2,
  ]);
  yield 'One group with one token and one group with one token' => [
    $group1,
    [
      'root_name.my_token_1' => $token1,
      'root_name.sub_group.my_token_2' => $token2,
    ],
  ];
}

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