Make WordPress Core


Ignore:
Timestamp:
10/11/2017 05:41:14 AM (9 years ago)
Author:
westonruter
Message:

Customize: Introduce WP_Customize_Manager::trash_changeset_post() to reduce duplication and ensure proper changeset trashing logic.

Trashing a changeset via wp_trash_post() does not have the desired result since it mutates post_content (via Kses) and the post_name (even though it is a UUID).

Props dlh.
See #39896, #42030.
Fixes #42175.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/customize/manager.php

    r41788 r41824  
    17111711
    17121712    /**
     1713     * Test that trash_changeset_post() trashes a changeset post with its name and content preserved.
     1714     *
     1715     * @covers WP_Customize_Manager::trash_changeset_post
     1716     */
     1717    public function test_trash_changeset_post_preserves_properties() {
     1718        $args = array(
     1719            'post_type' => 'customize_changeset',
     1720            'post_content' => wp_json_encode( array(
     1721                'blogname' => array(
     1722                    'value' => 'Test',
     1723                ),
     1724            ) ),
     1725            'post_name' => wp_generate_uuid4(),
     1726            'post_status' => 'draft',
     1727        );
     1728
     1729        $post_id = wp_insert_post( $args );
     1730
     1731        $manager = $this->create_test_manager( $args['post_name'] );
     1732        $manager->trash_changeset_post( $post_id );
     1733
     1734        $post = get_post( $post_id );
     1735
     1736        $this->assertSame( 'trash', get_post_status( $post_id ) );
     1737        $this->assertSame( $args['post_name'], $post->post_name );
     1738        $this->assertSame( $args['post_content'], $post->post_content );
     1739    }
     1740
     1741    /**
    17131742     * Register scratchpad setting.
    17141743     *
Note: See TracChangeset for help on using the changeset viewer.