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..5c558fdf630d3 --- /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, + ), + ); + } +}