WordPress.org

Make WordPress Core


Ignore:
Timestamp:
09/30/2016 03:15:36 AM (4 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/tests/includes/helpers.php

    r37071 r38678  
    213213        wp_die( new WP_Error( 'test', 'test' ) );
    214214    }
     215
     216    /**
     217     * This test is just a setup for the one that follows.
     218     *
     219     * @ticket 38196
     220     */
     221    public function test_setup_postdata_globals_should_be_reset_on_teardown__setup() {
     222        $post = self::factory()->post->create_and_get();
     223        $GLOBALS['wp_query'] = new WP_Query();
     224        $GLOBALS['wp_query']->setup_postdata( $post );
     225        $this->assertNotEmpty( $post );
     226    }
     227
     228    /**
     229     * @ticket 38196
     230     */
     231    public function test_setup_postdata_globals_should_be_reset_on_teardown() {
     232        $globals = array( 'post', 'id', 'authordata', 'currentday', 'currentmonth', 'page', 'pages', 'multipage', 'more', 'numpages' );
     233
     234        foreach ( $globals as $global ) {
     235            $this->assertTrue( ! isset( $GLOBALS[ $global ] ), $global );
     236        }
     237    }
    215238}
Note: See TracChangeset for help on using the changeset viewer.