From 833e599d18d06f8756792b45e9f403f77058d364 Mon Sep 17 00:00:00 2001 From: quietone <quietone@2572884.no-reply.drupal.org> Date: Thu, 24 Oct 2024 14:14:01 +1300 Subject: [PATCH] Issue #2479449 by sudiptadas19, smustgrave, akashkumar07, rithesh bk, rpayanm, pradhumanjain2311, tstoeckler, mrinalini9, tatisilva, larowlan, andypost, dawehner, xjm, yesct: contact_menu_local_tasks_alter() should check whether ['tabs'][0] is set --- core/modules/contact/contact.module | 2 +- .../contact/tests/src/Unit/ContactTest.php | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 core/modules/contact/tests/src/Unit/ContactTest.php diff --git a/core/modules/contact/contact.module b/core/modules/contact/contact.module index 5f0f18c2ad29..007492e4cfbe 100644 --- a/core/modules/contact/contact.module +++ b/core/modules/contact/contact.module @@ -98,7 +98,7 @@ function contact_entity_extra_field_info() { * email address configured. */ function contact_menu_local_tasks_alter(&$data, $route_name) { - if ($route_name == 'entity.user.canonical') { + if ($route_name == 'entity.user.canonical' && isset($data['tabs'][0])) { foreach ($data['tabs'][0] as $href => $tab_data) { if ($href == 'entity.user.contact_form') { $link_params = $tab_data['#link']['url']->getRouteParameters(); diff --git a/core/modules/contact/tests/src/Unit/ContactTest.php b/core/modules/contact/tests/src/Unit/ContactTest.php new file mode 100644 index 000000000000..b1abf037238f --- /dev/null +++ b/core/modules/contact/tests/src/Unit/ContactTest.php @@ -0,0 +1,24 @@ +<?php + +declare(strict_types=1); + +namespace Drupal\Tests\contact\Unit; + +use Drupal\Tests\UnitTestCase; + +/** + * @group contact + */ +class ContactTest extends UnitTestCase { + + /** + * Test contact_menu_local_tasks_alter doesn't throw warnings. + */ + public function testLocalTasksAlter(): void { + require_once $this->root . '/core/modules/contact/contact.module'; + $data = []; + \contact_menu_local_tasks_alter($data, 'entity.user.canonical'); + $this->assertTrue(TRUE, 'No warning thrown'); + } + +} -- GitLab