Make WordPress Core


Ignore:
Timestamp:
09/16/2022 03:10:58 PM (4 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.