public function TwigExtensionFiltersTest::providerTestAddFilter in Components! 3.x
Same name and namespace in other branches
- 8.2 tests/src/Unit/TwigExtensionFiltersTest.php \Drupal\Tests\components\Unit\TwigExtensionFiltersTest::providerTestAddFilter()
Data provider for testAddFilter().
See also
testAddFilter()
File
- tests/
src/ Unit/ TwigExtensionFiltersTest.php, line 299
Class
- TwigExtensionFiltersTest
- @coversDefaultClass \Drupal\components\Template\TwigExtension @group components
Namespace
Drupal\Tests\components\UnitCode
public function providerTestAddFilter() : array {
return [
'replacing a value' => [
'at' => 'element.#attributes.id',
'value' => 'new-value',
'expected' => [
'existing' => 'value',
'element' => [
'#type' => 'element',
'#attributes' => [
'class' => [
'old-value-1',
'old-value-2',
],
'id' => 'new-value',
],
],
],
],
'setting a new property on an existing array' => [
'at' => 'element.#attributes.placeholder',
'value' => 'new-value',
'expected' => [
'existing' => 'value',
'element' => [
'#type' => 'element',
'#attributes' => [
'class' => [
'old-value-1',
'old-value-2',
],
'id' => 'element',
'placeholder' => 'new-value',
],
],
],
],
'targeting an existing array with a string' => [
'at' => 'element.#attributes.class',
'value' => 'new-value',
'expected' => [
'existing' => 'value',
'element' => [
'#type' => 'element',
'#attributes' => [
'class' => [
'old-value-1',
'old-value-2',
'new-value',
],
'id' => 'element',
],
],
],
],
'targeting an existing array with an array' => [
'at' => 'element.#attributes.class',
'value' => [
'new-value-1',
'new-value-2',
],
'expected' => [
'existing' => 'value',
'element' => [
'#type' => 'element',
'#attributes' => [
'class' => [
'old-value-1',
'old-value-2',
'new-value-1',
'new-value-2',
],
'id' => 'element',
],
],
],
],
'targeting a non-existent parent property' => [
'at' => 'new-element.#attributes.class',
'value' => [
'new-value',
],
'expected' => [
'existing' => 'value',
'element' => [
'#type' => 'element',
'#attributes' => [
'class' => [
'old-value-1',
'old-value-2',
],
'id' => 'element',
],
],
'new-element' => [
'#attributes' => [
'class' => [
'new-value',
],
],
],
],
],
];
}