Issue #3064890 by danflanagan8, mpp, mottihoresh, scott_euser, peonboyos, Kristen Pol, joshmiller: Notice: Undefined index: name in Drupal\field_ui\Element\FieldUiTable::reduceOrder() (line 228 of /var/www/html/docroot/core/modules/field_ui/src/Element/FieldUiTable.php)

merge-requests/1560/merge
catch 2021-12-21 14:46:48 +00:00
parent 45e75ce3f5
commit fbdb75e10d
2 changed files with 91 additions and 1 deletions

View File

@ -225,7 +225,7 @@ class FieldUiTable extends Table {
*/
public static function reduceOrder($array, $a) {
$array = !$array ? [] : $array;
if ($a['name']) {
if (!empty($a['name'])) {
$array[] = $a['name'];
}
if (!empty($a['children'])) {

View File

@ -0,0 +1,90 @@
<?php
namespace Drupal\Tests\field_ui\Unit;
use Drupal\Tests\UnitTestCase;
/**
* @coversDefaultClass \Drupal\field_ui\Element\FieldUiTable
*
* @group field_ui
*/
class FieldUiTableTest extends UnitTestCase {
/**
* @covers ::reduceOrder
*
* @dataProvider providerTestReduceOrder
*/
public function testReduceOrder($array, $expected) {
$this->assertSame($expected, array_reduce($array, ['Drupal\field_ui\Element\FieldUiTable', 'reduceOrder']));
}
/**
* Provides test data for testReduceOrder().
*/
public function providerTestReduceOrder() {
return [
'Flat' => [
'array' => [
[
'name' => 'foo',
],
[
'name' => 'bar',
],
[
'name' => 'baz',
],
],
'expected' => ['foo', 'bar', 'baz'],
],
'Nested' => [
'array' => [
[
'name' => 'foo',
'children' => [
[
'name' => 'bar',
'weight' => 0,
],
[
'name' => 'baz',
'weight' => -1,
],
],
],
[
'name' => 'biz',
],
],
'expected' => ['foo', 'baz', 'bar', 'biz'],
],
'Nested no name key' => [
'array' => [
[
'children' => [
[
'name' => 'foo',
'weight' => -1,
],
[
'name' => 'bar',
'weight' => 1,
],
[
'name' => 'baz',
'weight' => 0,
],
],
],
[
'name' => 'biz',
],
],
'expected' => ['foo', 'baz', 'bar', 'biz'],
],
];
}
}