Make WordPress Core


Ignore:
Timestamp:
11/30/2017 11:09:33 PM (9 years ago)
Author:
pento
Message:

Code is Poetry.
WordPress' code just... wasn't.
This is now dealt with.

Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS.
Fixes #41057.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/customize/nav-menu-item-setting.php

    r41697 r42343  
    2626                global $wp_customize;
    2727                $this->wp_customize = new WP_Customize_Manager();
    28                 $wp_customize = $this->wp_customize;
     28                $wp_customize       = $this->wp_customize;
    2929        }
    3030
     
    7777
    7878                $default = array(
    79                         'object_id' => 0,
    80                         'object' => '',
     79                        'object_id'        => 0,
     80                        'object'           => '',
    8181                        'menu_item_parent' => 0,
    82                         'position' => 0,
    83                         'type' => 'custom',
    84                         'title' => '',
    85                         'url' => '',
    86                         'target' => '',
    87                         'attr_title' => '',
    88                         'description' => '',
    89                         'classes' => '',
    90                         'xfn' => '',
    91                         'status' => 'publish',
    92                         'original_title' => '',
     82                        'position'         => 0,
     83                        'type'             => 'custom',
     84                        'title'            => '',
     85                        'url'              => '',
     86                        'target'           => '',
     87                        'attr_title'       => '',
     88                        'description'      => '',
     89                        'classes'          => '',
     90                        'xfn'              => '',
     91                        'status'           => 'publish',
     92                        'original_title'   => '',
    9393                        'nav_menu_term_id' => 0,
    94                         '_invalid' => false,
     94                        '_invalid'         => false,
    9595                );
    9696                $this->assertEquals( $default, $setting->default );
     
    112112                do_action( 'customize_register', $this->wp_customize );
    113113                $_wp_customize = $this->wp_customize;
    114                 unset($_wp_customize->nav_menus);
     114                unset( $_wp_customize->nav_menus );
    115115
    116116                $exception = null;
     
    132132                do_action( 'customize_register', $this->wp_customize );
    133133                $default = array(
    134                         'title' => 'Lorem',
    135                         'description' => 'ipsum',
     134                        'title'            => 'Lorem',
     135                        'description'      => 'ipsum',
    136136                        'menu_item_parent' => 123,
    137137                );
     
    152152                $post_id = self::factory()->post->create( array( 'post_title' => 'Hello World' ) );
    153153
    154                 $menu_id = wp_create_nav_menu( 'Menu' );
     154                $menu_id    = wp_create_nav_menu( 'Menu' );
    155155                $item_title = 'Greetings';
    156                 $item_id = wp_update_nav_menu_item( $menu_id, 0, array(
    157                         'menu-item-type' => 'post_type',
    158                         'menu-item-object' => 'post',
    159                         'menu-item-object-id' => $post_id,
    160                         'menu-item-title' => $item_title,
    161                         'menu-item-status' => 'publish',
    162                 ) );
    163 
    164                 $post = get_post( $item_id );
     156                $item_id    = wp_update_nav_menu_item(
     157                        $menu_id, 0, array(
     158                                'menu-item-type'      => 'post_type',
     159                                'menu-item-object'    => 'post',
     160                                'menu-item-object-id' => $post_id,
     161                                'menu-item-title'     => $item_title,
     162                                'menu-item-status'    => 'publish',
     163                        )
     164                );
     165
     166                $post      = get_post( $item_id );
    165167                $menu_item = wp_setup_nav_menu_item( $post );
    166168                $this->assertEquals( $item_title, $menu_item->title );
    167169
    168170                $setting_id = "nav_menu_item[$item_id]";
    169                 $setting = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
     171                $setting    = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
    170172
    171173                $value = $setting->value();
     
    177179
    178180                $other_menu_id = wp_create_nav_menu( 'Menu2' );
    179                 wp_update_nav_menu_item( $other_menu_id, $item_id, array(
    180                         'menu-item-title' => 'Hola',
    181                 ) );
     181                wp_update_nav_menu_item(
     182                        $other_menu_id, $item_id, array(
     183                                'menu-item-title' => 'Hola',
     184                        )
     185                );
    182186                $value = $setting->value();
    183187                $this->assertEquals( 'Hola', $value['title'] );
     
    194198
    195199                $original_title = 'Hello World';
    196                 $post_id = self::factory()->post->create( array( 'post_title' => $original_title ) );
     200                $post_id        = self::factory()->post->create( array( 'post_title' => $original_title ) );
    197201
    198202                $menu_id = wp_create_nav_menu( 'Menu' );
    199                 $item_id = wp_update_nav_menu_item( $menu_id, 0, array(
    200                         'menu-item-type' => 'post_type',
    201                         'menu-item-object' => 'post',
    202                         'menu-item-object-id' => $post_id,
    203                         'menu-item-title' => '',
    204                         'menu-item-status' => 'publish',
    205                 ) );
     203                $item_id = wp_update_nav_menu_item(
     204                        $menu_id, 0, array(
     205                                'menu-item-type'      => 'post_type',
     206                                'menu-item-object'    => 'post',
     207                                'menu-item-object-id' => $post_id,
     208                                'menu-item-title'     => '',
     209                                'menu-item-status'    => 'publish',
     210                        )
     211                );
    206212
    207213                $setting_id = "nav_menu_item[$item_id]";
    208                 $setting = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
     214                $setting    = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
    209215
    210216                $value = $setting->value();
     
    223229                $tax_id = self::factory()->category->create( array( 'name' => 'Salutations' ) );
    224230
    225                 $menu_id = wp_create_nav_menu( 'Menu' );
     231                $menu_id    = wp_create_nav_menu( 'Menu' );
    226232                $item_title = 'Greetings';
    227                 $item_id = wp_update_nav_menu_item( $menu_id, 0, array(
    228                         'menu-item-type' => 'taxonomy',
    229                         'menu-item-object' => 'category',
    230                         'menu-item-object-id' => $tax_id,
    231                         'menu-item-title' => $item_title,
    232                         'menu-item-status' => 'publish',
    233                 ) );
    234 
    235                 $post = get_post( $item_id );
     233                $item_id    = wp_update_nav_menu_item(
     234                        $menu_id, 0, array(
     235                                'menu-item-type'      => 'taxonomy',
     236                                'menu-item-object'    => 'category',
     237                                'menu-item-object-id' => $tax_id,
     238                                'menu-item-title'     => $item_title,
     239                                'menu-item-status'    => 'publish',
     240                        )
     241                );
     242
     243                $post      = get_post( $item_id );
    236244                $menu_item = wp_setup_nav_menu_item( $post );
    237245                $this->assertEquals( $item_title, $menu_item->title );
    238246
    239247                $setting_id = "nav_menu_item[$item_id]";
    240                 $setting = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
     248                $setting    = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
    241249
    242250                $value = $setting->value();
     
    258266
    259267                $menu_id = wp_create_nav_menu( 'Menu' );
    260                 $item_id = wp_update_nav_menu_item( $menu_id, 0, array(
    261                         'menu-item-type'   => 'custom_type',
    262                         'menu-item-object' => 'custom_object',
    263                         'menu-item-title'  => 'Cool beans',
    264                         'menu-item-status' => 'publish',
    265                 ) );
    266 
    267                 $post = get_post( $item_id );
     268                $item_id = wp_update_nav_menu_item(
     269                        $menu_id, 0, array(
     270                                'menu-item-type'   => 'custom_type',
     271                                'menu-item-object' => 'custom_object',
     272                                'menu-item-title'  => 'Cool beans',
     273                                'menu-item-status' => 'publish',
     274                        )
     275                );
     276
     277                $post      = get_post( $item_id );
    268278                $menu_item = wp_setup_nav_menu_item( $post );
    269279
    270280                $setting_id = "nav_menu_item[$item_id]";
    271                 $setting = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
     281                $setting    = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
    272282
    273283                $value = $setting->value();
     
    284294                do_action( 'customize_register', $this->wp_customize );
    285295
    286                 $menu_id = -123;
     296                $menu_id    = -123;
    287297                $post_value = array(
    288                         'name' => 'Secondary',
     298                        'name'        => 'Secondary',
    289299                        'description' => '',
    290                         'parent' => 0,
    291                         'auto_add' => false,
     300                        'parent'      => 0,
     301                        'auto_add'    => false,
    292302                );
    293303                $setting_id = "nav_menu[$menu_id]";
    294                 $menu = new WP_Customize_Nav_Menu_Setting( $this->wp_customize, $setting_id );
     304                $menu       = new WP_Customize_Nav_Menu_Setting( $this->wp_customize, $setting_id );
    295305
    296306                $this->wp_customize->set_post_value( $menu->id, $post_value );
     
    300310
    301311                $post_id = self::factory()->post->create( array( 'post_title' => 'Hello World' ) );
    302                 $item_id = wp_update_nav_menu_item( $menu_id, 0, array(
    303                         'menu-item-type' => 'post_type',
    304                         'menu-item-object' => 'post',
    305                         'menu-item-object-id' => $post_id,
    306                         'menu-item-title' => 'Hello World',
    307                         'menu-item-status' => 'publish',
    308                 ) );
    309 
    310                 $post = get_post( $item_id );
     312                $item_id = wp_update_nav_menu_item(
     313                        $menu_id, 0, array(
     314                                'menu-item-type'      => 'post_type',
     315                                'menu-item-object'    => 'post',
     316                                'menu-item-object-id' => $post_id,
     317                                'menu-item-title'     => 'Hello World',
     318                                'menu-item-status'    => 'publish',
     319                        )
     320                );
     321
     322                $post      = get_post( $item_id );
    311323                $menu_item = wp_setup_nav_menu_item( $post );
    312324
    313325                $setting_id = "nav_menu_item[$item_id]";
    314                 $setting = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
    315                 $value = $setting->value();
     326                $setting    = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
     327                $value      = $setting->value();
    316328                $this->assertEquals( 0, $value['nav_menu_term_id'] );
    317329        }
     
    325337                do_action( 'customize_register', $this->wp_customize );
    326338
    327                 $first_post_id = self::factory()->post->create( array( 'post_title' => 'Hello World' ) );
     339                $first_post_id  = self::factory()->post->create( array( 'post_title' => 'Hello World' ) );
    328340                $second_post_id = self::factory()->post->create( array( 'post_title' => 'Hola Muno' ) );
    329341
    330                 $primary_menu_id = wp_create_nav_menu( 'Primary' );
     342                $primary_menu_id   = wp_create_nav_menu( 'Primary' );
    331343                $secondary_menu_id = wp_create_nav_menu( 'Secondary' );
    332                 $item_title = 'Greetings';
    333                 $item_id = wp_update_nav_menu_item( $primary_menu_id, 0, array(
    334                         'menu-item-type' => 'post_type',
    335                         'menu-item-object' => 'post',
    336                         'menu-item-object-id' => $first_post_id,
    337                         'menu-item-title' => $item_title,
    338                         'menu-item-status' => 'publish',
    339                 ) );
     344                $item_title        = 'Greetings';
     345                $item_id           = wp_update_nav_menu_item(
     346                        $primary_menu_id, 0, array(
     347                                'menu-item-type'      => 'post_type',
     348                                'menu-item-object'    => 'post',
     349                                'menu-item-object-id' => $first_post_id,
     350                                'menu-item-title'     => $item_title,
     351                                'menu-item-status'    => 'publish',
     352                        )
     353                );
    340354                $this->assertNotEmpty( wp_get_nav_menu_items( $primary_menu_id, array( 'post_status' => 'publish,draft' ) ) );
    341355
    342356                $post_value = array(
    343                         'type' => 'post_type',
    344                         'object' => 'post',
    345                         'object_id' => $second_post_id,
    346                         'title' => 'Saludos',
    347                         'status' => 'publish',
     357                        'type'             => 'post_type',
     358                        'object'           => 'post',
     359                        'object_id'        => $second_post_id,
     360                        'title'            => 'Saludos',
     361                        'status'           => 'publish',
    348362                        'nav_menu_term_id' => $secondary_menu_id,
    349363                );
    350364                $setting_id = "nav_menu_item[$item_id]";
    351                 $setting = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
     365                $setting    = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
    352366                $this->wp_customize->set_post_value( $setting_id, $post_value );
    353367                unset( $post_value['nav_menu_term_id'] );
     
    357371                $this->assertNotContains( $item_id, wp_list_pluck( wp_get_nav_menu_items( $primary_menu_id ), 'db_id' ) );
    358372                $menu_items = wp_get_nav_menu_items( $secondary_menu_id );
    359                 $db_ids = wp_list_pluck( $menu_items, 'db_id' );
     373                $db_ids     = wp_list_pluck( $menu_items, 'db_id' );
    360374                $this->assertContains( $item_id, $db_ids );
    361                 $i = array_search( $item_id, $db_ids );
    362                 $updated_item = $menu_items[ $i ];
     375                $i                         = array_search( $item_id, $db_ids );
     376                $updated_item              = $menu_items[ $i ];
    363377                $post_value['post_status'] = $post_value['status'];
    364378                unset( $post_value['status'] );
     
    376390                do_action( 'customize_register', $this->wp_customize );
    377391
    378                 $menu_id = wp_create_nav_menu( 'Primary' );
    379                 $post_id = self::factory()->post->create( array( 'post_title' => 'Hello World' ) );
     392                $menu_id  = wp_create_nav_menu( 'Primary' );
     393                $post_id  = self::factory()->post->create( array( 'post_title' => 'Hello World' ) );
    380394                $item_ids = array();
    381395                for ( $i = 0; $i < 5; $i += 1 ) {
    382                         $item_id = wp_update_nav_menu_item( $menu_id, 0, array(
    383                                 'menu-item-type' => 'post_type',
    384                                 'menu-item-object' => 'post',
    385                                 'menu-item-object-id' => $post_id,
    386                                 'menu-item-title' => "Item $i",
    387                                 'menu-item-status' => 'publish',
    388                                 'menu-item-position' => $i + 1,
    389                         ) );
     396                        $item_id    = wp_update_nav_menu_item(
     397                                $menu_id, 0, array(
     398                                        'menu-item-type'      => 'post_type',
     399                                        'menu-item-object'    => 'post',
     400                                        'menu-item-object-id' => $post_id,
     401                                        'menu-item-title'     => "Item $i",
     402                                        'menu-item-status'    => 'publish',
     403                                        'menu-item-position'  => $i + 1,
     404                                )
     405                        );
    390406                        $item_ids[] = $item_id;
    391407                }
    392408
    393409                $post_value = array(
    394                         'type' => 'post_type',
    395                         'object' => 'post',
    396                         'object_id' => $post_id,
    397                         'title' => 'Inserted item',
    398                         'status' => 'publish',
     410                        'type'             => 'post_type',
     411                        'object'           => 'post',
     412                        'object_id'        => $post_id,
     413                        'title'            => 'Inserted item',
     414                        'status'           => 'publish',
    399415                        'nav_menu_term_id' => $menu_id,
    400                         'position' => count( $item_ids ) + 1,
     416                        'position'         => count( $item_ids ) + 1,
    401417                );
    402418
    403419                $new_item_id = -10;
    404                 $setting_id = "nav_menu_item[$new_item_id]";
    405                 $setting = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
     420                $setting_id  = "nav_menu_item[$new_item_id]";
     421                $setting     = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
    406422                $this->wp_customize->set_post_value( $setting_id, $post_value );
    407423                unset( $post_value['nav_menu_term_id'] );
     
    431447                do_action( 'customize_register', $this->wp_customize );
    432448
    433                 $menu_id = wp_create_nav_menu( 'Primary' );
    434                 $post_id = self::factory()->post->create( array( 'post_title' => 'Hello World' ) );
     449                $menu_id  = wp_create_nav_menu( 'Primary' );
     450                $post_id  = self::factory()->post->create( array( 'post_title' => 'Hello World' ) );
    435451                $item_ids = array();
    436452                for ( $i = 0; $i < 5; $i += 1 ) {
    437                         $item_id = wp_update_nav_menu_item( $menu_id, 0, array(
    438                                 'menu-item-type' => 'post_type',
    439                                 'menu-item-object' => 'post',
    440                                 'menu-item-object-id' => $post_id,
    441                                 'menu-item-title' => "Item $i",
    442                                 'menu-item-status' => 'publish',
    443                                 'menu-item-position' => $i + 1,
    444                         ) );
     453                        $item_id    = wp_update_nav_menu_item(
     454                                $menu_id, 0, array(
     455                                        'menu-item-type'      => 'post_type',
     456                                        'menu-item-object'    => 'post',
     457                                        'menu-item-object-id' => $post_id,
     458                                        'menu-item-title'     => "Item $i",
     459                                        'menu-item-status'    => 'publish',
     460                                        'menu-item-position'  => $i + 1,
     461                                )
     462                        );
    445463                        $item_ids[] = $item_id;
    446464                }
    447465
    448466                $delete_item_id = $item_ids[2];
    449                 $setting_id = "nav_menu_item[$delete_item_id]";
    450                 $setting = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
     467                $setting_id     = "nav_menu_item[$delete_item_id]";
     468                $setting        = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
    451469                $this->wp_customize->set_post_value( $setting_id, false );
    452470
     
    512530
    513531                $unsanitized = array(
    514                         'object_id' => 'bad',
    515                         'object' => '<b>hello</b>',
     532                        'object_id'        => 'bad',
     533                        'object'           => '<b>hello</b>',
    516534                        'menu_item_parent' => 'asdasd',
    517                         'position' => -123,
    518                         'type' => 'custom<b>',
    519                         'title' => '\o/ o\'o Hi<script>unfilteredHtml()</script>',
    520                         'url' => '', // Note the javascript: protocol is checked above and results in a hard validation error, beyond mere sanitization.
    521                         'target' => '" onclick="',
    522                         'attr_title' => '\o/ o\'o <b>bolded</b><script>unfilteredHtml()</script>',
    523                         'description' => '\o/ o\'o <b>Hello world</b><script>unfilteredHtml()</script>',
    524                         'classes' => 'hello " inject="',
    525                         'xfn' => 'hello " inject="',
    526                         'status' => 'forbidden',
    527                         'original_title' => 'Hi<script>unfilteredHtml()</script>',
     535                        'position'         => -123,
     536                        'type'             => 'custom<b>',
     537                        'title'            => '\o/ o\'o Hi<script>unfilteredHtml()</script>',
     538                        'url'              => '', // Note the javascript: protocol is checked above and results in a hard validation error, beyond mere sanitization.
     539                        'target'           => '" onclick="',
     540                        'attr_title'       => '\o/ o\'o <b>bolded</b><script>unfilteredHtml()</script>',
     541                        'description'      => '\o/ o\'o <b>Hello world</b><script>unfilteredHtml()</script>',
     542                        'classes'          => 'hello " inject="',
     543                        'xfn'              => 'hello " inject="',
     544                        'status'           => 'forbidden',
     545                        'original_title'   => 'Hi<script>unfilteredHtml()</script>',
    528546                        'nav_menu_term_id' => 'heilo',
    529                         '_invalid' => false,
     547                        '_invalid'         => false,
    530548                );
    531549
    532550                $expected_sanitized = array(
    533                         'object_id' => 0,
    534                         'object' => 'bhellob',
     551                        'object_id'        => 0,
     552                        'object'           => 'bhellob',
    535553                        'menu_item_parent' => 0,
    536                         'position' => -123,
    537                         'type' => 'customb',
    538                         'title' => current_user_can( 'unfiltered_html' ) ? '\o/ o\'o Hi<script>unfilteredHtml()</script>' : '\o/ o\'o HiunfilteredHtml()',
    539                         'url' => '',
    540                         'target' => 'onclick',
    541                         'attr_title' => current_user_can( 'unfiltered_html' ) ? '\o/ o\'o <b>bolded</b><script>unfilteredHtml()</script>' : '\o/ o\'o <b>bolded</b>unfilteredHtml()',
    542                         'description' => current_user_can( 'unfiltered_html' ) ? '\o/ o\'o <b>Hello world</b><script>unfilteredHtml()</script>' : '\o/ o\'o <b>Hello world</b>unfilteredHtml()',
    543                         'classes' => 'hello  inject',
    544                         'xfn' => 'hello  inject',
    545                         'status' => 'draft',
    546                         'original_title' => 'Hi',
     554                        'position'         => -123,
     555                        'type'             => 'customb',
     556                        'title'            => current_user_can( 'unfiltered_html' ) ? '\o/ o\'o Hi<script>unfilteredHtml()</script>' : '\o/ o\'o HiunfilteredHtml()',
     557                        'url'              => '',
     558                        'target'           => 'onclick',
     559                        'attr_title'       => current_user_can( 'unfiltered_html' ) ? '\o/ o\'o <b>bolded</b><script>unfilteredHtml()</script>' : '\o/ o\'o <b>bolded</b>unfilteredHtml()',
     560                        'description'      => current_user_can( 'unfiltered_html' ) ? '\o/ o\'o <b>Hello world</b><script>unfilteredHtml()</script>' : '\o/ o\'o <b>Hello world</b>unfilteredHtml()',
     561                        'classes'          => 'hello  inject',
     562                        'xfn'              => 'hello  inject',
     563                        'status'           => 'draft',
     564                        'original_title'   => 'Hi',
    547565                        'nav_menu_term_id' => 0,
    548566                );
     
    555573                }
    556574
    557                 $nav_menu_item_id = wp_update_nav_menu_item( $menu_id, 0, wp_slash( array(
    558                         'menu-item-object-id' => $unsanitized['object_id'],
    559                         'menu-item-object' => $unsanitized['object'],
    560                         'menu-item-parent-id' => $unsanitized['menu_item_parent'],
    561                         'menu-item-position' => $unsanitized['position'],
    562                         'menu-item-type' => $unsanitized['type'],
    563                         'menu-item-title' => $unsanitized['title'],
    564                         'menu-item-url' => $unsanitized['url'],
    565                         'menu-item-description' => $unsanitized['description'],
    566                         'menu-item-attr-title' => $unsanitized['attr_title'],
    567                         'menu-item-target' => $unsanitized['target'],
    568                         'menu-item-classes' => $unsanitized['classes'],
    569                         'menu-item-xfn' => $unsanitized['xfn'],
    570                         'menu-item-status' => $unsanitized['status'],
    571                 ) ) );
    572 
    573                 $post = get_post( $nav_menu_item_id );
     575                $nav_menu_item_id = wp_update_nav_menu_item(
     576                        $menu_id, 0, wp_slash(
     577                                array(
     578                                        'menu-item-object-id'   => $unsanitized['object_id'],
     579                                        'menu-item-object'      => $unsanitized['object'],
     580                                        'menu-item-parent-id'   => $unsanitized['menu_item_parent'],
     581                                        'menu-item-position'    => $unsanitized['position'],
     582                                        'menu-item-type'        => $unsanitized['type'],
     583                                        'menu-item-title'       => $unsanitized['title'],
     584                                        'menu-item-url'         => $unsanitized['url'],
     585                                        'menu-item-description' => $unsanitized['description'],
     586                                        'menu-item-attr-title'  => $unsanitized['attr_title'],
     587                                        'menu-item-target'      => $unsanitized['target'],
     588                                        'menu-item-classes'     => $unsanitized['classes'],
     589                                        'menu-item-xfn'         => $unsanitized['xfn'],
     590                                        'menu-item-status'      => $unsanitized['status'],
     591                                )
     592                        )
     593                );
     594
     595                $post          = get_post( $nav_menu_item_id );
    574596                $nav_menu_item = wp_setup_nav_menu_item( clone $post );
    575597
     
    597619                do_action( 'customize_register', $this->wp_customize );
    598620
    599                 $first_post_id = self::factory()->post->create( array( 'post_title' => 'Hello World' ) );
     621                $first_post_id  = self::factory()->post->create( array( 'post_title' => 'Hello World' ) );
    600622                $second_post_id = self::factory()->post->create( array( 'post_title' => 'Hola Muno' ) );
    601623
    602                 $primary_menu_id = wp_create_nav_menu( 'Primary' );
     624                $primary_menu_id   = wp_create_nav_menu( 'Primary' );
    603625                $secondary_menu_id = wp_create_nav_menu( 'Secondary' );
    604                 $item_title = 'Greetings';
    605                 $item_id = wp_update_nav_menu_item( $primary_menu_id, 0, array(
    606                         'menu-item-type' => 'post_type',
    607                         'menu-item-object' => 'post',
    608                         'menu-item-object-id' => $first_post_id,
    609                         'menu-item-title' => $item_title,
    610                         'menu-item-status' => 'publish',
    611                 ) );
     626                $item_title        = 'Greetings';
     627                $item_id           = wp_update_nav_menu_item(
     628                        $primary_menu_id, 0, array(
     629                                'menu-item-type'      => 'post_type',
     630                                'menu-item-object'    => 'post',
     631                                'menu-item-object-id' => $first_post_id,
     632                                'menu-item-title'     => $item_title,
     633                                'menu-item-status'    => 'publish',
     634                        )
     635                );
    612636                $this->assertNotEmpty( wp_get_nav_menu_items( $primary_menu_id, array( 'post_status' => 'publish,draft' ) ) );
    613637
    614638                $post_value = array(
    615                         'type' => 'post_type',
    616                         'object' => 'post',
    617                         'object_id' => $second_post_id,
    618                         'title' => 'Saludos \o/ o\'o',
    619                         'status' => 'publish',
     639                        'type'             => 'post_type',
     640                        'object'           => 'post',
     641                        'object_id'        => $second_post_id,
     642                        'title'            => 'Saludos \o/ o\'o',
     643                        'status'           => 'publish',
    620644                        'nav_menu_term_id' => $secondary_menu_id,
    621645                );
    622646                $setting_id = "nav_menu_item[$item_id]";
    623                 $setting = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
     647                $setting    = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
    624648                $this->wp_customize->set_post_value( $setting_id, $post_value );
    625649                unset( $post_value['nav_menu_term_id'] );
     
    629653                $this->assertNotContains( $item_id, wp_list_pluck( wp_get_nav_menu_items( $primary_menu_id ), 'db_id' ) );
    630654                $menu_items = wp_get_nav_menu_items( $secondary_menu_id );
    631                 $db_ids = wp_list_pluck( $menu_items, 'db_id' );
     655                $db_ids     = wp_list_pluck( $menu_items, 'db_id' );
    632656                $this->assertContains( $item_id, $db_ids );
    633                 $i = array_search( $item_id, $db_ids );
    634                 $updated_item = $menu_items[ $i ];
     657                $i                         = array_search( $item_id, $db_ids );
     658                $updated_item              = $menu_items[ $i ];
    635659                $post_value['post_status'] = $post_value['status'];
    636660                unset( $post_value['status'] );
     
    662686                do_action( 'customize_register', $this->wp_customize );
    663687
    664                 $menu_id = wp_create_nav_menu( 'Primary' );
    665                 $post_id = self::factory()->post->create( array( 'post_title' => 'Hello World' ) );
     688                $menu_id  = wp_create_nav_menu( 'Primary' );
     689                $post_id  = self::factory()->post->create( array( 'post_title' => 'Hello World' ) );
    666690                $item_ids = array();
    667691                for ( $i = 0; $i < 5; $i += 1 ) {
    668                         $item_id = wp_update_nav_menu_item( $menu_id, 0, array(
    669                                 'menu-item-type' => 'post_type',
    670                                 'menu-item-object' => 'post',
    671                                 'menu-item-object-id' => $post_id,
    672                                 'menu-item-title' => "Item $i",
    673                                 'menu-item-status' => 'publish',
    674                                 'menu-item-position' => $i + 1,
    675                         ) );
     692                        $item_id    = wp_update_nav_menu_item(
     693                                $menu_id, 0, array(
     694                                        'menu-item-type'      => 'post_type',
     695                                        'menu-item-object'    => 'post',
     696                                        'menu-item-object-id' => $post_id,
     697                                        'menu-item-title'     => "Item $i",
     698                                        'menu-item-status'    => 'publish',
     699                                        'menu-item-position'  => $i + 1,
     700                                )
     701                        );
    676702                        $item_ids[] = $item_id;
    677703                }
    678704
    679705                $post_value = array(
    680                         'type' => 'post_type',
    681                         'object' => 'post',
    682                         'object_id' => $post_id,
    683                         'title' => 'Inserted item',
    684                         'status' => 'publish',
     706                        'type'             => 'post_type',
     707                        'object'           => 'post',
     708                        'object_id'        => $post_id,
     709                        'title'            => 'Inserted item',
     710                        'status'           => 'publish',
    685711                        'nav_menu_term_id' => $menu_id,
    686                         'position' => count( $item_ids ) + 1,
     712                        'position'         => count( $item_ids ) + 1,
    687713                );
    688714
    689715                $new_item_id = -10;
    690                 $setting_id = "nav_menu_item[$new_item_id]";
    691                 $setting = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
     716                $setting_id  = "nav_menu_item[$new_item_id]";
     717                $setting     = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
    692718                $this->wp_customize->set_post_value( $setting_id, $post_value );
    693719                unset( $post_value['nav_menu_term_id'] );
     
    731757                do_action( 'customize_register', $this->wp_customize );
    732758
    733                 $menu_id = wp_create_nav_menu( 'Primary' );
    734                 $post_id = self::factory()->post->create( array( 'post_title' => 'Hello World' ) );
     759                $menu_id  = wp_create_nav_menu( 'Primary' );
     760                $post_id  = self::factory()->post->create( array( 'post_title' => 'Hello World' ) );
    735761                $item_ids = array();
    736762                for ( $i = 0; $i < 5; $i += 1 ) {
    737                         $item_id = wp_update_nav_menu_item( $menu_id, 0, array(
    738                                 'menu-item-type' => 'post_type',
    739                                 'menu-item-object' => 'post',
    740                                 'menu-item-object-id' => $post_id,
    741                                 'menu-item-title' => "Item $i",
    742                                 'menu-item-status' => 'publish',
    743                                 'menu-item-position' => $i + 1,
    744                         ) );
     763                        $item_id    = wp_update_nav_menu_item(
     764                                $menu_id, 0, array(
     765                                        'menu-item-type'      => 'post_type',
     766                                        'menu-item-object'    => 'post',
     767                                        'menu-item-object-id' => $post_id,
     768                                        'menu-item-title'     => "Item $i",
     769                                        'menu-item-status'    => 'publish',
     770                                        'menu-item-position'  => $i + 1,
     771                                )
     772                        );
    745773                        $item_ids[] = $item_id;
    746774                }
    747775
    748776                $delete_item_id = $item_ids[2];
    749                 $setting_id = "nav_menu_item[$delete_item_id]";
    750                 $setting = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
     777                $setting_id     = "nav_menu_item[$delete_item_id]";
     778                $setting        = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
    751779                $this->wp_customize->set_post_value( $setting_id, false );
    752780
     
    778806        function test_invalid_nav_menu_item() {
    779807                $menu_id = wp_create_nav_menu( 'Primary' );
    780                 register_post_type( 'poem', array(
    781                         'public' => true,
    782                 ) );
    783 
    784                 $post_id = self::factory()->post->create( array( 'post_type' => 'poem', 'post_title' => 'Code is poetry.' ) );
    785                 $post = get_post( $post_id );
    786                 $item_id = wp_update_nav_menu_item( $menu_id, 0, array(
    787                         'menu-item-type' => 'post_type',
    788                         'menu-item-object' => 'poem',
    789                         'menu-item-object-id' => $post_id,
    790                         'menu-item-title' => $post->post_title,
    791                         'menu-item-status' => 'publish',
    792                         'menu-item-position' => 1,
    793                 ) );
     808                register_post_type(
     809                        'poem', array(
     810                                'public' => true,
     811                        )
     812                );
     813
     814                $post_id    = self::factory()->post->create(
     815                        array(
     816                                'post_type'  => 'poem',
     817                                'post_title' => 'Code is poetry.',
     818                        )
     819                );
     820                $post       = get_post( $post_id );
     821                $item_id    = wp_update_nav_menu_item(
     822                        $menu_id, 0, array(
     823                                'menu-item-type'      => 'post_type',
     824                                'menu-item-object'    => 'poem',
     825                                'menu-item-object-id' => $post_id,
     826                                'menu-item-title'     => $post->post_title,
     827                                'menu-item-status'    => 'publish',
     828                                'menu-item-position'  => 1,
     829                        )
     830                );
    794831                $setting_id = "nav_menu_item[$item_id]";
    795832
     
    803840
    804841                $setting = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
    805                 $value = $setting->value();
     842                $value   = $setting->value();
    806843                $this->assertFalse( $value['_invalid'] );
    807844                $value_object = $setting->value_as_wp_post_nav_menu_item();
     
    810847                _unregister_post_type( 'poem' );
    811848                $setting = new WP_Customize_Nav_Menu_Item_Setting( $this->wp_customize, $setting_id );
    812                 $value = $setting->value();
     849                $value   = $setting->value();
    813850                $this->assertTrue( $value['_invalid'] );
    814851                $value_object = $setting->value_as_wp_post_nav_menu_item();
     
    824861                $post_id = self::factory()->post->create();
    825862
    826                 $setting = new WP_Customize_Nav_Menu_Item_Setting(
     863                $setting    = new WP_Customize_Nav_Menu_Item_Setting(
    827864                        $this->wp_customize,
    828865                        'nav_menu_item[123]'
     
    883920        function test_value_as_wp_post_nav_menu_item_term_urls() {
    884921                $term_id = self::factory()->term->create( array( 'taxonomy' => 'category' ) );
    885                 register_post_type( 'press_release', array(
    886                         'has_archive' => true,
    887                 ) );
     922                register_post_type(
     923                        'press_release', array(
     924                                'has_archive' => true,
     925                        )
     926                );
    888927                $post_id = self::factory()->post->create( array( 'post_type' => 'press_release' ) );
    889928
     
    893932                        'nav_menu_item[-1]'
    894933                );
    895                 $this->wp_customize->set_post_value( $setting->id, array(
    896                         'type' => 'taxonomy',
    897                         'object' => 'category',
    898                         'object_id' => $term_id,
    899                         'title' => 'Category',
    900                         'url' => '',
    901                 ) );
     934                $this->wp_customize->set_post_value(
     935                        $setting->id, array(
     936                                'type'      => 'taxonomy',
     937                                'object'    => 'category',
     938                                'object_id' => $term_id,
     939                                'title'     => 'Category',
     940                                'url'       => '',
     941                        )
     942                );
    902943                $setting->preview();
    903944                $nav_menu_item = $setting->value_as_wp_post_nav_menu_item();
     
    909950                        'nav_menu_item[-2]'
    910951                );
    911                 $this->wp_customize->set_post_value( $setting->id, array(
    912                         'type' => 'post_type',
    913                         'object' => 'press_release',
    914                         'object_id' => $post_id,
    915                         'title' => 'PR',
    916                         'url' => '',
    917                 ) );
     952                $this->wp_customize->set_post_value(
     953                        $setting->id, array(
     954                                'type'      => 'post_type',
     955                                'object'    => 'press_release',
     956                                'object_id' => $post_id,
     957                                'title'     => 'PR',
     958                                'url'       => '',
     959                        )
     960                );
    918961                $setting->preview();
    919962                $nav_menu_item = $setting->value_as_wp_post_nav_menu_item();
     
    925968                        'nav_menu_item[-3]'
    926969                );
    927                 $this->wp_customize->set_post_value( $setting->id, array(
    928                         'type' => 'post_type_archive',
    929                         'object' => 'press_release',
    930                         'title' => 'PR',
    931                         'url' => '',
    932                 ) );
     970                $this->wp_customize->set_post_value(
     971                        $setting->id, array(
     972                                'type'   => 'post_type_archive',
     973                                'object' => 'press_release',
     974                                'title'  => 'PR',
     975                                'url'    => '',
     976                        )
     977                );
    933978                $setting->preview();
    934979                $nav_menu_item = $setting->value_as_wp_post_nav_menu_item();
     
    944989        function test_get_original_title() {
    945990                $menu_id = wp_create_nav_menu( 'Menu' );
    946                 register_post_type( 'press_release', array(
    947                         'has_archive' => true,
    948                         'labels' => array(
    949                                 'name' => 'PRs',
    950                                 'singular_name' => 'PR',
    951                                 'archives' => 'All PRs',
    952                         ),
    953                 ) );
     991                register_post_type(
     992                        'press_release', array(
     993                                'has_archive' => true,
     994                                'labels'      => array(
     995                                        'name'          => 'PRs',
     996                                        'singular_name' => 'PR',
     997                                        'archives'      => 'All PRs',
     998                                ),
     999                        )
     1000                );
    9541001                $original_post_title = 'The PR Post';
    955                 $post_id = self::factory()->post->create( array( 'post_type' => 'press_release', 'post_title' => $original_post_title ) );
     1002                $post_id             = self::factory()->post->create(
     1003                        array(
     1004                                'post_type'  => 'press_release',
     1005                                'post_title' => $original_post_title,
     1006                        )
     1007                );
    9561008                $original_term_title = 'The Category Term';
    957                 $term_id = self::factory()->term->create( array( 'taxonomy' => 'category', 'name' => $original_term_title ) );
     1009                $term_id             = self::factory()->term->create(
     1010                        array(
     1011                                'taxonomy' => 'category',
     1012                                'name'     => $original_term_title,
     1013                        )
     1014                );
    9581015
    9591016                // Post: existing nav menu item.
    960                 $nav_menu_item_id = wp_update_nav_menu_item( $menu_id, 0, array(
    961                         'menu-item-object-id' => $post_id,
    962                         'menu-item-type' => 'post_type',
    963                         'menu-item-object' => 'press_release',
    964                         'menu-item-title' => '',
    965                         'menu-item-status' => 'publish',
    966                 ) );
    967                 $setting = new WP_Customize_Nav_Menu_Item_Setting(
     1017                $nav_menu_item_id = wp_update_nav_menu_item(
     1018                        $menu_id, 0, array(
     1019                                'menu-item-object-id' => $post_id,
     1020                                'menu-item-type'      => 'post_type',
     1021                                'menu-item-object'    => 'press_release',
     1022                                'menu-item-title'     => '',
     1023                                'menu-item-status'    => 'publish',
     1024                        )
     1025                );
     1026                $setting          = new WP_Customize_Nav_Menu_Item_Setting(
    9681027                        $this->wp_customize,
    9691028                        'nav_menu_item[' . $nav_menu_item_id . ']'
    9701029                );
    971                 $item_value = $setting->value();
     1030                $item_value       = $setting->value();
    9721031                $this->assertEquals( $original_post_title, $item_value['original_title'] );
    9731032                $this->assertEquals( '', $item_value['title'] );
     
    9851044                        'nav_menu_item[-1]'
    9861045                );
    987                 $this->wp_customize->set_post_value( $setting->id, array(
    988                         'object_id' => $post_id,
    989                         'type' => 'post_type',
    990                         'object' => 'press_release',
    991                         'title' => '',
    992                         'status' => 'publish',
    993                 ) );
     1046                $this->wp_customize->set_post_value(
     1047                        $setting->id, array(
     1048                                'object_id' => $post_id,
     1049                                'type'      => 'post_type',
     1050                                'object'    => 'press_release',
     1051                                'title'     => '',
     1052                                'status'    => 'publish',
     1053                        )
     1054                );
    9941055                $setting->preview();
    9951056                $item_value = $setting->value();
     
    10051066
    10061067                // Term: existing nav menu item.
    1007                 $nav_menu_item_id = wp_update_nav_menu_item( $menu_id, 0, array(
    1008                         'menu-item-object-id' => $term_id,
    1009                         'menu-item-type' => 'taxonomy',
    1010                         'menu-item-object' => 'category',
    1011                         'menu-item-title' => '',
    1012                         'menu-item-status' => 'publish',
    1013                 ) );
    1014                 $setting = new WP_Customize_Nav_Menu_Item_Setting(
     1068                $nav_menu_item_id = wp_update_nav_menu_item(
     1069                        $menu_id, 0, array(
     1070                                'menu-item-object-id' => $term_id,
     1071                                'menu-item-type'      => 'taxonomy',
     1072                                'menu-item-object'    => 'category',
     1073                                'menu-item-title'     => '',
     1074                                'menu-item-status'    => 'publish',
     1075                        )
     1076                );
     1077                $setting          = new WP_Customize_Nav_Menu_Item_Setting(
    10151078                        $this->wp_customize,
    10161079                        'nav_menu_item[' . $nav_menu_item_id . ']'
    10171080                );
    1018                 $item_value = $setting->value();
     1081                $item_value       = $setting->value();
    10191082                $this->assertEquals( $original_term_title, $item_value['original_title'] );
    10201083                $this->assertEquals( '', $item_value['title'] );
     
    10321095                        'nav_menu_item[-2]'
    10331096                );
    1034                 $this->wp_customize->set_post_value( $setting->id, array(
    1035                         'object_id' => $term_id,
    1036                         'type' => 'taxonomy',
    1037                         'object' => 'category',
    1038                         'title' => '',
    1039                         'status' => 'publish',
    1040                 ) );
     1097                $this->wp_customize->set_post_value(
     1098                        $setting->id, array(
     1099                                'object_id' => $term_id,
     1100                                'type'      => 'taxonomy',
     1101                                'object'    => 'category',
     1102                                'title'     => '',
     1103                                'status'    => 'publish',
     1104                        )
     1105                );
    10411106                $setting->preview();
    10421107                $item_value = $setting->value();
     
    10521117
    10531118                // Post Type Archive: existing nav menu item.
    1054                 $nav_menu_item_id = wp_update_nav_menu_item( $menu_id, 0, array(
    1055                         'menu-item-type' => 'post_type_archive',
    1056                         'menu-item-object' => 'press_release',
    1057                         'menu-item-title' => '',
    1058                         'menu-item-status' => 'publish',
    1059                 ) );
    1060                 $setting = new WP_Customize_Nav_Menu_Item_Setting(
     1119                $nav_menu_item_id = wp_update_nav_menu_item(
     1120                        $menu_id, 0, array(
     1121                                'menu-item-type'   => 'post_type_archive',
     1122                                'menu-item-object' => 'press_release',
     1123                                'menu-item-title'  => '',
     1124                                'menu-item-status' => 'publish',
     1125                        )
     1126                );
     1127                $setting          = new WP_Customize_Nav_Menu_Item_Setting(
    10611128                        $this->wp_customize,
    10621129                        'nav_menu_item[' . $nav_menu_item_id . ']'
    10631130                );
    1064                 $item_value = $setting->value();
     1131                $item_value       = $setting->value();
    10651132                $this->assertEquals( get_post_type_object( 'press_release' )->labels->archives, $item_value['original_title'] );
    10661133                $this->assertEquals( '', $item_value['title'] );
     
    10781145                        'nav_menu_item[-3]'
    10791146                );
    1080                 $this->wp_customize->set_post_value( $setting->id, array(
    1081                         'type' => 'post_type_archive',
    1082                         'object' => 'press_release',
    1083                         'title' => '',
    1084                         'status' => 'publish',
    1085                 ) );
     1147                $this->wp_customize->set_post_value(
     1148                        $setting->id, array(
     1149                                'type'   => 'post_type_archive',
     1150                                'object' => 'press_release',
     1151                                'title'  => '',
     1152                                'status' => 'publish',
     1153                        )
     1154                );
    10861155                $setting->preview();
    10871156                $item_value = $setting->value();
     
    11051174        function test_value_as_wp_post_nav_menu_item_with_empty_title() {
    11061175                $original_title = 'The Original Title';
    1107                 $post_id = self::factory()->post->create( array( 'post_title' => $original_title ) );
     1176                $post_id        = self::factory()->post->create( array( 'post_title' => $original_title ) );
    11081177
    11091178                $setting = new WP_Customize_Nav_Menu_Item_Setting(
Note: See TracChangeset for help on using the changeset viewer.