From 3196ab6db0fe198b0dbeda9992571b1867a268e2 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Sun, 30 Oct 2022 03:48:53 +0000 Subject: [PATCH] Tests: Prevent `wp_update_themes()` from running in `wp_ajax_update_theme()` tests. In the tests for updating a theme via Ajax, `wp_installing( true )` is called to prevent `wp_update_themes()` from running. This worked as expected in `test_update_theme()`, however, it was missed in `test_uppercase_theme_slug()`, which was accidentally relying on the `wp_installing()` status not being properly restored in the previous test. Now that the `wp_installing()` status was corrected in [54723], the latter test started throwing an error on PHP 8.2: {{{ 1) Tests_Ajax_wpAjaxUpdateTheme::test_uppercase_theme_slug http_build_query(): Passing null to parameter #2 ($numeric_prefix) of type string is deprecated /var/www/src/wp-includes/Requests/Transport/cURL.php:345 /var/www/src/wp-includes/Requests/Transport/cURL.php:135 /var/www/src/wp-includes/class-requests.php:381 /var/www/src/wp-includes/class-wp-http.php:395 /var/www/src/wp-includes/class-wp-http.php:615 /var/www/src/wp-includes/http.php:179 /var/www/src/wp-includes/update.php:719 /var/www/src/wp-admin/includes/ajax-actions.php:4292 /var/www/src/wp-includes/class-wp-hook.php:308 /var/www/src/wp-includes/class-wp-hook.php:332 /var/www/src/wp-includes/plugin.php:517 /var/www/tests/phpunit/includes/testcase-ajax.php:265 /var/www/tests/phpunit/tests/ajax/wpAjaxUpdateTheme.php:157 }}} Replicating the `wp_installing()` status changes in this test too resolves the error. Follow-up to [38168], [38710], [54722], [54723]. See #56793. git-svn-id: https://develop.svn.wordpress.org/trunk@54725 602fd350-edb4-49c9-b593-d223f7449a82 --- tests/phpunit/tests/ajax/wpAjaxUpdateTheme.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/phpunit/tests/ajax/wpAjaxUpdateTheme.php b/tests/phpunit/tests/ajax/wpAjaxUpdateTheme.php index c424d7f582de4..610cafb169e2b 100644 --- a/tests/phpunit/tests/ajax/wpAjaxUpdateTheme.php +++ b/tests/phpunit/tests/ajax/wpAjaxUpdateTheme.php @@ -152,6 +152,9 @@ public function test_uppercase_theme_slug() { $_POST['_ajax_nonce'] = wp_create_nonce( 'updates' ); $_POST['slug'] = 'camelCase'; + // Prevent wp_update_themes() from running. + wp_installing( true ); + // Make the request. try { $this->_handleAjax( 'update-theme' ); @@ -159,6 +162,8 @@ public function test_uppercase_theme_slug() { unset( $e ); } + wp_installing( false ); + // Get the response. $response = json_decode( $this->_last_response, true );