function DesignTokenConfigEntityKernelTest::testPreSave
Tests preSave.
File
-
core/
tests/ Drupal/ KernelTests/ Core/ Theme/ DesignToken/ DesignTokenConfigEntityKernelTest.php, line 55
Class
- DesignTokenConfigEntityKernelTest
- Tests values are from test module design_tokens_test.
Namespace
Drupal\KernelTests\Core\Theme\DesignTokenCode
public function testPreSave() : void {
$values = [
'id' => 'my_id',
'path' => 'foo.bar.baz',
'type' => 'dimension',
'scopes' => [
':root' => [
'value' => 12,
'unit' => 'px',
],
'.card' => [
'value' => 14,
'unit' => 'rem',
],
'%breadcrumb' => [
'value' => 14,
'unit' => 'rem',
],
],
];
$expected = [
':root' => [
'value' => 12,
'unit' => 'px',
],
'%card' => [
'value' => 14,
'unit' => 'rem',
],
'%breadcrumb' => [
'value' => 14,
'unit' => 'rem',
],
];
$expectedProcessed = [
':root' => new Dimension([
'value' => 12,
'unit' => 'px',
], 'dimension', [
'class' => Dimension::class,
'provider' => 'core',
'id' => 'dimension',
'label' => new TranslatableMarkup('Dimension'),
]),
'%card' => new Dimension([
'value' => 14,
'unit' => 'rem',
], 'dimension', [
'class' => Dimension::class,
'provider' => 'core',
'id' => 'dimension',
'label' => new TranslatableMarkup('Dimension'),
]),
'%breadcrumb' => new Dimension([
'value' => 14,
'unit' => 'rem',
], 'dimension', [
'class' => Dimension::class,
'provider' => 'core',
'id' => 'dimension',
'label' => new TranslatableMarkup('Dimension'),
]),
];
/** @var \Drupal\Core\Theme\Entity\DesignTokenInterface $config */
$config = $this->entityTypeManager
->getStorage('design_token')
->create($values);
$config->save();
$reflection = new \ReflectionClass($config);
$property = $reflection->getProperty('scopes');
// Ensure scopes had been converted for storage.
$this->assertEquals($expected, $property->getValue($config));
// Ensure conversion for storage does not impact export.
foreach ($expectedProcessed as $scope => $pluginInstance) {
$this->assertEquals($pluginInstance, $config->getScopes()
->get($scope));
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.