public function WebformFormHelperTest::testFlattenElements in Webform 8.5
Same name and namespace in other branches
- 6.x tests/src/Unit/Utility/WebformFormHelperTest.php \Drupal\Tests\webform\Unit\Utility\WebformFormHelperTest::testFlattenElements()
Tests WebformFormHelper::flattenElements().
See also
WebformFormHelper::flattenElements()
File
- tests/
src/ Unit/ Utility/ WebformFormHelperTest.php, line 53
Class
- WebformFormHelperTest
- Tests webform helper utility.
Namespace
Drupal\Tests\webform\Unit\UtilityCode
public function testFlattenElements() {
$elements = [
'one' => [
'#title' => 'one',
'two' => [
'#title' => 'two',
],
],
];
$flattened_elements = WebformFormHelper::flattenElements($elements);
// Check flattened elements.
$this
->assertEquals($flattened_elements, [
'one' => [
'#title' => 'one',
'two' => [
'#title' => 'two',
],
],
'two' => [
'#title' => 'two',
],
]);
// Check flattened elements references.
$elements['one']['#title'] .= '-UPDATED';
$elements['one']['two']['#title'] .= '-UPDATED';
$elements['one']['two']['#type'] = 'textfield';
$this
->assertEquals($flattened_elements, [
'one' => [
'#title' => 'one-UPDATED',
'two' => [
'#title' => 'two-UPDATED',
'#type' => 'textfield',
],
],
'two' => [
'#title' => 'two-UPDATED',
'#type' => 'textfield',
],
]);
// Check flattened elements with duplicate keys.
$elements = [
'one' => [
'#title' => 'one',
'two' => [
'#title' => 'two-FIRST',
],
],
'two' => [
'#title' => 'two-SECOND',
],
];
$flattened_elements = WebformFormHelper::flattenElements($elements);
$this
->assertEquals($flattened_elements, [
'one' => [
'#title' => 'one',
'two' => [
'#title' => 'two-FIRST',
],
],
'two' => [
[
'#title' => 'two-FIRST',
],
[
'#title' => 'two-SECOND',
],
],
]);
// Check flattened elements references with duplicate keys.
$elements['one']['#title'] .= '-UPDATED';
$elements['one']['two']['#title'] .= '-UPDATED';
$elements['one']['two']['#type'] = 'textfield';
$this
->assertEquals($flattened_elements, [
'one' => [
'#title' => 'one-UPDATED',
'two' => [
'#title' => 'two-FIRST-UPDATED',
'#type' => 'textfield',
],
],
'two' => [
[
'#title' => 'two-FIRST-UPDATED',
'#type' => 'textfield',
],
[
'#title' => 'two-SECOND',
],
],
]);
}