From 1b406341f5ee73544d24eb7a41667b24f2bf8c0d Mon Sep 17 00:00:00 2001
From: Florent Torregrosa <florent.torregrosa@gmail.com>
Date: Wed, 26 Jun 2024 15:54:02 +0300
Subject: [PATCH] Issue #3435188 by Grimreaper: Automated Drupal 11
 compatibility fixes for ui_patterns

---
 modules/ui_patterns_ds/ui_patterns_ds.info.yml     |  2 +-
 .../ui_patterns_field_group.info.yml               |  2 +-
 .../ui_patterns_layouts.info.yml                   |  2 +-
 .../UiPatternsLibraryOverviewTest.php              |  2 +-
 .../ui_patterns_library.info.yml                   |  2 +-
 .../ui_patterns_views/ui_patterns_views.info.yml   |  2 +-
 src/Template/TwigExtension.php                     | 14 ++++----------
 .../src/Unit/Definition/PatternDefinitionTest.php  |  8 ++++----
 .../Definition/PatternDefinitionVariantTest.php    |  2 +-
 tests/src/Unit/Template/TwigExtensionTest.php      |  4 ++--
 ui_patterns.info.yml                               |  2 +-
 11 files changed, 18 insertions(+), 24 deletions(-)

diff --git a/modules/ui_patterns_ds/ui_patterns_ds.info.yml b/modules/ui_patterns_ds/ui_patterns_ds.info.yml
index 2bbdfa216..dfbcdb450 100644
--- a/modules/ui_patterns_ds/ui_patterns_ds.info.yml
+++ b/modules/ui_patterns_ds/ui_patterns_ds.info.yml
@@ -1,7 +1,7 @@
 name: 'UI Patterns Display Suite'
 type: module
 description: 'Use patterns as Display Suite field templates. It also provides Display Suite pattern sources.'
-core_version_requirement: ^9 || ^10
+core_version_requirement: ^9 || ^10 || ^11
 package: 'User interface'
 dependencies:
   - ds:ds
diff --git a/modules/ui_patterns_field_group/ui_patterns_field_group.info.yml b/modules/ui_patterns_field_group/ui_patterns_field_group.info.yml
index d2a376ebd..4825bca49 100644
--- a/modules/ui_patterns_field_group/ui_patterns_field_group.info.yml
+++ b/modules/ui_patterns_field_group/ui_patterns_field_group.info.yml
@@ -1,7 +1,7 @@
 name: 'UI Patterns Field Group'
 type: module
 description: 'Use patterns as field groups templates.'
-core_version_requirement: ^9 || ^10
+core_version_requirement: ^9 || ^10 || ^11
 package: 'User interface'
 dependencies:
   - field_group:field_group
diff --git a/modules/ui_patterns_layouts/ui_patterns_layouts.info.yml b/modules/ui_patterns_layouts/ui_patterns_layouts.info.yml
index 8cd17ba86..1a18f8262 100644
--- a/modules/ui_patterns_layouts/ui_patterns_layouts.info.yml
+++ b/modules/ui_patterns_layouts/ui_patterns_layouts.info.yml
@@ -1,7 +1,7 @@
 name: 'UI Patterns Layouts'
 type: module
 description: 'Use patterns as layouts via the Layout Discovery module.'
-core_version_requirement: ^9 || ^10
+core_version_requirement: ^9 || ^10 || ^11
 package: 'User interface'
 dependencies:
   - drupal:layout_discovery
