Make WordPress Core

Changeset 60894


Ignore:
Timestamp:
10/03/2025 11:00:04 AM (4 days ago)
Author:
jorbin
Message:

Tests: Use a dataprovider for some admin-bar tests.

Refactor admin-bar tests to use dataProviers rather than looping through assertions.

See #63167.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/adminbar.php

    r57709 r60894  
    732732     * @ticket 39082
    733733     * @group ms-required
    734      */
    735     public function test_my_sites_network_menu_for_regular_user() {
     734     * @dataProvider data_my_sites_network_menu_items
     735     */
     736    public function test_my_sites_network_menu_for_regular_user( $id, $cap ) {
    736737        wp_set_current_user( self::$editor_id );
    737738
     
    739740
    740741        $nodes = $wp_admin_bar->get_nodes();
    741         foreach ( $this->get_my_sites_network_menu_items() as $id => $cap ) {
    742             $this->assertArrayNotHasKey( $id, $nodes, sprintf( 'Menu item %s must not display for a regular user.', $id ) );
    743         }
     742        $this->assertArrayNotHasKey( $id, $nodes, sprintf( 'Menu item %s must not display for a regular user.', $id ) );
    744743    }
    745744
     
    747746     * @ticket 39082
    748747     * @group ms-required
    749      */
    750     public function test_my_sites_network_menu_for_super_admin() {
     748     * @dataProvider data_my_sites_network_menu_items
     749     */
     750    public function test_my_sites_network_menu_for_super_admin( $id, $cap ) {
    751751        wp_set_current_user( self::$editor_id );
    752752
     
    756756
    757757        $nodes = $wp_admin_bar->get_nodes();
    758         foreach ( $this->get_my_sites_network_menu_items() as $id => $cap ) {
    759             $this->assertArrayHasKey( $id, $nodes, sprintf( 'Menu item %s must display for a super admin.', $id ) );
    760         }
     758        $this->assertArrayHasKey( $id, $nodes, sprintf( 'Menu item %s must display for a super admin.', $id ) );
    761759    }
    762760
     
    764762     * @ticket 39082
    765763     * @group ms-required
    766      */
    767     public function test_my_sites_network_menu_for_regular_user_with_network_caps() {
     764     * @dataProvider data_my_sites_network_menu_items
     765     */
     766    public function test_my_sites_network_menu_for_regular_user_with_network_caps( $id, $cap ) {
    768767        global $current_user;
    769768
     
    781780
    782781        $nodes = $wp_admin_bar->get_nodes();
    783         foreach ( $this->get_my_sites_network_menu_items() as $id => $cap ) {
    784             if ( in_array( $cap, $network_user_caps, true ) ) {
    785                 $this->assertArrayHasKey( $id, $nodes, sprintf( 'Menu item %1$s must display for a user with the %2$s cap.', $id, $cap ) );
    786             } else {
    787                 $this->assertArrayNotHasKey( $id, $nodes, sprintf( 'Menu item %1$s must not display for a user without the %2$s cap.', $id, $cap ) );
    788             }
     782        if ( in_array( $cap, $network_user_caps, true ) ) {
     783            $this->assertArrayHasKey( $id, $nodes, sprintf( 'Menu item %1$s must display for a user with the %2$s cap.', $id, $cap ) );
     784        } else {
     785            $this->assertArrayNotHasKey( $id, $nodes, sprintf( 'Menu item %1$s must not display for a user without the %2$s cap.', $id, $cap ) );
    789786        }
    790787    }
    791788
    792     private function get_my_sites_network_menu_items() {
     789    /**
     790     * Data provider for test_my_sites_network_menu_for_regular_user() and
     791     * test_my_sites_network_menu_for_super_admin().
     792     *
     793     * @return array {
     794     *     @type array {
     795     *         @type string $id  The ID of the menu item.
     796     *         @type string $cap The capability required to see the menu item.
     797     *     }
     798     * }
     799     */
     800    public function data_my_sites_network_menu_items() {
    793801        return array(
    794             'my-sites-super-admin' => 'manage_network',
    795             'network-admin'        => 'manage_network',
    796             'network-admin-d'      => 'manage_network',
    797             'network-admin-s'      => 'manage_sites',
    798             'network-admin-u'      => 'manage_network_users',
    799             'network-admin-t'      => 'manage_network_themes',
    800             'network-admin-p'      => 'manage_network_plugins',
    801             'network-admin-o'      => 'manage_network_options',
     802            array( 'my-sites-super-admin', 'manage_network' ),
     803            array( 'network-admin', 'manage_network' ),
     804            array( 'network-admin-d', 'manage_network' ),
     805            array( 'network-admin-s', 'manage_sites' ),
     806            array( 'network-admin-u', 'manage_network_users' ),
     807            array( 'network-admin-t', 'manage_network_themes' ),
     808            array( 'network-admin-p', 'manage_network_plugins' ),
     809            array( 'network-admin-o', 'manage_network_options' ),
    802810        );
    803811    }
Note: See TracChangeset for help on using the changeset viewer.