From db5f9800d4fef6bee5205639e28551cbda9a4292 Mon Sep 17 00:00:00 2001 From: Andrew Nacin Date: Wed, 4 Sep 2013 17:43:29 +0000 Subject: [PATCH] add_theme_support( 'html5' ) now defaults to comment-list, comment-form, and search-form. This was the implicit case in 3.6.0, modified in [25193]. see #24932. git-svn-id: https://develop.svn.wordpress.org/trunk@25235 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/theme.php | 6 +++++- tests/phpunit/tests/theme/support.php | 29 +++++++++++++++++++-------- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/wp-includes/theme.php b/src/wp-includes/theme.php index 51ef24ada8..a16d8c5e14 100644 --- a/src/wp-includes/theme.php +++ b/src/wp-includes/theme.php @@ -1273,8 +1273,12 @@ function add_theme_support( $feature ) { case 'html5' : // You can't just pass 'html5', you need to pass an array of types. - if ( ! is_array( $args[0] ) ) + if ( empty( $args[0] ) ) { + $args = array( 0 => array( 'comment-list', 'comment-form', 'search-form' ) ); + } elseif ( ! is_array( $args[0] ) ) { + _doing_it_wrong( "add_theme_support( 'html5' )", 'You need to pass an array of types.', '3.6.1' ); return false; + } // Calling 'html5' again merges, rather than overwrites. if ( isset( $_wp_theme_features['html5'] ) ) diff --git a/tests/phpunit/tests/theme/support.php b/tests/phpunit/tests/theme/support.php index 08666145a2..47f3698525 100644 --- a/tests/phpunit/tests/theme/support.php +++ b/tests/phpunit/tests/theme/support.php @@ -85,9 +85,12 @@ class Tests_Theme_Support extends WP_UnitTestCase { remove_theme_support( 'html5' ); $this->assertFalse( current_theme_supports( 'html5' ) ); $this->assertFalse( current_theme_supports( 'html5', 'comment-form' ) ); - $this->assertFalse( add_theme_support( 'html5' ) ); - $this->assertFalse( current_theme_supports( 'html5' ) ); - $this->assertFalse( current_theme_supports( 'html5', 'comment-form' ) ); + $this->assertNotSame( false, add_theme_support( 'html5' ) ); + $this->assertTrue( current_theme_supports( 'html5' ) ); + $this->assertTrue( current_theme_supports( 'html5', 'comment-form' ) ); + $this->assertTrue( current_theme_supports( 'html5', 'comment-list' ) ); + $this->assertTrue( current_theme_supports( 'html5', 'search-form' ) ); + $this->assertFalse( current_theme_supports( 'html5', 'something-else' ) ); } /** @@ -106,19 +109,29 @@ class Tests_Theme_Support extends WP_UnitTestCase { $this->assertTrue( current_theme_supports( 'html5' ) ); // It appends, rather than replaces. - $this->assertFalse( current_theme_supports( 'html5', 'comments-list' ) ); - $this->assertNotSame( false, add_theme_support( 'html5', array( 'comments-list' ) ) ); + $this->assertFalse( current_theme_supports( 'html5', 'comment-list' ) ); + $this->assertNotSame( false, add_theme_support( 'html5', array( 'comment-list' ) ) ); $this->assertTrue( current_theme_supports( 'html5', 'comment-form' ) ); - $this->assertTrue( current_theme_supports( 'html5', 'comments-list' ) ); + $this->assertTrue( current_theme_supports( 'html5', 'comment-list' ) ); $this->assertFalse( current_theme_supports( 'html5', 'search-form' ) ); // Removal is all or nothing. $this->assertTrue( remove_theme_support( 'html5' ) ); - $this->assertFalse( current_theme_supports( 'html5', 'comments-list' ) ); - $this->assertFalse( current_theme_supports( 'html5', 'comments-form' ) ); + $this->assertFalse( current_theme_supports( 'html5', 'comment-list' ) ); + $this->assertFalse( current_theme_supports( 'html5', 'comment-form' ) ); $this->assertFalse( current_theme_supports( 'html5', 'search-form' ) ); } + /** + * @ticket 24932 + */ + function test_supports_html5_invalid() { + remove_theme_support( 'html5' ); + $this->assertFalse( add_theme_support( 'html5', 'comment-form' ) ); + $this->assertFalse( current_theme_supports( 'html5', 'comment-form' ) ); + $this->assertFalse( current_theme_supports( 'html5' ) ); + } + function supports_foobar( $yesno, $args, $feature ) { if ( $args[0] == $feature[0] ) return true;