diff --git a/modules/ui_patterns_library/tests/src/FunctionalJavascript/UiPatternsLibraryOverviewTest.php b/modules/ui_patterns_library/tests/src/FunctionalJavascript/UiPatternsLibraryOverviewTest.php
index a0abd0814..581063db5 100644
--- a/modules/ui_patterns_library/tests/src/FunctionalJavascript/UiPatternsLibraryOverviewTest.php
+++ b/modules/ui_patterns_library/tests/src/FunctionalJavascript/UiPatternsLibraryOverviewTest.php
@@ -18,7 +18,7 @@ class UiPatternsLibraryOverviewTest extends WebDriverTestBase {
    *
    * Currently no interface to rely on.
    *
-   * @var \Drupal\Core\Extension\ModuleExtensionList
+   * @var \Drupal\Core\Extension\ThemeExtensionList
    */
   protected $moduleExtensionList;
 
diff --git a/modules/ui_patterns_library/ui_patterns_library.info.yml b/modules/ui_patterns_library/ui_patterns_library.info.yml
index 627d19d4c..b561a7328 100644
--- a/modules/ui_patterns_library/ui_patterns_library.info.yml
+++ b/modules/ui_patterns_library/ui_patterns_library.info.yml
@@ -1,7 +1,7 @@
 name: 'UI Patterns Library'
 type: module
 description: 'Exposed patterns in you modules and themes and display them in a pattern library page.'
-core_version_requirement: ^9 || ^10
+core_version_requirement: ^9 || ^10 || ^11
 package: 'User interface'
 dependencies:
   - ui_patterns:ui_patterns
diff --git a/modules/ui_patterns_views/ui_patterns_views.info.yml b/modules/ui_patterns_views/ui_patterns_views.info.yml
index 957fc8555..4126e5157 100644
--- a/modules/ui_patterns_views/ui_patterns_views.info.yml
+++ b/modules/ui_patterns_views/ui_patterns_views.info.yml
@@ -1,7 +1,7 @@
 name: 'UI Patterns Views'
 type: module
 description: 'Use patterns as Views templates.'
-core_version_requirement: ^9 || ^10
+core_version_requirement: ^9 || ^10 || ^11
 package: 'User interface'
 dependencies:
   - drupal:views
diff --git a/src/Template/TwigExtension.php b/src/Template/TwigExtension.php
index 09bd26674..6479fe395 100644
--- a/src/Template/TwigExtension.php
+++ b/src/Template/TwigExtension.php
@@ -27,14 +27,8 @@ class TwigExtension extends AbstractExtension {
    */
   public function getFunctions() {
     return [
-      new TwigFunction('pattern', [
-        $this,
-        'renderPattern',
-      ]),
-      new TwigFunction('pattern_preview', [
-        $this,
-        'renderPatternPreview',
-      ]),
+      new TwigFunction('pattern', $this->renderPattern(...)),
+      new TwigFunction('pattern_preview', $this->renderPatternPreview(...)),
     ];
   }
 
@@ -43,8 +37,8 @@ class TwigExtension extends AbstractExtension {
    */
   public function getFilters() {
     return [
-      new TwigFilter('add_class', [$this, 'addClass']),
-      new TwigFilter('set_attribute', [$this, 'setAttribute']),
+      new TwigFilter('add_class', $this->addClass(...)),
+      new TwigFilter('set_attribute', $this->setAttribute(...)),
     ];
   }
 
diff --git a/tests/src/Unit/Definition/PatternDefinitionTest.php b/tests/src/Unit/Definition/PatternDefinitionTest.php
index 66fb0459b..9d595df43 100644
--- a/tests/src/Unit/Definition/PatternDefinitionTest.php
+++ b/tests/src/Unit/Definition/PatternDefinitionTest.php
@@ -45,7 +45,7 @@ class PatternDefinitionTest extends UiPatternsTestBase {
    * @return array
    *   Data.
    */
-  public function definitionGettersProvider() {
+  public static function definitionGettersProvider() {
     return [
       ['getProvider', 'provider', 'my_module'],
       ['id', 'id', 'pattern_id'],
@@ -176,7 +176,7 @@ class PatternDefinitionTest extends UiPatternsTestBase {
    * @return array
    *   Data.
    */
-  public function hasUseProvider(): array {
+  public static function hasUseProvider(): array {
     return [
       'pattern_without_use' => [
         [
@@ -267,7 +267,7 @@ class PatternDefinitionTest extends UiPatternsTestBase {
    * @return array
    *   Data.
    */
-  public function definitionGetLinksProvider(): array {
+  public static function definitionGetLinksProvider(): array {
     return [
       [
         [
@@ -332,7 +332,7 @@ class PatternDefinitionTest extends UiPatternsTestBase {
    * @return array
    *   Data.
    */
-  public function definitionGetRenderLinksProvider(): array {
+  public static function definitionGetRenderLinksProvider(): array {
     return [
       [
         [
diff --git a/tests/src/Unit/Definition/PatternDefinitionVariantTest.php b/tests/src/Unit/Definition/PatternDefinitionVariantTest.php
index 017d26b8a..9683221c7 100644
--- a/tests/src/Unit/Definition/PatternDefinitionVariantTest.php
+++ b/tests/src/Unit/Definition/PatternDefinitionVariantTest.php
@@ -93,7 +93,7 @@ class PatternDefinitionVariantTest extends UiPatternsTestBase {
    * @return array
    *   Data.
    */
-  public function definitionGettersProvider(): array {
+  public static function definitionGettersProvider(): array {
     return [
       ['getName', 'name', 'Variant name'],
       ['getLabel', 'label', 'Variant label'],
diff --git a/tests/src/Unit/Template/TwigExtensionTest.php b/tests/src/Unit/Template/TwigExtensionTest.php
index c692735a7..295572ac4 100644
--- a/tests/src/Unit/Template/TwigExtensionTest.php
+++ b/tests/src/Unit/Template/TwigExtensionTest.php
@@ -49,7 +49,7 @@ class TwigExtensionTest extends UnitTestCase {
    * @return \Iterator
    *   An iterator.
    */
-  public function providerTestTwigAddClass(): \Iterator {
+  public static function providerTestTwigAddClass(): \Iterator {
     yield 'should add a class on element' => [
       ['#type' => 'container'],
       'my-class',
@@ -136,7 +136,7 @@ class TwigExtensionTest extends UnitTestCase {
    * @return \Iterator
    *   An iterator.
    */
-  public function providerTestTwigSetAttribute(): \Iterator {
+  public static function providerTestTwigSetAttribute(): \Iterator {
     yield 'should add attributes on element' => [
       ['#theme' => 'image'],
       'title',
diff --git a/ui_patterns.info.yml b/ui_patterns.info.yml
index cf1fbdb00..d3d0db0dc 100644
--- a/ui_patterns.info.yml
+++ b/ui_patterns.info.yml
@@ -1,5 +1,5 @@
 name: 'UI Patterns'
 type: module
 description: 'UI patterns.'
-core_version_requirement: ^9 || ^10
+core_version_requirement: ^9 || ^10 || ^11
 package: 'User interface'
-- 
GitLab