Make WordPress Core

Ticket #34594: 34594.1.diff

File 34594.1.diff, 1.9 KB (added by westonruter, 10 years ago)
  • src/wp-includes/class-wp-customize-manager.php

     
    13021302         */
    13031303        protected function _cmp_priority( $a, $b ) {
    13041304                if ( $a->priority === $b->priority ) {
    1305                         return $a->instance_number - $a->instance_number;
     1305                        return $a->instance_number - $b->instance_number;
    13061306                } else {
    13071307                        return $a->priority - $b->priority;
    13081308                }
  • tests/phpunit/tests/customize/manager.php

     
    397397                $this->assertInstanceOf( 'WP_Customize_Manager', $customize_manager );
    398398                return array( 'nav_menus' );
    399399        }
     400
     401        /**
     402         * @ticket 30225
     403         * @ticket 34594
     404         */
     405        function test_prepare_controls_stable_sorting() {
     406                $manager = new WP_Customize_Manager();
     407                $manager->register_controls();
     408                $section_id = 'foo-section';
     409                wp_set_current_user( self::factory()->user->create( array( 'role' => 'administrator' ) ) );
     410                $manager->add_section( $section_id, array(
     411                        'title'      => 'Section',
     412                        'priority'   => 1,
     413                ) );
     414
     415                $added_control_ids = array();
     416                $count = 9;
     417                for ( $i = 0; $i < $count; $i += 1 ) {
     418                        $id = 'sort-test-' . $i;
     419                        $added_control_ids[] = $id;
     420                        $manager->add_setting( $id );
     421                        $control = new WP_Customize_Control( $manager, $id, array(
     422                                'section' => $section_id,
     423                                'priority' => 1,
     424                                'setting' => $id,
     425                        ) );
     426                        $manager->add_control( $control );
     427                }
     428
     429                $manager->prepare_controls();
     430
     431                $sorted_control_ids = wp_list_pluck( $manager->get_section( $section_id )->controls, 'id' );
     432                $this->assertEquals( $added_control_ids, $sorted_control_ids );
     433        }
    400434}