Making WordPress.org

Changeset 11184


Ignore:
Timestamp:
08/18/2021 03:23:33 PM (4 years ago)
Author:
iandunn
Message:

Patterns: Add tests for ElasticSearch matches.

See https://github.com/WordPress/pattern-directory/pull/44

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/api.wordpress.org/public_html/patterns/1.0/tests/test-index.php

    r11171 r11184  
    173173     * @param string $search_query
    174174     */
    175     public function test_search_patterns( $search_term, $match_expected, $expected_post_ids ) : void {
     175    public function test_search_patterns( $search_term, $locale, $match_expected, $expected_post_ids ) : void {
    176176        // wrap term in double quotes to match exact phrase.
    177         $response = send_request( '/patterns/1.0/?&search="' . $search_term . '"&pattern-keywords=11&locale=en_US' );
     177        $response = send_request( '/patterns/1.0/?&search="' . $search_term . '"&pattern-keywords=11&locale=' . $locale );
    178178
    179179        if ( $match_expected ) {
     
    203203            'match title only' => array(
    204204                'search_term'       => 'side by side',
     205                'locale'            => 'en_US',
    205206                'match_expected'    => true,
    206207                'expected_post_ids' => array( 19 ),
    207208            ),
    208209
    209             // todo Enable this once https://github.com/WordPress/pattern-directory/issues/28 is done
    210 //          'match description' => array(
    211 //              'search_term'    => 'bright gradient background',
    212 //              'match_expected' => true,
    213 //          ),
     210            // Should find posts that have the term in the description, but _not_ in the title.
     211            'match description only' => array(
     212                'search_term'       => 'quote on top',
     213                'locale'            => 'en_US',
     214                'match_expected'    => true,
     215                'expected_post_ids' => array( 185 ),
     216            ),
     217
     218
     219            "don't match post_content" => array(
     220                'search_term'       => 'The voyage had begun', // Post ID 29.
     221                'locale'            => 'en_US',
     222                'match_expected'    => false,
     223                'expected_post_ids' => false,
     224            ),
    214225
    215226            'no matches' => array(
    216227                'search_term'       => 'Supercalifragilisticexpialidocious',
    217                 'match_expected'    => false,
    218                 'expected_post_ids' => false,
     228                'locale'            => 'en_US',
     229                'match_expected'    => false,
     230                'expected_post_ids' => false,
     231            ),
     232
     233            "don't match unlisted posts" => array(
     234                'search_term'       => 'one filled and one outlined', // Post ID 5.
     235                'locale'            => 'en_US',
     236                'match_expected'    => false,
     237                'expected_post_ids' => false,
     238            ),
     239
     240            "don't match trashed posts" => array(
     241                'search_term'       => 'i18n test', // Post ID 866.
     242                'locale'            => 'es_MX',
     243                'match_expected'    => false,
     244                'expected_post_ids' => false,
     245            ),
     246
     247            // The Core keyword (11) is hardcoded in `test_search_patterns()`, so don't need to specify it here.
     248            "only match Core posts" => array(
     249                'search_term'       => 'two buttons', // Post ID 727.
     250                'locale'            => 'en_US',
     251                'match_expected'    => false,
     252                'expected_post_ids' => false,
     253            ),
     254
     255            "match spanish posts for es_MX request" => array(
     256                'search_term'       => 'compensación',
     257                'locale'            => 'es_MX',
     258                'match_expected'    => true,
     259                'expected_post_ids' => array( 2127 ),
     260            ),
     261
     262            "don't match nl_NL post for en_US request" => array(
     263                'search_term'       => 'verschoven', // Post ID 2226.
     264                'locale'            => 'en_US',
     265                'match_expected'    => false,
     266                'expected_post_ids' => false,
     267            ),
     268
     269            // Latin was chosen because it's unlikely to ever be translated
     270            // @link https://translate.wordpress.org/projects/patterns/core/
     271            "untranslated locales should have en_US posts as a fallback" => array(
     272                'search_term'       => 'offset images', // Post ID 2226.
     273                'locale'            => 'la',
     274                'match_expected'    => true,
     275                'expected_post_ids' => array( 201 ),
    219276            ),
    220277        );
Note: See TracChangeset for help on using the changeset viewer.