WordPress.org

Make WordPress Core

Changeset 38521


Ignore:
Timestamp:
09/05/2016 10:59:42 AM (3 years ago)
Author:
johnbillion
Message:

Role/Capability: Split meta and primitive capabilities in the helper functions in the roles and capability tests so primitive capability tests can be made more accurate.

See #35614
See #32394

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/user/capabilities.php

    r38516 r38521  
    4949    }
    5050
    51     protected function _getSingleSiteCaps() {
     51    final private function _getSingleSitePrimitiveCaps() {
    5252        return array(
    5353
     
    7474            'install_plugins'        => array( 'administrator' ),
    7575            'install_themes'         => array( 'administrator' ),
    76             'upload_plugins'         => array( 'administrator' ),
    77             'upload_themes'          => array( 'administrator' ),
    7876            'update_core'            => array( 'administrator' ),
    7977            'update_plugins'         => array( 'administrator' ),
    8078            'update_themes'          => array( 'administrator' ),
    8179            'edit_theme_options'     => array( 'administrator' ),
    82             'customize'              => array( 'administrator' ),
    8380            'export'                 => array( 'administrator' ),
    8481            'import'                 => array( 'administrator' ),
    8582            'list_users'             => array( 'administrator' ),
    8683            'manage_options'         => array( 'administrator' ),
    87             'delete_site'            => array( 'administrator' ),
    88             'add_users'              => array( 'administrator' ),
    8984            'promote_users'          => array( 'administrator' ),
    9085            'remove_users'           => array( 'administrator' ),
     
    142137    }
    143138
    144     protected function _getMultiSiteCaps() {
     139    final private function _getMultiSitePrimitiveCaps() {
    145140        return array(
    146141
     
    166161            'install_plugins'        => array(),
    167162            'install_themes'         => array(),
    168             'upload_plugins'         => array(),
    169             'upload_themes'          => array(),
    170163            'update_core'            => array(),
    171164            'update_plugins'         => array(),
     
    173166
    174167            'edit_theme_options'     => array( 'administrator' ),
    175             'customize'              => array( 'administrator' ),
    176168            'export'                 => array( 'administrator' ),
    177169            'import'                 => array( 'administrator' ),
    178170            'list_users'             => array( 'administrator' ),
    179171            'manage_options'         => array( 'administrator' ),
    180             'delete_site'            => array( 'administrator' ),
    181             'add_users'              => array( 'administrator' ),
    182172            'promote_users'          => array( 'administrator' ),
    183173            'remove_users'           => array( 'administrator' ),
     
    235225    }
    236226
    237     protected function getCapsAndRoles() {
     227    final private function _getSingleSiteMetaCaps() {
     228        return array(
     229            'upload_plugins'         => array( 'administrator' ),
     230            'upload_themes'          => array( 'administrator' ),
     231            'customize'              => array( 'administrator' ),
     232            'delete_site'            => array( 'administrator' ),
     233            'add_users'              => array( 'administrator' ),
     234        );
     235    }
     236
     237    final private function _getMultiSiteMetaCaps() {
     238        return array(
     239            'upload_plugins'         => array( 'administrator' ),
     240            'upload_themes'          => array( 'administrator' ),
     241            'customize'              => array( 'administrator' ),
     242            'delete_site'            => array( 'administrator' ),
     243            'add_users'              => array( 'administrator' ),
     244        );
     245    }
     246
     247    protected function getAllCapsAndRoles() {
     248        return $this->getPrimitiveCapsAndRoles() + $this->getMetaCapsAndRoles();
     249    }
     250
     251    protected function getPrimitiveCapsAndRoles() {
    238252        if ( is_multisite() ) {
    239             return $this->_getMultiSiteCaps();
     253            return $this->_getMultiSitePrimitiveCaps();
    240254        } else {
    241             return $this->_getSingleSiteCaps();
     255            return $this->_getSingleSitePrimitiveCaps();
     256        }
     257    }
     258
     259    protected function getMetaCapsAndRoles() {
     260        if ( is_multisite() ) {
     261            return $this->_getMultiSiteMetaCaps();
     262        } else {
     263            return $this->_getSingleSiteMetaCaps();
    242264        }
    243265    }
     
    245267    // test the tests
    246268    function test_single_and_multisite_cap_tests_match() {
    247         $single = $this->_getSingleSiteCaps();
    248         $multi  = $this->_getMultiSiteCaps();
     269        $single = $this->_getSingleSitePrimitiveCaps();
     270        $multi  = $this->_getMultiSitePrimitiveCaps();
     271        $this->assertEquals( array_keys( $single ), array_keys( $multi ) );
     272
     273        $single = $this->_getSingleSiteMetaCaps();
     274        $multi  = $this->_getMultiSiteMetaCaps();
    249275        $this->assertEquals( array_keys( $single ), array_keys( $multi ) );
    250276    }
     
    252278    // test the tests
    253279    function test_all_caps_of_users_are_being_tested() {
    254         $caps = $this->getCapsAndRoles();
     280        $caps = $this->getPrimitiveCapsAndRoles();
    255281
    256282        // `manage_links` is a special case
     
    283309    // test the default roles and caps
    284310    function test_all_roles_and_caps() {
    285         $caps = $this->getCapsAndRoles();
     311        $caps = $this->getAllCapsAndRoles();
    286312
    287313        foreach ( self::$users as $role => $user ) {
     
    363389            return;
    364390        }
    365         $caps = $this->getCapsAndRoles();
     391        $caps = $this->getAllCapsAndRoles();
    366392
    367393        $user = self::$users['administrator'];
     
    393419        $this->assertEquals( array(), $user->roles, "User should not have any roles" );
    394420
    395         $caps = $this->getCapsAndRoles();
     421        $caps = $this->getAllCapsAndRoles();
    396422
    397423        foreach ( $caps as $cap => $roles ) {
     
    413439        $this->assertEquals( array( 'subscriber', 'contributor' ), $user->roles );
    414440
    415         $caps = $this->getCapsAndRoles();
     441        $caps = $this->getAllCapsAndRoles();
    416442
    417443        foreach ( $caps as $cap => $roles ) {
     
    449475        $this->assertEquals( array( $role_name ), $user->roles );
    450476
    451         $caps = $this->getCapsAndRoles();
     477        $caps = $this->getAllCapsAndRoles();
    452478
    453479        foreach ( $caps as $cap => $roles ) {
     
    486512        $this->assertEquals( array( $role_name ), $user->roles );
    487513
    488         $caps = $this->getCapsAndRoles();
     514        $caps = $this->getPrimitiveCapsAndRoles();
    489515
    490516        foreach ( $caps as $cap => $roles ) {
     
    12551281        $this->assertFalse( is_user_logged_in() );
    12561282
    1257         $caps = $this->getCapsAndRoles();
     1283        $caps = $this->getAllCapsAndRoles();
    12581284
    12591285        foreach ( $caps as $cap => $roles ) {
Note: See TracChangeset for help on using the changeset viewer.