class GroupTest
Tests design token group object.
Attributes
#[CoversClass(DesignTokenGroup::class)]
#[Group('design_token')]
Hierarchy
- class \Drupal\Tests\UnitTestCase uses \Drupal\Tests\DrupalTestCaseTrait, \Drupal\Tests\PhpUnitCompatibilityTrait, \Prophecy\PhpUnit\ProphecyTrait, \Drupal\TestTools\Extension\DeprecationBridge\ExpectDeprecationTrait, \Drupal\Tests\RandomGeneratorTrait extends \PHPUnit\Framework\TestCase
- class \Drupal\Tests\Core\Theme\DesignToken\GroupTest extends \Drupal\Tests\UnitTestCase
Expanded class hierarchy of GroupTest
File
-
core/
tests/ Drupal/ Tests/ Core/ Theme/ DesignToken/ GroupTest.php, line 21
Namespace
Drupal\Tests\Core\Theme\DesignTokenView source
class GroupTest extends UnitTestCase {
/**
* Tests getType.
*/
public function testGetType(?string $type, ?DesignTokenGroup $parent, ?string $expectedType) : void {
$group = new DesignTokenGroup(provider: 'test', name: 'test', parent: $parent, type: $type);
$this->assertEquals($expectedType, $group->getType());
}
/**
* Data provider for ::testGetType().
*
* @return \Generator
* The test cases.
*/
public static function providerGetType() : iterable {
yield 'No type' => [
NULL,
NULL,
NULL,
];
yield 'With type' => [
'myType',
NULL,
'myType',
];
yield 'From parent' => [
NULL,
new DesignTokenGroup('test', 'test2', type: 'parentType'),
'parentType',
];
yield 'With type and parent' => [
'myType',
new DesignTokenGroup('test', 'test2', type: 'parentType'),
'myType',
];
}
/**
* Tests getPath.
*/
public function testGetPath(string $name, ?DesignTokenGroup $parent, ?string $expectedType) : void {
$group = new DesignTokenGroup(provider: 'test', name: $name, parent: $parent);
$this->assertEquals($expectedType, $group->getPath());
}
/**
* Data provider for ::testGetPath().
*
* @return \Generator
* The test cases.
*/
public static function providerGetPath() : iterable {
yield 'Root' => [
'myPath',
NULL,
'myPath',
];
yield 'With parent' => [
'myPath',
new DesignTokenGroup('test', 'parentName'),
'parentName.myPath',
];
yield 'With parent with parent' => [
'myPath',
new DesignTokenGroup('test', 'parentName', parent: new DesignTokenGroup('test', 'parentName2')),
'parentName2.parentName.myPath',
];
}
/**
* Tests toDtcg.
*/
public function testToDtcg(?string $type, ?string $description, array $children, array $expected) : void {
$container = new ContainerBuilder();
$container->set('string_translation', $this->getStringTranslationStub());
\Drupal::setContainer($container);
// phpcs:ignore Drupal.Semantics.FunctionT.NotLiteralString
$description = $description ? new TranslatableMarkup($description) : NULL;
$group = new DesignTokenGroup(provider: 'test', name: 'test', children: $children, description: $description, type: $type);
$this->assertEquals($expected, $group->toDtcg());
}
/**
* Data provider for ::testToDtcg().
*
* @return \Generator
* The test cases.
*/
public static function providerToDtcg() : iterable {
yield 'Empty' => [
NULL,
NULL,
[],
[],
];
yield 'With type' => [
'myType',
NULL,
[],
[
'$type' => 'myType',
],
];
yield 'With description' => [
NULL,
'my description',
[],
[
'$description' => 'my description',
],
];
yield 'With children' => [
NULL,
NULL,
[
'group' => new DesignTokenGroup(provider: 'test', name: 'group', children: [
'number' => new DesignToken(provider: 'test', name: 'number', value: new Number([
'value' => 5,
], 'number', []), type: 'number'),
], description: new TranslatableMarkup('my description')),
'my-font-family' => new DesignToken(provider: 'test', name: 'my-font-family', value: new FontFamily([
'value' => 'Arial',
], 'fontFamily', []), type: 'fontFamily'),
],
[
'group' => [
'$description' => 'my description',
'number' => [
'$type' => 'number',
'$value' => 5,
],
],
'my-font-family' => [
'$type' => 'fontFamily',
'$value' => [
'Arial',
],
],
],
];
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.