
| Current Path : /var/www/html/12park/web/modules/contrib/webform/tests/src/Unit/Utility/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html/12park/web/modules/contrib/webform/tests/src/Unit/Utility/WebformFormHelperTest.php |
<?php
namespace Drupal\Tests\webform\Unit\Utility;
use Drupal\Tests\UnitTestCase;
use Drupal\webform\Utility\WebformFormHelper;
/**
* Tests webform helper utility.
*
* @group webform
*
* @coversDefaultClass \Drupal\webform\Utility\WebformFormHelper
*/
class WebformFormHelperTest extends UnitTestCase {
/**
* Tests WebformFormHelper::cleanupFormStateValues().
*
* @param array $values
* The array to run through WebformFormHelper::cleanupFormStateValues().
* @param array $keys
* (optional) An array of custom keys to be removed.
* @param string $expected
* The expected result from calling the function.
*
* @see WebformFormHelper::cleanupFormStateValues()
*
* @dataProvider providerCleanupFormStateValues
*/
public function testCleanupFormStateValues(array $values, array $keys, $expected) {
$result = WebformFormHelper::cleanupFormStateValues($values, $keys);
$this->assertEquals($expected, $result);
}
/**
* Data provider for testCleanupFormStateValues().
*
* @see testCleanupFormStateValues()
*/
public function providerCleanupFormStateValues() {
$tests[] = [['key' => 'value'], [], ['key' => 'value']];
$tests[] = [['key' => 'value', 'form_token' => 'ignored'], [], ['key' => 'value']];
$tests[] = [['key' => 'value', 'form_token' => 'ignored'], ['key'], []];
return $tests;
}
/**
* Tests WebformFormHelper::flattenElements().
*
* @see WebformFormHelper::flattenElements()
*/
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',
],
],
]);
}
}