Make WordPress Core


Ignore:
Timestamp:
09/30/2016 03:15:36 AM (8 years ago)
Author:
boonebgorges
Message:

Tests: Reset post-related globals after each test.

Globals like $pages were leaking between tests, resulting in various
bits of weirdness.

Globals will kill WordPress. Globals are killing WordPress.

See #38196.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/includes/testcase.php

    r38571 r38678  
    143143     */
    144144    function tearDown() {
    145         global $wpdb, $wp_query, $wp, $post;
     145        global $wpdb, $wp_query, $wp;
    146146        $wpdb->query( 'ROLLBACK' );
    147147        if ( is_multisite() ) {
     
    152152        $wp_query = new WP_Query();
    153153        $wp = new WP();
    154         $post = null;
     154
     155        // Reset globals related to the post loop and `setup_postdata()`.
     156        $post_globals = array( 'post', 'id', 'authordata', 'currentday', 'currentmonth', 'page', 'pages', 'multipage', 'more', 'numpages' );
     157        foreach ( $post_globals as $global ) {
     158            $GLOBALS[ $global ] = null;
     159        }
     160
    155161        remove_theme_support( 'html5' );
    156162        remove_filter( 'query', array( $this, '_create_temporary_tables' ) );
Note: See TracChangeset for help on using the changeset viewer.