WordPress.org

Make WordPress Core

Ticket #38457: 38457.diff

File 38457.diff, 3.4 KB (added by pento, 3 years ago)
  • tests/phpunit/includes/bootstrap.php

     
    1616 * Globalize some WordPress variables, because PHPUnit loads this file inside a function
    1717 * See: https://github.com/sebastianbergmann/phpunit/issues/325
    1818 */
    19 global $wpdb, $current_site, $current_blog, $wp_rewrite, $shortcode_tags, $wp, $phpmailer;
     19global $wpdb, $current_site, $current_blog, $wp_rewrite, $shortcode_tags, $wp, $phpmailer, $wp_theme_directories;
    2020
    2121if ( !is_readable( $config_file_path ) ) {
    2222        die( "ERROR: wp-tests-config.php is missing! Please use wp-tests-config-sample.php to create a config file.\n" );
     
    5353require_once( dirname( __FILE__ ) . '/mock-mailer.php' );
    5454$phpmailer = new MockPHPMailer();
    5555
    56 // Add a symlink to the empty default theme to the themes directory, so it can be used for the tests.
    57 _symlink_default_theme();
     56$wp_theme_directories = array( DIR_TESTDATA . '/themedir1' );
    5857
    5958system( WP_PHP_BINARY . ' ' . escapeshellarg( dirname( __FILE__ ) . '/install.php' ) . ' ' . escapeshellarg( $config_file_path ) . ' ' . $multisite );
    6059
  • tests/phpunit/includes/functions.php

     
    161161
    162162        return $uploads;
    163163}
    164 
    165 /**
    166  * Helper functions to link and unlink the empty default theme into the WordPress install
    167  */
    168 function _symlink_default_theme() {
    169         _unlink_default_theme();
    170         symlink( DIR_TESTDATA . '/themedir1/default', ABSPATH . '/wp-content/themes/default' );
    171 }
    172 
    173 function _unlink_default_theme() {
    174         if ( file_exists( ABSPATH . '/wp-content/themes/default' ) ) {
    175                 unlink( ABSPATH . '/wp-content/themes/default' );
    176         }
    177 }
    178 // Only unlink when we're in the main process.
    179 if ( 'phpunit' === substr( $GLOBALS['argv'][0], -7 ) ) {
    180         register_shutdown_function( '_unlink_default_theme' );
    181 }
  • tests/phpunit/includes/install.php

     
    99$config_file_path = $argv[1];
    1010$multisite = ! empty( $argv[2] );
    1111
     12global $wp_theme_directories;
     13$wp_theme_directories = array( dirname( __FILE__ ) . '/../data/themedir1' );
     14
    1215define( 'WP_INSTALLING', true );
    1316require_once $config_file_path;
    1417require_once dirname( __FILE__ ) . '/functions.php';
  • tests/phpunit/tests/theme.php

     
    1414        );
    1515
    1616        function setUp() {
     17                global $wp_theme_directories;
     18
    1719                parent::setUp();
     20
     21                $backup_wp_theme_directories = $wp_theme_directories;
     22                $wp_theme_directories = array( WP_CONTENT_DIR . '/themes' );
     23
    1824                add_filter( 'extra_theme_headers', array( $this, '_theme_data_extra_headers' ) );
    1925                wp_clean_themes_cache();
    2026                unset( $GLOBALS['wp_themes'] );
    2127        }
    2228
    2329        function tearDown() {
     30                global $wp_theme_directories;
     31
     32                $wp_theme_directories = $this->wp_theme_directories;
     33
    2434                remove_filter( 'extra_theme_headers', array( $this, '_theme_data_extra_headers' ) );
    2535                wp_clean_themes_cache();
    2636                unset( $GLOBALS['wp_themes'] );
     37
    2738                parent::tearDown();
    2839        }
    2940