WP_UnitTestCase::go_to()
tried its best to clean up global space, but ultimately fell short. Because it was blowing away WP
every time it was called, it was dropping all the query vars that were registered for custom taxonomies and custom post types (ouch).
Introduces `_cleanup_query_vars()`. This is a prerequisite for the unit tests on #20767. All unit tests pass with this change. See #20767. Fixes #25818. git-svn-id: https://develop.svn.wordpress.org/trunk@26006 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
2f38d2efc6
commit
5321bc4957
@ -605,7 +605,7 @@ class WP {
|
||||
$this->query_posts();
|
||||
$this->handle_404();
|
||||
$this->register_globals();
|
||||
|
||||
|
||||
/**
|
||||
* Fires once the WordPress environment has been set up.
|
||||
*
|
||||
|
@ -186,14 +186,7 @@ class WP_UnitTestCase extends PHPUnit_Framework_TestCase {
|
||||
$GLOBALS['wp_the_query'] = new WP_Query();
|
||||
$GLOBALS['wp_query'] = $GLOBALS['wp_the_query'];
|
||||
$GLOBALS['wp'] = new WP();
|
||||
|
||||
// clean out globals to stop them polluting wp and wp_query
|
||||
foreach ($GLOBALS['wp']->public_query_vars as $v) {
|
||||
unset($GLOBALS[$v]);
|
||||
}
|
||||
foreach ($GLOBALS['wp']->private_query_vars as $v) {
|
||||
unset($GLOBALS[$v]);
|
||||
}
|
||||
_cleanup_query_vars();
|
||||
|
||||
$GLOBALS['wp']->main($parts['query']);
|
||||
}
|
||||
|
@ -363,3 +363,22 @@ function _unregister_post_type( $cpt_name ) {
|
||||
function _unregister_taxonomy( $taxonomy_name ) {
|
||||
unset( $GLOBALS['wp_taxonomies'][$taxonomy_name] );
|
||||
}
|
||||
|
||||
function _cleanup_query_vars() {
|
||||
// clean out globals to stop them polluting wp and wp_query
|
||||
foreach ( $GLOBALS['wp']->public_query_vars as $v )
|
||||
unset( $GLOBALS[$v] );
|
||||
|
||||
foreach ( $GLOBALS['wp']->private_query_vars as $v )
|
||||
unset( $GLOBALS[$v] );
|
||||
|
||||
foreach ( get_taxonomies( array() , 'objects' ) as $t ) {
|
||||
if ( ! empty( $t->query_var ) )
|
||||
$GLOBALS['wp']->add_query_var( $t->query_var );
|
||||
}
|
||||
|
||||
foreach ( get_post_types( array() , 'objects' ) as $t ) {
|
||||
if ( ! empty( $t->query_var ) )
|
||||
$GLOBALS['wp']->add_query_var( $t->query_var );
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user