Make WordPress Core

Ticket #56350: 56350-fix.diff

File 56350-fix.diff, 7.9 KB (added by mehulkaklotar, 17 months ago)

contains fixes for the tests failing

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

    diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
    index 571a2fd5f4..91ea83e78b 100644
    a b class WP_REST_Posts_Controller extends WP_REST_Controller { 
    251251                        'search'         => 's',
    252252                        'slug'           => 'post_name__in',
    253253                        'status'         => 'post_status',
     254                        'exact_search'   => 'exact',
    254255                );
    255256
    256257                /*
    class WP_REST_Posts_Controller extends WP_REST_Controller { 
    28342835                        );
    28352836                }
    28362837
     2838                $query_params['exact_search'] = array(
     2839                        'description' => __( 'Use exact search instead of full search.' ),
     2840                        'type'        => 'boolean',
     2841                );
     2842
    28372843                $query_params['offset'] = array(
    28382844                        'description' => __( 'Offset the result set by a specific number of items.' ),
    28392845                        'type'        => 'integer',
  • tests/phpunit/tests/rest-api/rest-attachments-controller.php

    diff --git a/tests/phpunit/tests/rest-api/rest-attachments-controller.php b/tests/phpunit/tests/rest-api/rest-attachments-controller.php
    index 27519610e8..c46e584555 100644
    a b class WP_Test_REST_Attachments_Controller extends WP_Test_REST_Post_Type_Control 
    216216                                'author_exclude',
    217217                                'before',
    218218                                'context',
     219                                'exact_search',
    219220                                'exclude',
    220221                                'include',
    221222                                'media_type',
  • tests/phpunit/tests/rest-api/rest-pages-controller.php

    diff --git a/tests/phpunit/tests/rest-api/rest-pages-controller.php b/tests/phpunit/tests/rest-api/rest-pages-controller.php
    index a6a9cfa3f4..1151c09e53 100644
    a b class WP_Test_REST_Pages_Controller extends WP_Test_REST_Post_Type_Controller_Te 
    7373                                'author_exclude',
    7474                                'before',
    7575                                'context',
     76                                'exact_search',
    7677                                'exclude',
    7778                                'include',
    7879                                'menu_order',
  • tests/phpunit/tests/rest-api/rest-posts-controller.php

    diff --git a/tests/phpunit/tests/rest-api/rest-posts-controller.php b/tests/phpunit/tests/rest-api/rest-posts-controller.php
    index b2a5512fba..0285457f13 100644
    a b class WP_Test_REST_Posts_Controller extends WP_Test_REST_Post_Type_Controller_Te 
    194194                                'categories',
    195195                                'categories_exclude',
    196196                                'context',
     197                                'exact_search',
    197198                                'exclude',
    198199                                'include',
    199200                                'modified_after',
    class WP_Test_REST_Posts_Controller extends WP_Test_REST_Post_Type_Controller_Te 
    749750                }
    750751        }
    751752
     753        /**
     754         * @ticket 56350
     755         */
     756        public function test_get_items_exact_search() {
     757
     758                self::factory()->post->create(
     759                        array(
     760                                'post_title'   => 'Rye',
     761                                'post_content' => 'This is a post about Rye Bread',
     762                                'post_status'  => 'publish',
     763                        )
     764                );
     765
     766                self::factory()->post->create(
     767                        array(
     768                                'post_title'   => 'Types of Bread',
     769                                'post_content' => 'Types of bread are White and Rye Bread',
     770                                'post_status'  => 'publish',
     771                        )
     772                );
     773
     774                $request = new WP_REST_Request( 'GET', '/wp/v2/posts' );
     775
     776                // General search.
     777                $request->set_param( 'search', 'Rye' );
     778                $response = rest_get_server()->dispatch( $request );
     779                $data     = $response->get_data();
     780                $this->assertCount( 2, $data, 'Querying the API without exact_search should return all posts containing the search keyword' );
     781
     782                // Exact search using same search param.
     783                $request->set_param( 'exact_search', true );
     784                $response = rest_get_server()->dispatch( $request );
     785                $data     = $response->get_data();
     786                $this->assertCount( 1, $data, 'Querying the API with exact_search should return posts matching the search keyword' );
     787
     788                // Note that "exact_search" is still true.
     789                $request->set_param( 'search', 'Rye Bread' );
     790                $response = rest_get_server()->dispatch( $request );
     791                $data     = $response->get_data();
     792                $this->assertCount( 0, $data, 'Querying the API with exact_search should return posts matching the search keyword' );
     793        }
     794
    752795        public function test_get_items_order_and_orderby() {
    753796                self::factory()->post->create(
    754797                        array(
  • tests/qunit/fixtures/wp-api-generated.js

    diff --git a/tests/qunit/fixtures/wp-api-generated.js b/tests/qunit/fixtures/wp-api-generated.js
    index 896322ed48..b31f3b1d8e 100644
    a b mockedApiResponse.Schema = { 
    362362                            "default": [],
    363363                            "required": false
    364364                        },
     365                        "exact_search": {
     366                            "description": "Use exact search instead of full search.",
     367                            "type": "boolean",
     368                            "required": false
     369                        },
    365370                        "offset": {
    366371                            "description": "Offset the result set by a specific number of items.",
    367372                            "type": "integer",
    mockedApiResponse.Schema = { 
    17001705                            "type": "integer",
    17011706                            "required": false
    17021707                        },
     1708                        "exact_search": {
     1709                            "description": "Use exact search instead of full search.",
     1710                            "type": "boolean",
     1711                            "required": false
     1712                        },
    17031713                        "offset": {
    17041714                            "description": "Offset the result set by a specific number of items.",
    17051715                            "type": "integer",
    mockedApiResponse.Schema = { 
    27822792                            "default": [],
    27832793                            "required": false
    27842794                        },
     2795                        "exact_search": {
     2796                            "description": "Use exact search instead of full search.",
     2797                            "type": "boolean",
     2798                            "required": false
     2799                        },
    27852800                        "offset": {
    27862801                            "description": "Offset the result set by a specific number of items.",
    27872802                            "type": "integer",
    mockedApiResponse.Schema = { 
    35093524                            "default": [],
    35103525                            "required": false
    35113526                        },
     3527                        "exact_search": {
     3528                            "description": "Use exact search instead of full search.",
     3529                            "type": "boolean",
     3530                            "required": false
     3531                        },
    35123532                        "offset": {
    35133533                            "description": "Offset the result set by a specific number of items.",
    35143534                            "type": "integer",
    mockedApiResponse.Schema = { 
    43064326                            "default": [],
    43074327                            "required": false
    43084328                        },
     4329                        "exact_search": {
     4330                            "description": "Use exact search instead of full search.",
     4331                            "type": "boolean",
     4332                            "required": false
     4333                        },
    43094334                        "offset": {
    43104335                            "description": "Offset the result set by a specific number of items.",
    43114336                            "type": "integer",
    mockedApiResponse.Schema = { 
    64576482                            "default": [],
    64586483                            "required": false
    64596484                        },
     6485                        "exact_search": {
     6486                            "description": "Use exact search instead of full search.",
     6487                            "type": "boolean",
     6488                            "required": false
     6489                        },
    64606490                        "offset": {
    64616491                            "description": "Offset the result set by a specific number of items.",
    64626492                            "type": "integer",