Make WordPress Core


Ignore:
Timestamp:
09/16/2022 03:10:58 PM (3 years ago)
Author:
SergeyBiryukov
Message:

Tests: Update the test for respecting the post type in get_block_templates().

  • Use assertSameSets() to avoid a failure when array items are returned in different order (example).
  • Move the test to a more appropriate place now that the function has its own test class.
  • Rename the test method to match the function name.

Follow-up to [52062], [53927], [54184].

See #55881.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/block-template-utils.php

    r54184 r54187  
    1313class Tests_Block_Template_Utils extends WP_UnitTestCase {
    1414    private static $post;
    15     private static $custom_single_post_template_post;
    1615    private static $template_part_post;
    1716    private static $test_theme = 'block-theme';
     
    5251        wp_set_post_terms( self::$post->ID, self::$test_theme, 'wp_theme' );
    5352
    54         // Set up template post.
    55         $args                                   = array(
    56             'post_type'    => 'wp_template',
    57             'post_name'    => 'custom-single-post-template',
    58             'post_title'   => 'Custom Single Post template (modified)',
    59             'post_content' => 'Content',
    60             'post_excerpt' => 'Description of custom single post template',
    61             'tax_input'    => array(
    62                 'wp_theme' => array(
    63                     self::$test_theme,
    64                 ),
    65             ),
    66         );
    67         self::$custom_single_post_template_post = self::factory()->post->create_and_get( $args );
    68         wp_set_post_terms( self::$custom_single_post_template_post->ID, self::$test_theme, 'wp_theme' );
    69 
    7053        // Set up template part post.
    7154        $template_part_args       = array(
     
    9679    public static function wpTearDownAfterClass() {
    9780        wp_delete_post( self::$post->ID );
    98         wp_delete_post( self::$custom_single_post_template_post->ID );
    9981    }
    10082
     
    338320        );
    339321        */
    340     }
    341 
    342     /**
    343      * @dataProvider data_get_block_template_should_respect_posttypes_property
    344      * @ticket 55881
    345      * @covers ::get_block_templates
    346      *
    347      * @param string $post_type Post type for query.
    348      * @param array  $expected  Expected template IDs.
    349      */
    350     public function test_get_block_template_should_respect_posttypes_property( $post_type, $expected ) {
    351         $templates = get_block_templates( array( 'post_type' => $post_type ) );
    352 
    353         $this->assertSame(
    354             $expected,
    355             $this->get_template_ids( $templates )
    356         );
    357     }
    358 
    359     /**
    360      * Data provider.
    361      *
    362      * @return array
    363      */
    364     public function data_get_block_template_should_respect_posttypes_property() {
    365         return array(
    366             'post' => array(
    367                 'post_type' => 'post',
    368                 'expected'  => array(
    369                     'block-theme//my_template',
    370                     'block-theme//custom-single-post-template',
    371                 ),
    372             ),
    373             'page' => array(
    374                 'post_type' => 'page',
    375                 'expected'  => array(
    376                     'block-theme//my_template',
    377                     'block-theme//page-home',
    378                 ),
    379             ),
    380         );
    381     }
    382 
    383     /**
    384      * Gets the template IDs from the given array.
    385      *
    386      * @param object[] $templates Array of template objects to parse.
    387      * @return string[] The template IDs.
    388      */
    389     private function get_template_ids( $templates ) {
    390         return array_map(
    391             static function( $template ) {
    392                 return $template->id;
    393             },
    394             $templates
    395         );
    396322    }
    397323
Note: See TracChangeset for help on using the changeset viewer.