Avoid polluted `$table_prefix` and `$_wp_switched_stack` in multisite unit tests.

Add `WP_TESTS_TABLE_PREFIX` in `bootstrap.php` to ensure the original value for `$table_prefix` is always available. 

Props jeremyfelt.
Fixes #28692.


git-svn-id: https://develop.svn.wordpress.org/trunk@28943 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Scott Taylor 2014-07-01 18:51:46 +00:00
parent 99d75b6acb
commit 9ab7f4b144
3 changed files with 8 additions and 1 deletions

View File

@ -23,6 +23,7 @@ if ( !is_readable( $config_file_path ) ) {
}
require_once $config_file_path;
define( 'WP_TESTS_TABLE_PREFIX', $table_prefix );
define( 'DIR_TESTDATA', dirname( __FILE__ ) . '/../data' );
if ( ! defined( 'WP_TESTS_FORCE_KNOWN_BUGS' ) )

View File

@ -35,6 +35,11 @@ class WP_UnitTestCase extends PHPUnit_Framework_TestCase {
global $wpdb, $wp_query, $post;
$this->expectedDeprecated();
$wpdb->query( 'ROLLBACK' );
if ( is_multisite() ) {
while ( ms_is_switched() ) {
restore_current_blog();
}
}
$wp_query = new WP_Query();
$post = null;
remove_theme_support( 'html5' );

View File

@ -1510,8 +1510,9 @@ class Tests_MS extends WP_UnitTestCase {
* @param string $path REQUEST_URI of the boot strap request.
*/
function _setup_host_request( $domain, $path ) {
global $current_site, $current_blog, $wpdb, $table_prefix;
global $current_site, $current_blog, $table_prefix;
$table_prefix = WP_TESTS_TABLE_PREFIX;
$current_site = $current_blog = null;
$_SERVER['HTTP_HOST'] = $domain;
$_SERVER['REQUEST_URI'] = $path;