Make WordPress Core

Ticket #41252: 41252.0.diff

File 41252.0.diff, 2.1 KB (added by westonruter, 9 years ago)

https://github.com/xwp/wordpress-develop/pull/238

  • src/wp-includes/class-wp-customize-manager.php

    diff --git src/wp-includes/class-wp-customize-manager.php src/wp-includes/class-wp-customize-manager.php
    index 62d587bf6a..9330d2789b 100644
    final class WP_Customize_Manager { 
    22632263                        }
    22642264
    22652265                        $existing_changeset_data = $this->get_changeset_post_data( $changeset_post_id );
     2266                        if ( is_wp_error( $existing_changeset_data ) ) {
     2267                                return $existing_changeset_data;
     2268                        }
    22662269                }
    22672270
    22682271                // Fail if attempting to publish but publish hook is missing.
  • tests/phpunit/tests/customize/manager.php

    diff --git tests/phpunit/tests/customize/manager.php tests/phpunit/tests/customize/manager.php
    index c141e38ff5..7aaa2996cb 100644
    class Tests_WP_Customize_Manager extends WP_UnitTestCase { 
    12921292        }
    12931293
    12941294        /**
     1295         * Ensure that save_changeset_post method bails updating an underlying changeset which is invalid.
     1296         *
     1297         * @ticket 41252
     1298         * @covers WP_Customize_Manager::save_changeset_post
     1299         * @covers WP_Customize_Manager::get_changeset_post_data
     1300         */
     1301        function test_save_changeset_post_for_bad_changeset() {
     1302                $uuid = wp_generate_uuid4();
     1303                $post_id = wp_insert_post( array(
     1304                        'post_type' => 'customize_changeset',
     1305                        'post_content' => 'INVALID_JSON',
     1306                        'post_name' => $uuid,
     1307                        'post_status' => 'auto-draft',
     1308                        'post_date' => gmdate( 'Y-m-d H:i:s', strtotime( '-3 days' ) ),
     1309                ) );
     1310                $manager = $this->create_test_manager( $uuid );
     1311                $args = array(
     1312                        'data' => array(
     1313                                'blogname' => array(
     1314                                        'value' => 'Test',
     1315                                ),
     1316                        ),
     1317                );
     1318
     1319                $r = $manager->save_changeset_post( $args );
     1320                $this->assertInstanceOf( 'WP_Error', $r );
     1321                $this->assertEquals( 'json_parse_error', $r->get_error_code() );
     1322
     1323                wp_update_post( array(
     1324                        'ID' => $post_id,
     1325                        'post_content' => 'null',
     1326                ) );
     1327                $r = $manager->save_changeset_post( $args );
     1328                $this->assertInstanceOf( 'WP_Error', $r );
     1329                $this->assertEquals( 'expected_array', $r->get_error_code() );
     1330        }
     1331
     1332        /**
    12951333         * Register scratchpad setting.
    12961334         *
    12971335         * @param WP_Customize_Manager $wp_customize Manager.