Properly set `$subdomain_error` to `false` when applicable in `ms_subdomain_constants()`. This was previously untestable because it used static vars: use globals instead.

Adds unit test.
Fixes #28697.

Built from https://develop.svn.wordpress.org/trunk@29200


git-svn-id: http://core.svn.wordpress.org/trunk@28984 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Scott Taylor 2014-07-16 22:35:14 +00:00
parent 9ae01ba532
commit 8496504f59
1 changed files with 14 additions and 10 deletions

View File

@ -114,17 +114,20 @@ function ms_file_constants() {
* we will have translations loaded and can trigger warnings easily.
*
* @since 3.0.0
*
* @global boolean $subdomain_error
* @global boolean $subdomain_error_warn
*/
function ms_subdomain_constants() {
static $error = null;
static $error_warn = false;
global $subdomain_error, $subdomain_error_warn;
if ( false === $error )
if ( false === $subdomain_error ) {
return;
}
if ( $error ) {
if ( $subdomain_error ) {
$vhost_deprecated = __( 'The constant <code>VHOST</code> <strong>is deprecated</strong>. Use the boolean constant <code>SUBDOMAIN_INSTALL</code> in wp-config.php to enable a subdomain configuration. Use is_subdomain_install() to check whether a subdomain configuration is enabled.' );
if ( $error_warn ) {
if ( $subdomain_error_warn ) {
trigger_error( __( '<strong>Conflicting values for the constants VHOST and SUBDOMAIN_INSTALL.</strong> The value of SUBDOMAIN_INSTALL will be assumed to be your subdomain configuration setting.' ) . ' ' . $vhost_deprecated, E_USER_WARNING );
} else {
_deprecated_argument( 'define()', '3.0', $vhost_deprecated );
@ -133,17 +136,18 @@ function ms_subdomain_constants() {
}
if ( defined( 'SUBDOMAIN_INSTALL' ) && defined( 'VHOST' ) ) {
if ( SUBDOMAIN_INSTALL == ( 'yes' == VHOST ) ) {
$error = true;
} else {
$error = $error_warn = true;
$subdomain_error = true;
if ( SUBDOMAIN_INSTALL !== ( 'yes' == VHOST ) ) {
$subdomain_error_warn = true;
}
} elseif ( defined( 'SUBDOMAIN_INSTALL' ) ) {
$subdomain_error = false;
define( 'VHOST', SUBDOMAIN_INSTALL ? 'yes' : 'no' );
} elseif ( defined( 'VHOST' ) ) {
$error = true;
$subdomain_error = true;
define( 'SUBDOMAIN_INSTALL', 'yes' == VHOST );
} else {
$subdomain_error = false;
define( 'SUBDOMAIN_INSTALL', false );
define( 'VHOST', 'no' );
}