Make WordPress Core

Ticket #31271: 31271.4.diff

File 31271.4.diff, 2.6 KB (added by DrewAPicture, 10 years ago)

Tests for 'default'

  • src/wp-includes/post-template.php

     
    16291629 * Whether currently in a page template.
    16301630 *
    16311631 * This template tag allows you to determine if you are in a page template.
    1632  * You can optionally provide a template name and then the check will be
    1633  * specific to that template.
     1632 * You can optionally provide a template name or array of template names
     1633 * and then the check will be specific to that template.
    16341634 *
    16351635 * @since 2.5.0
     1636 * @since 4.2.0 The `$template` parameter was changed to accept an array of page templates.
    16361637 *
    1637  * @param string $template The specific template name if specific matching is required.
     1638 * @param string|array $template The specific template name or array of templates to match.
    16381639 * @return bool True on success, false on failure.
    16391640 */
    16401641function is_page_template( $template = '' ) {
     
    16491650        if ( $template == $page_template )
    16501651                return true;
    16511652
     1653        if ( is_array( $template ) ) {
     1654                if ( in_array( 'default', $template, true ) && ! $page_template
     1655                        || in_array( $page_template, $template, true )
     1656                ) {
     1657                        return true;
     1658                }
     1659        }
     1660
    16521661        if ( 'default' == $template && ! $page_template )
    16531662                return true;
    16541663
  • tests/phpunit/tests/query/conditionals.php

     
    960960                $this->assertFalse( $q->is_page( $p2_name ) );
    961961                $this->assertFalse( $q->is_page( $p2 ) );
    962962        }
     963
     964        function test_is_page_template() {
     965                $post_id = $this->factory->post->create( array( 'post_type' => 'page' ) );
     966                update_post_meta($post_id, '_wp_page_template', 'example.php');
     967                $this->go_to( "/?page_id=$post_id" );
     968                $this->assertTrue( is_page_template( 'example.php' ) );
     969        }
     970
     971        function test_is_page_template_default() {
     972                $post_id = $this->factory->post->create( array( 'post_type' => 'page' ) );
     973                $this->go_to( "/?page_id=$post_id" );
     974                $this->assertTrue( is_page_template( 'default' ) );
     975                $this->assertTrue( is_page_template( array( 'random', 'default' ) ) );
     976        }
     977
     978        /**
     979         * @ticket 31271
     980         */
     981        function test_is_page_template_array() {
     982                $post_id = $this->factory->post->create( array( 'post_type' => 'page' ) );
     983                update_post_meta($post_id, '_wp_page_template', 'example.php');
     984                $this->go_to( "/?page_id=$post_id" );
     985                $this->assertFalse( is_page_template( array( 'test.php' ) ) );
     986                $this->assertTrue( is_page_template( array('test.php', 'example.php') ) );
     987        }
    963988}