From 228f46a34566148aa17db333972e930a36e39912 Mon Sep 17 00:00:00 2001
From: jrfnl <jrfnl@users.noreply.github.com>
Date: Wed, 11 Aug 2021 03:15:49 +0200
Subject: [PATCH] PHP 8.1: Tests_Functions_DoEnclose: fix bug in test

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.

Ref: https://www.php.net/manual/en/function.parse-url.php#refsect1-function.parse-url-returnvalues

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 `true` and would lead to `null`, potentially, being passed to the PHP native `pathinfo()` function which expects a string.

On PHP 8.1, this will result in a test failure with a `pathinfo(): Passing null to parameter #1 ($path) of type string is deprecated` error.

Ref: https://www.php.net/manual/en/function.pathinfo.php
---
 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 ];
-- 
2.32.0.windows.2

