From f66aaa1afa24859762386cea20c8a607cd282556 Mon Sep 17 00:00:00 2001
From: jrfnl <jrfnl@users.noreply.github.com>
Date: Fri, 19 Jul 2019 16:13:24 +0200
Subject: [PATCH] Modernize wp_list_widgets() and associated unit tests

... and improve the readability of the code.
---
 src/wp-admin/includes/widgets.php | 11 +++++------
 tests/phpunit/tests/widgets.php   | 28 +++++++++++++---------------
 2 files changed, 18 insertions(+), 21 deletions(-)

diff --git a/src/wp-admin/includes/widgets.php b/src/wp-admin/includes/widgets.php
index f3ad9fd303..a1ba889169 100644
--- a/src/wp-admin/includes/widgets.php
+++ b/src/wp-admin/includes/widgets.php
@@ -51,13 +51,12 @@ function wp_list_widgets() {
 			}
 		}
 
-		$args = wp_list_widget_controls_dynamic_sidebar(
-			array(
-				0 => $args,
-				1 => $widget['params'][0],
-			)
+		$control_args = array(
+			0 => $args,
+			1 => $widget['params'][0],
 		);
-		call_user_func_array( 'wp_widget_control', $args );
+		$sidebar_args = wp_list_widget_controls_dynamic_sidebar( $control_args );
+		wp_widget_control( ...$sidebar_args );
 	}
 }
 
diff --git a/tests/phpunit/tests/widgets.php b/tests/phpunit/tests/widgets.php
index 4d404100f6..7b040cfe3d 100644
--- a/tests/phpunit/tests/widgets.php
+++ b/tests/phpunit/tests/widgets.php
@@ -620,21 +620,20 @@ class Tests_Widgets extends WP_UnitTestCase {
 
 		wp_widgets_init();
 		require_once ABSPATH . '/wp-admin/includes/widgets.php';
-		$widget_id = 'search-2';
-		$widget    = $wp_registered_widgets[ $widget_id ];
-		$params    = array(
+		$widget_id    = 'search-2';
+		$widget       = $wp_registered_widgets[ $widget_id ];
+		$params       = array(
 			'widget_id'   => $widget['id'],
 			'widget_name' => $widget['name'],
 		);
-		$args      = wp_list_widget_controls_dynamic_sidebar(
-			array(
-				0 => $params,
-				1 => $widget['params'][0],
-			)
+		$control_args = array(
+			0 => $params,
+			1 => $widget['params'][0],
 		);
+		$sidebar_args = wp_list_widget_controls_dynamic_sidebar( $control_args );
 
 		ob_start();
-		call_user_func_array( 'wp_widget_control', $args );
+		wp_widget_control( ...$sidebar_args );
 		$control = ob_get_clean();
 		$this->assertNotEmpty( $control );
 
@@ -659,15 +658,14 @@ class Tests_Widgets extends WP_UnitTestCase {
 			'after_widget_content'  => '<!-- after_widget_content -->',
 		);
 		$params          = array_merge( $params, $param_overrides );
-		$args            = wp_list_widget_controls_dynamic_sidebar(
-			array(
-				0 => $params,
-				1 => $widget['params'][0],
-			)
+		$control_args    = array(
+			0 => $params,
+			1 => $widget['params'][0],
 		);
+		$sidebar_args    = wp_list_widget_controls_dynamic_sidebar( $control_args );
 
 		ob_start();
-		call_user_func_array( 'wp_widget_control', $args );
+		wp_widget_control( ...$sidebar_args );
 		$control = ob_get_clean();
 		$this->assertNotEmpty( $control );
 		$this->assertNotContains( '<form method="post">', $control );
-- 
2.21.0.windows.1

