From 30e825d0a4dafa6722149c4e2a3952689a87137d Mon Sep 17 00:00:00 2001 From: Paul Bearne Date: Mon, 27 Apr 2026 14:09:45 -0400 Subject: [PATCH 1/2] Add unit tests for got_url_rewrite() in src/wp-admin/includes/misc.php Reference: https://core.trac.wordpress.org/ticket/65135 --- .../admin/includes/misc/gotUrlRewrite.php | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 tests/phpunit/tests/admin/includes/misc/gotUrlRewrite.php diff --git a/tests/phpunit/tests/admin/includes/misc/gotUrlRewrite.php b/tests/phpunit/tests/admin/includes/misc/gotUrlRewrite.php new file mode 100644 index 0000000000000..6d8ce3ca26b52 --- /dev/null +++ b/tests/phpunit/tests/admin/includes/misc/gotUrlRewrite.php @@ -0,0 +1,121 @@ +assertSame( $expected, got_url_rewrite() ); + + // Cleanup. + remove_filter( 'got_rewrite', $mod_rewrite ? '__return_true' : '__return_false' ); + if ( null !== $filter_val ) { + remove_filter( 'got_url_rewrite', $filter_val ? '__return_true' : '__return_false' ); + } + $is_nginx = $prev_nginx; + $is_caddy = $prev_caddy; + } + + /** + * Data provider for test_got_url_rewrite. + * + * @return array[] { + * @type bool $expected The expected result. + * @type bool $mod_rewrite Whether mod_rewrite is supported. + * @type bool $is_nginx Whether server is nginx. + * @type bool $is_caddy Whether server is Caddy. + * @type bool $iis7_perm Whether IIS7 supports permalinks. + * @type bool|null $filter_val Optional filter value. + * } + */ + public function data_got_url_rewrite() { + return array( + 'All false' => array( + 'expected' => false, + 'mod_rewrite' => false, + 'is_nginx' => false, + 'is_caddy' => false, + 'iis7_perm' => false, + ), + 'Apache mod_rewrite supported' => array( + 'expected' => true, + 'mod_rewrite' => true, + 'is_nginx' => false, + 'is_caddy' => false, + 'iis7_perm' => false, + ), + 'Nginx supported' => array( + 'expected' => true, + 'mod_rewrite' => false, + 'is_nginx' => true, + 'is_caddy' => false, + 'iis7_perm' => false, + ), + 'Caddy supported' => array( + 'expected' => true, + 'mod_rewrite' => false, + 'is_nginx' => false, + 'is_caddy' => true, + 'iis7_perm' => false, + ), + 'Filter overrides to true' => array( + 'expected' => true, + 'mod_rewrite' => false, + 'is_nginx' => false, + 'is_caddy' => false, + 'iis7_perm' => false, + 'filter_val' => true, + ), + 'Filter overrides to false' => array( + 'expected' => false, + 'mod_rewrite' => true, + 'is_nginx' => true, + 'is_caddy' => true, + 'iis7_perm' => true, + 'filter_val' => false, + ), + ); + } +} From ec4b3ac68e152ef83a40262fae750774e35510c0 Mon Sep 17 00:00:00 2001 From: Paul Bearne Date: Mon, 27 Apr 2026 14:51:26 -0400 Subject: [PATCH 2/2] fixed white space --- .../tests/admin/includes/misc/gotUrlRewrite.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/phpunit/tests/admin/includes/misc/gotUrlRewrite.php b/tests/phpunit/tests/admin/includes/misc/gotUrlRewrite.php index 6d8ce3ca26b52..5c558fdf630d3 100644 --- a/tests/phpunit/tests/admin/includes/misc/gotUrlRewrite.php +++ b/tests/phpunit/tests/admin/includes/misc/gotUrlRewrite.php @@ -24,15 +24,15 @@ class Tests_got_url_rewrite extends WP_UnitTestCase { * @param bool $iis7_perm Whether IIS7 supports permalinks (simulated). * @param bool|null $filter_val Optional value for the 'got_url_rewrite' filter. */ - public function test_got_url_rewrite( $expected, $mod_rewrite, $is_nginx, $is_caddy, $iis7_perm, $filter_val = null ) { + public function test_got_url_rewrite( $expected, $mod_rewrite, $is_nginx_val, $is_caddy_val, $iis7_perm, $filter_val = null ) { global $is_nginx, $is_caddy; // Backup globals. $prev_nginx = $is_nginx; $prev_caddy = $is_caddy; - $is_nginx = $is_nginx; - $is_caddy = $is_caddy; + $is_nginx = $is_nginx_val; + $is_caddy = $is_caddy_val; // Mock got_mod_rewrite and iis7_supports_permalinks via filters if possible. // However, got_url_rewrite calls got_mod_rewrite() which calls apache_mod_loaded. @@ -72,7 +72,7 @@ public function test_got_url_rewrite( $expected, $mod_rewrite, $is_nginx, $is_ca */ public function data_got_url_rewrite() { return array( - 'All false' => array( + 'All false' => array( 'expected' => false, 'mod_rewrite' => false, 'is_nginx' => false, @@ -86,21 +86,21 @@ public function data_got_url_rewrite() { 'is_caddy' => false, 'iis7_perm' => false, ), - 'Nginx supported' => array( + 'Nginx supported' => array( 'expected' => true, 'mod_rewrite' => false, 'is_nginx' => true, 'is_caddy' => false, 'iis7_perm' => false, ), - 'Caddy supported' => array( + 'Caddy supported' => array( 'expected' => true, 'mod_rewrite' => false, 'is_nginx' => false, 'is_caddy' => true, 'iis7_perm' => false, ), - 'Filter overrides to true' => array( + 'Filter overrides to true' => array( 'expected' => true, 'mod_rewrite' => false, 'is_nginx' => false, @@ -108,7 +108,7 @@ public function data_got_url_rewrite() { 'iis7_perm' => false, 'filter_val' => true, ), - 'Filter overrides to false' => array( + 'Filter overrides to false' => array( 'expected' => false, 'mod_rewrite' => true, 'is_nginx' => true,