Make WordPress Core

Changeset 28910


Ignore:
Timestamp:
06/29/2014 10:50:44 PM (10 years ago)
Author:
nacin
Message:

Add initial unit tests for multisite's bootstrap.

props jeremyfelt.
fixes #27884.

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/ms-settings.php

    r28276 r28910  
    1111 */
    1212
    13 /** Include Multisite initialization functions */
    14 require( ABSPATH . WPINC . '/ms-load.php' );
    15 require( ABSPATH . WPINC . '/ms-default-constants.php' );
    16 
    17 if ( defined( 'SUNRISE' ) )
     13if ( defined( 'SUNRISE' ) ) {
    1814    include_once( WP_CONTENT_DIR . '/sunrise.php' );
     15}
    1916
    2017/** Check for and define SUBDOMAIN_INSTALL and the deprecated VHOST constant. */
  • trunk/src/wp-settings.php

    r28563 r28910  
    9292if ( is_multisite() ) {
    9393    require( ABSPATH . WPINC . '/ms-blogs.php' );
     94    /** Include Multisite initialization functions */
     95    require( ABSPATH . WPINC . '/ms-load.php' );
     96    require( ABSPATH . WPINC . '/ms-default-constants.php' );
    9497    require( ABSPATH . WPINC . '/ms-settings.php' );
    9598} elseif ( ! defined( 'MULTISITE' ) ) {
  • trunk/tests/phpunit/includes/bootstrap.php

    r28797 r28910  
    5656    define( 'MULTISITE', true );
    5757    define( 'SUBDOMAIN_INSTALL', false );
    58     define( 'DOMAIN_CURRENT_SITE', WP_TESTS_DOMAIN );
    59     define( 'PATH_CURRENT_SITE', '/' );
    60     define( 'SITE_ID_CURRENT_SITE', 1 );
    61     define( 'BLOG_ID_CURRENT_SITE', 1 );
    6258    $GLOBALS['base'] = '/';
    6359} else {
  • trunk/tests/phpunit/tests/ms.php

    r28881 r28910  
    456456        $this->assertInternalType( 'int', $blog_id );
    457457
    458         $this->assertEquals( 'http://' . DOMAIN_CURRENT_SITE . PATH_CURRENT_SITE . 'test_blogname/', get_blogaddress_by_name('test_blogname') );
     458        $this->assertEquals( 'http://' . $current_site->domain . $current_site->path . 'test_blogname/', get_blogaddress_by_name('test_blogname') );
    459459
    460460        $this->assertEquals( $blog_id, get_id_from_blogname('test_blogname') );
     
    14111411        $this->assertEquals( 'bar', $details->blogname );
    14121412    }
     1413
     1414    /**
     1415     * @ticket 27884
     1416     *
     1417     * @expectedDeprecated define()
     1418     */
     1419    function test_multisite_bootstrap() {
     1420        global $current_site, $current_blog;
     1421
     1422        $network_ids = array(
     1423            'wordpress.org/'         => array( 'domain' => 'wordpress.org', 'path' => '/' ),
     1424            'make.wordpress.org/'    => array( 'domain' => 'make.wordpress.org', 'path' => '/' ),
     1425        );
     1426
     1427        foreach ( $network_ids as &$id ) {
     1428            $id = $this->factory->network->create( $id );
     1429        }
     1430        unset( $id );
     1431
     1432        $ids = array(
     1433            'wordpress.org/'              => array( 'domain' => 'wordpress.org',      'path' => '/',         'site_id' => $network_ids['wordpress.org/'] ),
     1434            'wordpress.org/foo/'          => array( 'domain' => 'wordpress.org',      'path' => '/foo/',     'site_id' => $network_ids['wordpress.org/'] ),
     1435            'wordpress.org/foo/bar/'      => array( 'domain' => 'wordpress.org',      'path' => '/foo/bar/', 'site_id' => $network_ids['wordpress.org/'] ),
     1436            'make.wordpress.org/'         => array( 'domain' => 'make.wordpress.org', 'path' => '/',         'site_id' => $network_ids['make.wordpress.org/'] ),
     1437            'make.wordpress.org/foo/'     => array( 'domain' => 'make.wordpress.org', 'path' => '/foo/',     'site_id' => $network_ids['make.wordpress.org/'] ),
     1438        );
     1439
     1440        foreach ( $ids as &$id ) {
     1441            $id = $this->factory->blog->create( $id );
     1442        }
     1443        unset( $id );
     1444
     1445        $this->_setup_host_request( 'wordpress.org', '/' );
     1446        $this->assertEquals( $ids['wordpress.org/'], $current_blog->blog_id );
     1447        $this->assertEquals( $network_ids['wordpress.org/'], $current_blog->site_id );
     1448
     1449        $this->_setup_host_request( 'wordpress.org', '/2014/04/23/hello-world/' );
     1450        $this->assertEquals( $ids['wordpress.org/'], $current_blog->blog_id );
     1451        $this->assertEquals( $network_ids['wordpress.org/'], $current_blog->site_id );
     1452
     1453        $this->_setup_host_request( 'wordpress.org', '/sample-page/' );
     1454        $this->assertEquals( $ids['wordpress.org/'], $current_blog->blog_id );
     1455        $this->assertEquals( $network_ids['wordpress.org/'], $current_blog->site_id );
     1456
     1457        $this->_setup_host_request( 'wordpress.org', '/?p=1' );
     1458        $this->assertEquals( $ids['wordpress.org/'], $current_blog->blog_id );
     1459        $this->assertEquals( $network_ids['wordpress.org/'], $current_blog->site_id );
     1460
     1461        $this->_setup_host_request( 'wordpress.org', '/wp-admin/' );
     1462        $this->assertEquals( $ids['wordpress.org/'], $current_blog->blog_id );
     1463        $this->assertEquals( $network_ids['wordpress.org/'], $current_blog->site_id );
     1464
     1465        $this->_setup_host_request( 'wordpress.org', '/foo/' );
     1466        $this->assertEquals( $ids['wordpress.org/foo/'], $current_blog->blog_id );
     1467        $this->assertEquals( $network_ids['wordpress.org/'], $current_blog->site_id );
     1468
     1469        $this->_setup_host_request( 'wordpress.org', '/FOO/' );
     1470        $this->assertEquals( $ids['wordpress.org/foo/'], $current_blog->blog_id );
     1471        $this->assertEquals( $network_ids['wordpress.org/'], $current_blog->site_id );
     1472
     1473        $this->_setup_host_request( 'wordpress.org', '/foo/2014/04/23/hello-world/' );
     1474        $this->assertEquals( $ids['wordpress.org/foo/'], $current_blog->blog_id );
     1475        $this->assertEquals( $network_ids['wordpress.org/'], $current_blog->site_id );
     1476
     1477        $this->_setup_host_request( 'wordpress.org', '/foo/sample-page/' );
     1478        $this->assertEquals( $ids['wordpress.org/foo/'], $current_blog->blog_id );
     1479        $this->assertEquals( $network_ids['wordpress.org/'], $current_blog->site_id );
     1480
     1481        $this->_setup_host_request( 'wordpress.org', '/foo/?p=1' );
     1482        $this->assertEquals( $ids['wordpress.org/foo/'], $current_blog->blog_id );
     1483        $this->assertEquals( $network_ids['wordpress.org/'], $current_blog->site_id );
     1484
     1485        $this->_setup_host_request( 'wordpress.org', '/foo/wp-admin/' );
     1486        $this->assertEquals( $ids['wordpress.org/foo/'], $current_blog->blog_id );
     1487        $this->assertEquals( $network_ids['wordpress.org/'], $current_blog->site_id );
     1488
     1489        // @todo not currently passing.
     1490        //$this->_setup_host_request( 'wordpress.org', '/foo/bar/' );
     1491        //$this->assertEquals( $ids['wordpress.org/foo/bar/'], $current_blog->blog_id );
     1492        //$this->assertEquals( $network_ids['wordpress.org/'], $current_blog->site_id );
     1493
     1494        $this->_setup_host_request( 'make.wordpress.org', '/' );
     1495        $this->assertEquals( $ids['make.wordpress.org/'], $current_blog->blog_id );
     1496        $this->assertEquals( $network_ids['make.wordpress.org/'], $current_blog->site_id );
     1497
     1498        $this->_setup_host_request( 'make.wordpress.org', '/foo/' );
     1499        $this->assertEquals( $ids['make.wordpress.org/foo/'], $current_blog->blog_id );
     1500        $this->assertEquals( $network_ids['make.wordpress.org/'], $current_blog->site_id );
     1501    }
     1502
     1503    /**
     1504     * Reset various globals required for a 'clean' multisite boot.
     1505     *
     1506     * The $wpdb and $table_prefix globals are required for ms-settings.php to
     1507     * load properly.
     1508     *
     1509     * @param string $domain HTTP_HOST of the bootstrap request.
     1510     * @param string $path   REQUEST_URI of the boot strap request.
     1511     */
     1512    function _setup_host_request( $domain, $path ) {
     1513        global $current_site, $current_blog, $wpdb, $table_prefix;
     1514
     1515        $current_site = $current_blog = null;
     1516        $_SERVER['HTTP_HOST'] = $domain;
     1517        $_SERVER['REQUEST_URI'] = $path;
     1518
     1519        include ABSPATH . '/wp-includes/ms-settings.php';
     1520    }
    14131521}
    14141522
Note: See TracChangeset for help on using the changeset viewer.