From fbdb75e10da2c0e3f2926a8cc3b0dd42acbbc830 Mon Sep 17 00:00:00 2001 From: catch Date: Tue, 21 Dec 2021 14:46:48 +0000 Subject: [PATCH] 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) --- .../field_ui/src/Element/FieldUiTable.php | 2 +- .../tests/src/Unit/FieldUiTableTest.php | 90 +++++++++++++++++++ 2 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 core/modules/field_ui/tests/src/Unit/FieldUiTableTest.php diff --git a/core/modules/field_ui/src/Element/FieldUiTable.php b/core/modules/field_ui/src/Element/FieldUiTable.php index 8dee40d7333..f921398d04e 100644 --- a/core/modules/field_ui/src/Element/FieldUiTable.php +++ b/core/modules/field_ui/src/Element/FieldUiTable.php @@ -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'])) { diff --git a/core/modules/field_ui/tests/src/Unit/FieldUiTableTest.php b/core/modules/field_ui/tests/src/Unit/FieldUiTableTest.php new file mode 100644 index 00000000000..ae8d8bff547 --- /dev/null +++ b/core/modules/field_ui/tests/src/Unit/FieldUiTableTest.php @@ -0,0 +1,90 @@ +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'], + ], + ]; + } + +}