function DesignTokenPluginManagerTest::providerParseDtcg

Data provider for ::testParseDtcg().

Return value

\Generator The test cases.

File

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

Class

DesignTokenPluginManagerTest
Tests design token plugin manager.

Namespace

Drupal\Tests\Core\Theme\DesignToken

Code

public static function providerParseDtcg() : iterable {
  $valuePlugins = static::getValuePlugins();
  yield 'One token' => [
    [
      '$type' => 'number',
      '$value' => 5,
      '$description' => 'my description',
    ],
    new DesignToken(provider: 'test', name: 'root name', value: $valuePlugins['number'], description: new TranslatableMarkup('my description'), type: 'number'),
  ];
  yield 'One group' => [
    [
      '$type' => 'number',
      '$description' => 'my description',
    ],
    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' => [
    [
      '$type' => 'number',
      '$description' => 'my description',
      'my token 1' => [
        '$type' => 'fontWeight',
        '$value' => 600,
        '$description' => 'my description 1',
      ],
      'my token 2' => [
        '$type' => 'fontFamily',
        '$value' => 'Arial',
        '$description' => 'my description 2',
      ],
    ],
    $group,
  ];
  yield 'Invalid token' => [
    [
      '$type' => 'foo',
      '$value' => 5,
      '$description' => 'invalid token',
    ],
    NULL,
  ];
  yield 'One group with 2 tokens and one invalid' => [
    [
      '$type' => 'number',
      '$description' => 'my description',
      'my token 1' => [
        '$type' => 'fontWeight',
        '$value' => 600,
        '$description' => 'my description 1',
      ],
      'my token 2' => [
        '$type' => 'fontFamily',
        '$value' => 'Arial',
        '$description' => 'my description 2',
      ],
      'my token 3' => [
        '$type' => 'foo',
        '$value' => 5,
        '$description' => 'invalid token',
      ],
    ],
    $group,
  ];
  $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' => [
    [
      '$type' => 'number',
      '$description' => 'my description',
      'my token 1' => [
        '$type' => 'fontWeight',
        '$value' => 600,
        '$description' => 'my description 1',
      ],
      'sub group' => [
        '$description' => 'my description 2',
        'my token 2' => [
          '$type' => 'fontFamily',
          '$value' => 'Arial',
          '$description' => 'my description 2',
        ],
      ],
    ],
    $group1,
  ];
}

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