Make WordPress Core

Ticket #43739: 43739.3.diff

File 43739.3.diff, 3.1 KB (added by danielbachhuber, 6 years ago)

Change attribute to 'viewable'; explicit true test for Posts and Pages

  • src/wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php

    diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php
    index 203cea2530..de0ccab598 100644
    a b class WP_REST_Post_Types_Controller extends WP_REST_Controller { 
    159159                        'capabilities' => $post_type->cap,
    160160                        'description'  => $post_type->description,
    161161                        'hierarchical' => $post_type->hierarchical,
     162                        'viewable'     => is_post_type_viewable( $post_type ),
    162163                        'labels'       => $post_type->labels,
    163164                        'name'         => $post_type->label,
    164165                        'slug'         => $post_type->name,
    class WP_REST_Post_Types_Controller extends WP_REST_Controller { 
    229230                                        'context'     => array( 'view', 'edit' ),
    230231                                        'readonly'    => true,
    231232                                ),
     233                                'viewable'     => array(
     234                                        'description' => __( 'Whether or not the post type can be viewed.' ),
     235                                        'type'        => 'boolean',
     236                                        'context'     => array( 'edit' ),
     237                                        'readonly'    => true,
     238                                ),
    232239                                'labels'       => array(
    233240                                        'description' => __( 'Human-readable labels for the post type for various contexts.' ),
    234241                                        'type'        => 'object',
  • tests/phpunit/tests/rest-api/rest-post-types-controller.php

    diff --git a/tests/phpunit/tests/rest-api/rest-post-types-controller.php b/tests/phpunit/tests/rest-api/rest-post-types-controller.php
    index dfb233bf2e..8ef7f4202c 100644
    a b class WP_Test_REST_Post_Types_Controller extends WP_Test_REST_Controller_Testcas 
    128128                $response   = rest_get_server()->dispatch( $request );
    129129                $data       = $response->get_data();
    130130                $properties = $data['schema']['properties'];
    131                 $this->assertEquals( 9, count( $properties ) );
     131                $this->assertEquals( 10, count( $properties ) );
    132132                $this->assertArrayHasKey( 'capabilities', $properties );
    133133                $this->assertArrayHasKey( 'description', $properties );
    134134                $this->assertArrayHasKey( 'hierarchical', $properties );
     135                $this->assertArrayHasKey( 'viewable', $properties );
    135136                $this->assertArrayHasKey( 'labels', $properties );
    136137                $this->assertArrayHasKey( 'name', $properties );
    137138                $this->assertArrayHasKey( 'slug', $properties );
    class WP_Test_REST_Post_Types_Controller extends WP_Test_REST_Controller_Testcas 
    191192                if ( 'edit' === $context ) {
    192193                        $this->assertEquals( $post_type_obj->cap, $data['capabilities'] );
    193194                        $this->assertEquals( $post_type_obj->labels, $data['labels'] );
     195                        if ( in_array( $post_type_obj->name, array( 'post', 'page' ), true ) ) {
     196                                $viewable = true;
     197                        } else {
     198                                $viewable = is_post_type_viewable( $post_type_obj );
     199                        }
     200                        $this->assertEquals( $viewable, $data['viewable'] );
    194201                        $this->assertEquals( get_all_post_type_supports( $post_type_obj->name ), $data['supports'] );
    195202                } else {
    196203                        $this->assertFalse( isset( $data['capabilities'] ) );
     204                        $this->assertFalse( isset( $data['viewable'] ) );
    197205                        $this->assertFalse( isset( $data['labels'] ) );
    198206                        $this->assertFalse( isset( $data['supports'] ) );
    199207                }