Make WordPress Core


Ignore:
Timestamp:
10/22/2018 07:57:07 PM (8 years ago)
Author:
danielbachhuber
Message:

Themes: Introduce responsive embeds support.

Responsive embeds is a way for a theme to opt in to WordPress dynamically scaling the width/height of an embed. When a theme supports responsive embeds, a wp-embed-responsive class is added to the <body> tag. This information is also presented through the REST API for clients to respect.

Props desrosj.
Fixes #45125.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/5.0/tests/phpunit/tests/rest-api/rest-themes-controller.php

    r43735 r43790  
    190190                $this->assertArrayHasKey( 'theme_supports', $properties );
    191191
    192                 $this->assertEquals( 2, count( $properties['theme_supports']['properties'] ) );
     192                $this->assertEquals( 3, count( $properties['theme_supports']['properties'] ) );
    193193                $this->assertArrayHasKey( 'formats', $properties['theme_supports']['properties'] );
    194194                $this->assertArrayHasKey( 'post-thumbnails', $properties['theme_supports']['properties'] );
     195                $this->assertArrayHasKey( 'responsive-embeds', $properties['theme_supports']['properties'] );
    195196        }
    196197
     
    221222                $this->assertTrue( isset( $result[0]['theme_supports']['formats'] ) );
    222223                $this->assertSame( array( 'standard', 'aside', 'video' ), $result[0]['theme_supports']['formats'] );
     224        }
     225
     226        /**
     227         * Test when a theme does not support responsive embeds.
     228         *
     229         * @ticket 45016
     230         */
     231        public function test_theme_supports_responsive_embeds_false() {
     232                remove_theme_support( 'responsive-embeds' );
     233                $response = self::perform_active_theme_request();
     234
     235                $result = $response->get_data();
     236                $this->assertTrue( isset( $result[0]['theme_supports'] ) );
     237                $this->assertTrue( isset( $result[0]['theme_supports']['responsive-embeds'] ) );
     238                $this->assertFalse( $result[0]['theme_supports']['responsive-embeds'] );
     239        }
     240
     241        /**
     242         * Test when a theme supports responsive embeds.
     243         *
     244         * @ticket 45016
     245         */
     246        public function test_theme_supports_responsive_embeds_true() {
     247                remove_theme_support( 'responsive-embeds' );
     248                add_theme_support( 'responsive-embeds' );
     249                $response = self::perform_active_theme_request();
     250                $result   = $response->get_data();
     251                $this->assertTrue( isset( $result[0]['theme_supports'] ) );
     252                $this->assertTrue( $result[0]['theme_supports']['responsive-embeds'] );
    223253        }
    224254
Note: See TracChangeset for help on using the changeset viewer.