WordPress.org

Make WordPress Core


Ignore:
Timestamp:
11/03/2016 01:45:48 AM (5 years ago)
Author:
joehoyle
Message:

REST API: Support querying for multiple post statuses.

Multiple post statuses can be specified by the usual CSV or array-propper format.

Props jnylen0, kadamwhite, websupporter.
Fixes #38420.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/rest-api/rest-attachments-controller.php

    r39041 r39104  
    328328    }
    329329
     330    public function test_get_items_multiple_statuses() {
     331        // Logged out users can't make the request
     332        wp_set_current_user( 0 );
     333        $attachment_id1 = $this->factory->attachment->create_object( $this->test_file, 0, array(
     334            'post_mime_type' => 'image/jpeg',
     335            'post_excerpt'   => 'A sample caption',
     336            'post_status'    => 'private',
     337        ) );
     338        $attachment_id2 = $this->factory->attachment->create_object( $this->test_file, 0, array(
     339            'post_mime_type' => 'image/jpeg',
     340            'post_excerpt'   => 'A sample caption',
     341            'post_status'    => 'trash',
     342        ) );
     343        $request = new WP_REST_Request( 'GET', '/wp/v2/media' );
     344        $request->set_param( 'status', array( 'private', 'trash' ) );
     345        $response = $this->server->dispatch( $request );
     346        $this->assertErrorResponse( 'rest_invalid_param', $response, 400 );
     347        // Properly authorized users can make the request
     348        wp_set_current_user( self::$editor_id );
     349        $response = $this->server->dispatch( $request );
     350        $this->assertEquals( 200, $response->get_status() );
     351        $data = $response->get_data();
     352        $this->assertEquals( 2, count( $data ) );
     353        $ids = array(
     354            $data[0]['id'],
     355            $data[1]['id'],
     356        );
     357        sort( $ids );
     358        $this->assertEquals( array( $attachment_id1, $attachment_id2 ), $ids );
     359    }
     360
    330361    public function test_get_items_invalid_date() {
    331362        $request = new WP_REST_Request( 'GET', '/wp/v2/media' );
Note: See TracChangeset for help on using the changeset viewer.