Make WordPress Core

Ticket #19647: 19647.4.diff

File 19647.4.diff, 16.1 KB (added by morganestes, 4 years ago)

Add unit tests for refreshed patch.

  • src/wp-includes/admin-bar.php

    diff --git a/src/wp-includes/admin-bar.php b/src/wp-includes/admin-bar.php
    index 19d668c633..77ab5848ee 100644
    a b function wp_admin_bar_wp_menu( $wp_admin_bar ) { 
    131131                );
    132132        }
    133133
    134         $wp_admin_bar->add_menu( $wp_logo_menu_args );
     134        $wp_admin_bar->add_node( $wp_logo_menu_args );
    135135
    136136        if ( $about_url ) {
    137137                // Add "About WordPress" link
    138                 $wp_admin_bar->add_menu(
     138                $wp_admin_bar->add_node(
    139139                        array(
    140140                                'parent' => 'wp-logo',
    141141                                'id'     => 'about',
    function wp_admin_bar_wp_menu( $wp_admin_bar ) { 
    146146        }
    147147
    148148        // Add WordPress.org link
    149         $wp_admin_bar->add_menu(
     149        $wp_admin_bar->add_node(
    150150                array(
    151151                        'parent' => 'wp-logo-external',
    152152                        'id'     => 'wporg',
    function wp_admin_bar_wp_menu( $wp_admin_bar ) { 
    156156        );
    157157
    158158        // Add codex link
    159         $wp_admin_bar->add_menu(
     159        $wp_admin_bar->add_node(
    160160                array(
    161161                        'parent' => 'wp-logo-external',
    162162                        'id'     => 'documentation',
    function wp_admin_bar_wp_menu( $wp_admin_bar ) { 
    166166        );
    167167
    168168        // Add forums link
    169         $wp_admin_bar->add_menu(
     169        $wp_admin_bar->add_node(
    170170                array(
    171171                        'parent' => 'wp-logo-external',
    172172                        'id'     => 'support-forums',
    function wp_admin_bar_wp_menu( $wp_admin_bar ) { 
    176176        );
    177177
    178178        // Add feedback link
    179         $wp_admin_bar->add_menu(
     179        $wp_admin_bar->add_node(
    180180                array(
    181181                        'parent' => 'wp-logo-external',
    182182                        'id'     => 'feedback',
    function wp_admin_bar_wp_menu( $wp_admin_bar ) { 
    195195 */
    196196function wp_admin_bar_sidebar_toggle( $wp_admin_bar ) {
    197197        if ( is_admin() ) {
    198                 $wp_admin_bar->add_menu(
     198                $wp_admin_bar->add_node(
    199199                        array(
    200200                                'id'    => 'menu-toggle',
    201201                                'title' => '<span class="ab-icon"></span><span class="screen-reader-text">' . __( 'Menu' ) . '</span>',
    function wp_admin_bar_my_account_item( $wp_admin_bar ) { 
    233233        $howdy = sprintf( __( 'Howdy, %s' ), '<span class="display-name">' . $current_user->display_name . '</span>' );
    234234        $class = empty( $avatar ) ? '' : 'with-avatar';
    235235
    236         $wp_admin_bar->add_menu(
     236        $wp_admin_bar->add_node(
    237237                array(
    238238                        'id'     => 'my-account',
    239239                        'parent' => 'top-secondary',
    function wp_admin_bar_my_account_menu( $wp_admin_bar ) { 
    283283                $user_info .= "<span class='username'>{$current_user->user_login}</span>";
    284284        }
    285285
    286         $wp_admin_bar->add_menu(
     286        $wp_admin_bar->add_node(
    287287                array(
    288288                        'parent' => 'user-actions',
    289289                        'id'     => 'user-info',
    function wp_admin_bar_my_account_menu( $wp_admin_bar ) { 
    296296        );
    297297
    298298        if ( false !== $profile_url ) {
    299                 $wp_admin_bar->add_menu(
     299                $wp_admin_bar->add_node(
    300300                        array(
    301301                                'parent' => 'user-actions',
    302302                                'id'     => 'edit-profile',
    function wp_admin_bar_my_account_menu( $wp_admin_bar ) { 
    306306                );
    307307        }
    308308
    309         $wp_admin_bar->add_menu(
     309        $wp_admin_bar->add_node(
    310310                array(
    311311                        'parent' => 'user-actions',
    312312                        'id'     => 'logout',
    function wp_admin_bar_site_menu( $wp_admin_bar ) { 
    350350
    351351        $title = wp_html_excerpt( $blogname, 40, '&hellip;' );
    352352
    353         $wp_admin_bar->add_menu(
     353        $wp_admin_bar->add_node(
    354354                array(
    355355                        'id'    => 'site-name',
    356356                        'title' => $title,
    function wp_admin_bar_site_menu( $wp_admin_bar ) { 
    362362
    363363        if ( is_admin() ) {
    364364                // Add an option to visit the site.
    365                 $wp_admin_bar->add_menu(
     365                $wp_admin_bar->add_node(
    366366                        array(
    367367                                'parent' => 'site-name',
    368368                                'id'     => 'view-site',
    function wp_admin_bar_site_menu( $wp_admin_bar ) { 
    372372                );
    373373
    374374                if ( is_blog_admin() && is_multisite() && current_user_can( 'manage_sites' ) ) {
    375                         $wp_admin_bar->add_menu(
     375                        $wp_admin_bar->add_node(
    376376                                array(
    377377                                        'parent' => 'site-name',
    378378                                        'id'     => 'edit-site',
    function wp_admin_bar_site_menu( $wp_admin_bar ) { 
    383383                }
    384384        } elseif ( current_user_can( 'read' ) ) {
    385385                // We're on the front end, link to the Dashboard.
    386                 $wp_admin_bar->add_menu(
     386                $wp_admin_bar->add_node(
    387387                        array(
    388388                                'parent' => 'site-name',
    389389                                'id'     => 'dashboard',
    function wp_admin_bar_customize_menu( $wp_admin_bar ) { 
    428428                $customize_url = add_query_arg( array( 'changeset_uuid' => $wp_customize->changeset_uuid() ), $customize_url );
    429429        }
    430430
    431         $wp_admin_bar->add_menu(
     431        $wp_admin_bar->add_node(
    432432                array(
    433433                        'id'    => 'customize',
    434434                        'title' => __( 'Customize' ),
    function wp_admin_bar_my_sites_menu( $wp_admin_bar ) { 
    465465                $my_sites_url = admin_url( 'my-sites.php' );
    466466        }
    467467
    468         $wp_admin_bar->add_menu(
     468        $wp_admin_bar->add_node(
    469469                array(
    470470                        'id'    => 'my-sites',
    471471                        'title' => __( 'My Sites' ),
    function wp_admin_bar_my_sites_menu( $wp_admin_bar ) { 
    481481                        )
    482482                );
    483483
    484                 $wp_admin_bar->add_menu(
     484                $wp_admin_bar->add_node(
    485485                        array(
    486486                                'parent' => 'my-sites-super-admin',
    487487                                'id'     => 'network-admin',
    function wp_admin_bar_my_sites_menu( $wp_admin_bar ) { 
    490490                        )
    491491                );
    492492
    493                 $wp_admin_bar->add_menu(
     493                $wp_admin_bar->add_node(
    494494                        array(
    495495                                'parent' => 'network-admin',
    496496                                'id'     => 'network-admin-d',
    function wp_admin_bar_my_sites_menu( $wp_admin_bar ) { 
    500500                );
    501501
    502502                if ( current_user_can( 'manage_sites' ) ) {
    503                         $wp_admin_bar->add_menu(
     503                        $wp_admin_bar->add_node(
    504504                                array(
    505505                                        'parent' => 'network-admin',
    506506                                        'id'     => 'network-admin-s',
    function wp_admin_bar_my_sites_menu( $wp_admin_bar ) { 
    511511                }
    512512
    513513                if ( current_user_can( 'manage_network_users' ) ) {
    514                         $wp_admin_bar->add_menu(
     514                        $wp_admin_bar->add_node(
    515515                                array(
    516516                                        'parent' => 'network-admin',
    517517                                        'id'     => 'network-admin-u',
    function wp_admin_bar_my_sites_menu( $wp_admin_bar ) { 
    522522                }
    523523
    524524                if ( current_user_can( 'manage_network_themes' ) ) {
    525                         $wp_admin_bar->add_menu(
     525                        $wp_admin_bar->add_node(
    526526                                array(
    527527                                        'parent' => 'network-admin',
    528528                                        'id'     => 'network-admin-t',
    function wp_admin_bar_my_sites_menu( $wp_admin_bar ) { 
    533533                }
    534534
    535535                if ( current_user_can( 'manage_network_plugins' ) ) {
    536                         $wp_admin_bar->add_menu(
     536                        $wp_admin_bar->add_node(
    537537                                array(
    538538                                        'parent' => 'network-admin',
    539539                                        'id'     => 'network-admin-p',
    function wp_admin_bar_my_sites_menu( $wp_admin_bar ) { 
    544544                }
    545545
    546546                if ( current_user_can( 'manage_network_options' ) ) {
    547                         $wp_admin_bar->add_menu(
     547                        $wp_admin_bar->add_node(
    548548                                array(
    549549                                        'parent' => 'network-admin',
    550550                                        'id'     => 'network-admin-o',
    function wp_admin_bar_my_sites_menu( $wp_admin_bar ) { 
    580580                $menu_id = 'blog-' . $blog->userblog_id;
    581581
    582582                if ( current_user_can( 'read' ) ) {
    583                         $wp_admin_bar->add_menu(
     583                        $wp_admin_bar->add_node(
    584584                                array(
    585585                                        'parent' => 'my-sites-list',
    586586                                        'id'     => $menu_id,
    function wp_admin_bar_my_sites_menu( $wp_admin_bar ) { 
    589589                                )
    590590                        );
    591591
    592                         $wp_admin_bar->add_menu(
     592                        $wp_admin_bar->add_node(
    593593                                array(
    594594                                        'parent' => $menu_id,
    595595                                        'id'     => $menu_id . '-d',
    function wp_admin_bar_my_sites_menu( $wp_admin_bar ) { 
    598598                                )
    599599                        );
    600600                } else {
    601                         $wp_admin_bar->add_menu(
     601                        $wp_admin_bar->add_node(
    602602                                array(
    603603                                        'parent' => 'my-sites-list',
    604604                                        'id'     => $menu_id,
    function wp_admin_bar_my_sites_menu( $wp_admin_bar ) { 
    609609                }
    610610
    611611                if ( current_user_can( get_post_type_object( 'post' )->cap->create_posts ) ) {
    612                         $wp_admin_bar->add_menu(
     612                        $wp_admin_bar->add_node(
    613613                                array(
    614614                                        'parent' => $menu_id,
    615615                                        'id'     => $menu_id . '-n',
    function wp_admin_bar_my_sites_menu( $wp_admin_bar ) { 
    620620                }
    621621
    622622                if ( current_user_can( 'edit_posts' ) ) {
    623                         $wp_admin_bar->add_menu(
     623                        $wp_admin_bar->add_node(
    624624                                array(
    625625                                        'parent' => $menu_id,
    626626                                        'id'     => $menu_id . '-c',
    function wp_admin_bar_my_sites_menu( $wp_admin_bar ) { 
    630630                        );
    631631                }
    632632
    633                 $wp_admin_bar->add_menu(
     633                $wp_admin_bar->add_node(
    634634                        array(
    635635                                'parent' => $menu_id,
    636636                                'id'     => $menu_id . '-v',
    function wp_admin_bar_shortlink_menu( $wp_admin_bar ) { 
    660660
    661661        $html = '<input class="shortlink-input" type="text" readonly="readonly" value="' . esc_attr( $short ) . '" />';
    662662
    663         $wp_admin_bar->add_menu(
     663        $wp_admin_bar->add_node(
    664664                array(
    665665                        'id'    => $id,
    666666                        'title' => __( 'Shortlink' ),
    function wp_admin_bar_edit_menu( $wp_admin_bar ) { 
    702702                        && ( $post_type_object->show_in_admin_bar ) ) {
    703703                        if ( 'draft' == $post->post_status ) {
    704704                                $preview_link = get_preview_post_link( $post );
    705                                 $wp_admin_bar->add_menu(
     705                                $wp_admin_bar->add_node(
    706706                                        array(
    707707                                                'id'    => 'preview',
    708708                                                'title' => $post_type_object->labels->view_item,
    function wp_admin_bar_edit_menu( $wp_admin_bar ) { 
    711711                                        )
    712712                                );
    713713                        } else {
    714                                 $wp_admin_bar->add_menu(
     714                                $wp_admin_bar->add_node(
    715715                                        array(
    716716                                                'id'    => 'view',
    717717                                                'title' => $post_type_object->labels->view_item,
    function wp_admin_bar_edit_menu( $wp_admin_bar ) { 
    735735                } elseif ( 'term' == $current_screen->base && isset( $tag ) && is_object( $tag ) && ! is_wp_error( $tag ) ) {
    736736                        $tax = get_taxonomy( $tag->taxonomy );
    737737                        if ( is_taxonomy_viewable( $tax ) ) {
    738                                 $wp_admin_bar->add_menu(
     738                                $wp_admin_bar->add_node(
    739739                                        array(
    740740                                                'id'    => 'view',
    741741                                                'title' => $tax->labels->view_item,
    function wp_admin_bar_edit_menu( $wp_admin_bar ) { 
    747747                        $user_object = get_userdata( $user_id );
    748748                        $view_link   = get_author_posts_url( $user_object->ID );
    749749                        if ( $user_object->exists() && $view_link ) {
    750                                 $wp_admin_bar->add_menu(
     750                                $wp_admin_bar->add_node(
    751751                                        array(
    752752                                                'id'    => 'view',
    753753                                                'title' => __( 'View User' ),
    function wp_admin_bar_edit_menu( $wp_admin_bar ) { 
    770770                                && $edit_post_link
    771771                                && current_user_can( 'edit_post', $current_object->ID )
    772772                                && $post_type_object->show_in_admin_bar ) {
    773                                 $wp_admin_bar->add_menu(
     773                                $wp_admin_bar->add_node(
    774774                                        array(
    775775                                                'id'    => 'edit',
    776776                                                'title' => $post_type_object->labels->edit_item,
    function wp_admin_bar_edit_menu( $wp_admin_bar ) { 
    782782                        $tax            = get_taxonomy( $current_object->taxonomy );
    783783                        $edit_term_link = get_edit_term_link( $current_object->term_id, $current_object->taxonomy );
    784784                        if ( $tax && $edit_term_link && current_user_can( 'edit_term', $current_object->term_id ) ) {
    785                                 $wp_admin_bar->add_menu(
     785                                $wp_admin_bar->add_node(
    786786                                        array(
    787787                                                'id'    => 'edit',
    788788                                                'title' => $tax->labels->edit_item,
    function wp_admin_bar_edit_menu( $wp_admin_bar ) { 
    793793                } elseif ( is_a( $current_object, 'WP_User' ) && current_user_can( 'edit_user', $current_object->ID ) ) {
    794794                        $edit_user_link = get_edit_user_link( $current_object->ID );
    795795                        if ( $edit_user_link ) {
    796                                 $wp_admin_bar->add_menu(
     796                                $wp_admin_bar->add_node(
    797797                                        array(
    798798                                                'id'    => 'edit',
    799799                                                'title' => __( 'Edit User' ),
    function wp_admin_bar_new_content_menu( $wp_admin_bar ) { 
    859859
    860860        $title = '<span class="ab-icon"></span><span class="ab-label">' . _x( 'New', 'admin bar menu group label' ) . '</span>';
    861861
    862         $wp_admin_bar->add_menu(
     862        $wp_admin_bar->add_node(
    863863                array(
    864864                        'id'    => 'new-content',
    865865                        'title' => $title,
    function wp_admin_bar_new_content_menu( $wp_admin_bar ) { 
    870870        foreach ( $actions as $link => $action ) {
    871871                list( $title, $id ) = $action;
    872872
    873                 $wp_admin_bar->add_menu(
     873                $wp_admin_bar->add_node(
    874874                        array(
    875875                                'parent' => 'new-content',
    876876                                'id'     => $id,
    function wp_admin_bar_comments_menu( $wp_admin_bar ) { 
    905905        $title  = '<span class="ab-label awaiting-mod pending-count count-' . $awaiting_mod . '" aria-hidden="true">' . number_format_i18n( $awaiting_mod ) . '</span>';
    906906        $title .= '<span class="screen-reader-text comments-in-moderation-text">' . $awaiting_text . '</span>';
    907907
    908         $wp_admin_bar->add_menu(
     908        $wp_admin_bar->add_node(
    909909                array(
    910910                        'id'    => 'comments',
    911911                        'title' => $icon . $title,
    function wp_admin_bar_appearance_menu( $wp_admin_bar ) { 
    930930        );
    931931
    932932        if ( current_user_can( 'switch_themes' ) ) {
    933                 $wp_admin_bar->add_menu(
     933                $wp_admin_bar->add_node(
    934934                        array(
    935935                                'parent' => 'appearance',
    936936                                'id'     => 'themes',
    function wp_admin_bar_appearance_menu( $wp_admin_bar ) { 
    945945        }
    946946
    947947        if ( current_theme_supports( 'widgets' ) ) {
    948                 $wp_admin_bar->add_menu(
     948                $wp_admin_bar->add_node(
    949949                        array(
    950950                                'parent' => 'appearance',
    951951                                'id'     => 'widgets',
    function wp_admin_bar_appearance_menu( $wp_admin_bar ) { 
    956956        }
    957957
    958958        if ( current_theme_supports( 'menus' ) || current_theme_supports( 'widgets' ) ) {
    959                 $wp_admin_bar->add_menu(
     959                $wp_admin_bar->add_node(
    960960                        array(
    961961                                'parent' => 'appearance',
    962962                                'id'     => 'menus',
    function wp_admin_bar_appearance_menu( $wp_admin_bar ) { 
    967967        }
    968968
    969969        if ( current_theme_supports( 'custom-background' ) ) {
    970                 $wp_admin_bar->add_menu(
     970                $wp_admin_bar->add_node(
    971971                        array(
    972972                                'parent' => 'appearance',
    973973                                'id'     => 'background',
    function wp_admin_bar_appearance_menu( $wp_admin_bar ) { 
    981981        }
    982982
    983983        if ( current_theme_supports( 'custom-header' ) ) {
    984                 $wp_admin_bar->add_menu(
     984                $wp_admin_bar->add_node(
    985985                        array(
    986986                                'parent' => 'appearance',
    987987                                'id'     => 'header',
    function wp_admin_bar_updates_menu( $wp_admin_bar ) { 
    10141014        $title  = '<span class="ab-icon"></span><span class="ab-label">' . number_format_i18n( $update_data['counts']['total'] ) . '</span>';
    10151015        $title .= '<span class="screen-reader-text">' . $update_data['title'] . '</span>';
    10161016
    1017         $wp_admin_bar->add_menu(
     1017        $wp_admin_bar->add_node(
    10181018                array(
    10191019                        'id'    => 'updates',
    10201020                        'title' => $title,
    function wp_admin_bar_search_menu( $wp_admin_bar ) { 
    10441044        $form .= '<input type="submit" class="adminbar-button" value="' . __( 'Search' ) . '"/>';
    10451045        $form .= '</form>';
    10461046
    1047         $wp_admin_bar->add_menu(
     1047        $wp_admin_bar->add_node(
    10481048                array(
    10491049                        'parent' => 'top-secondary',
    10501050                        'id'     => 'search',
    function wp_admin_bar_recovery_mode_menu( $wp_admin_bar ) { 
    10731073        $url = add_query_arg( 'action', WP_Recovery_Mode::EXIT_ACTION, $url );
    10741074        $url = wp_nonce_url( $url, WP_Recovery_Mode::EXIT_ACTION );
    10751075
    1076         $wp_admin_bar->add_menu(
     1076        $wp_admin_bar->add_node(
    10771077                array(
    10781078                        'parent' => 'top-secondary',
    10791079                        'id'     => 'recovery-mode',
  • src/wp-includes/class-wp-admin-bar.php

    diff --git a/src/wp-includes/class-wp-admin-bar.php b/src/wp-includes/class-wp-admin-bar.php
    index 0522f53f1a..2a137e746e 100644
    a b class WP_Admin_Bar { 
    8282        }
    8383
    8484        /**
    85          * @param array $node
     85         * Add a node (menu item) to the Admin Bar menu.
     86         *
     87         * @since 3.3.0
     88         * @since 5.4.0 Deprecated in favor of {@see WP_Admin_Bar::add_node()}.
     89         *
     90         * @param array $node The attributes that define the node.
    8691         */
    8792        public function add_menu( $node ) {
     93                _deprecated_function( __METHOD__, '5.4.0', __CLASS__ . '::add_node()' );
    8894                $this->add_node( $node );
    8995        }
    9096
    9197        /**
    92          * @param string $id
     98         * Remove a node from the admin bar.
     99         *
     100         * @since 3.1.0
     101         * @since 5.4.0 Deprecated in favor of {@see WP_Admin_Bar::remove_node()}.
     102         *
     103         * @param string $id The menu slug to remove.
    93104         */
    94105        public function remove_menu( $id ) {
     106                _deprecated_function( __METHOD__, '5.4.0', __CLASS__ . '::remove_node()' );
    95107                $this->remove_node( $id );
    96108        }
    97109
  • tests/phpunit/tests/adminbar.php

    diff --git a/tests/phpunit/tests/adminbar.php b/tests/phpunit/tests/adminbar.php
    index a9a2ed4564..5fbc3678cf 100644
    a b class Tests_AdminBar extends WP_UnitTestCase { 
    345345                );
    346346        }
    347347
     348        /**
     349         * @ticket 19647
     350         */
     351        public function test_deprecated_menu_methods() {
     352                $admin_bar = new WP_Admin_Bar();
     353                $node_data = array( 'id' => 'test-node-19647' );
     354
     355                // Test add_menu() deprecation.
     356                $this->setExpectedDeprecated( 'WP_Admin_Bar::add_menu' );
     357                $admin_bar->add_menu( $node_data );
     358                $node_test = $admin_bar->get_node( 'test-node-19647' );
     359                $this->assertNotNull( $node_test );
     360
     361                // Test remove_menu() deprecation.
     362                $this->setExpectedDeprecated( 'WP_Admin_Bar::remove_menu' );
     363                $admin_bar->remove_menu('test-node-19647' );
     364                $node_test = $admin_bar->get_node( 'test-node-19647' );
     365                $this->assertNull( $node_test );
     366        }
     367
    348368        /**
    349369         * @ticket 22247
    350370         */