From 6406dbaca83ee8e185e65b262e70c4a0782fb909 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Thu, 12 Aug 2021 17:48:55 +0000 Subject: [PATCH] Tests: Use correct comparison in `do_enclose()` tests. As per the PHP manual: > If the `component` parameter is omitted, an associative array is returned. > If the `component` parameter is specified, `parse_url()` returns a string (or an int, in the case of `PHP_URL_PORT`) instead of an array. If the requested component doesn't exist within the given URL, `null` will be returned. Reference: [https://www.php.net/manual/en/function.parse-url.php#refsect1-function.parse-url-returnvalues PHP Manual: parse_url(): Return Values] In this case, `parse_url()` is called with the `PHP_URL_PATH` as `$component`, but the returned value is subsequently checked against `false`. In other words, this condition would previously always result in `true` and would lead to `null` potentially being passed to the PHP native `pathinfo()` function which expects a string. On PHP 8.1, this would result in a test failure with a `pathinfo(): Passing null to parameter #1 ($path) of type string is deprecated` error. Reference: [https://www.php.net/manual/en/function.pathinfo.php PHP Manual: pathinfo()] Follow-up to [46175]. Props jrf. See #53635. git-svn-id: https://develop.svn.wordpress.org/trunk@51606 602fd350-edb4-49c9-b593-d223f7449a82 --- tests/phpunit/tests/functions/doEnclose.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/phpunit/tests/functions/doEnclose.php b/tests/phpunit/tests/functions/doEnclose.php index a271e24f73..30a8e73dac 100644 --- a/tests/phpunit/tests/functions/doEnclose.php +++ b/tests/phpunit/tests/functions/doEnclose.php @@ -280,7 +280,7 @@ class Tests_Functions_DoEnclose extends WP_UnitTestCase { $path = parse_url( $url, PHP_URL_PATH ); - if ( false !== $path ) { + if ( null !== $path ) { $extension = pathinfo( $path, PATHINFO_EXTENSION ); if ( isset( $fake_headers[ $extension ] ) ) { return $fake_headers[ $extension ];