Changeset 59415
- Timestamp:
- 11/18/2024 07:50:06 PM (2 weeks ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/default-filters.php
r59120 r59415 612 612 add_filter( 'style_loader_src', 'wp_style_loader_src', 10, 2 ); 613 613 614 add_action( 'wp_head', 'wp_print_auto_sizes_contain_css_fix', 1 ); 614 615 add_action( 'wp_head', 'wp_maybe_inline_styles', 1 ); // Run for styles enqueued in <head>. 615 616 add_action( 'wp_footer', 'wp_maybe_inline_styles', 1 ); // Run for late-loaded styles in the footer. -
trunk/src/wp-includes/media.php
r59406 r59415 1138 1138 } 1139 1139 1140 /** This filter is documented in wp-includes/media.php */ 1141 $add_auto_sizes = apply_filters( 'wp_img_tag_add_auto_sizes', true ); 1142 1140 1143 // Adds 'auto' to the sizes attribute if applicable. 1141 1144 if ( 1145 $add_auto_sizes && 1142 1146 isset( $attr['loading'] ) && 1143 1147 'lazy' === $attr['loading'] && … … 1986 1990 */ 1987 1991 function wp_img_tag_add_auto_sizes( string $image ): string { 1992 /** 1993 * Filters whether auto-sizes for lazy loaded images is enabled. 1994 * 1995 * @since 6.7.1 1996 * 1997 * @param boolean $enabled Whether auto-sizes for lazy loaded images is enabled. 1998 */ 1999 if ( ! apply_filters( 'wp_img_tag_add_auto_sizes', true ) ) { 2000 return $image; 2001 } 2002 1988 2003 $processor = new WP_HTML_Tag_Processor( $image ); 1989 2004 … … 1994 2009 1995 2010 // Bail early if the image is not lazy-loaded. 1996 $value = $processor->get_attribute( 'loading' ); 1997 if ( ! is_string( $value ) || 'lazy' !== strtolower( trim( $value, " \t\f\r\n" ) ) ) { 2011 $loading = $processor->get_attribute( 'loading' ); 2012 if ( ! is_string( $loading ) || 'lazy' !== strtolower( trim( $loading, " \t\f\r\n" ) ) ) { 2013 return $image; 2014 } 2015 2016 /* 2017 * Bail early if the image doesn't have a width attribute. 2018 * Per WordPress Core itself, lazy-loaded images should always have a width attribute. 2019 * However, it is possible that lazy-loading could be added by a plugin, where we don't have that guarantee. 2020 * As such, it still makes sense to ensure presence of a width attribute here in order to use `sizes=auto`. 2021 */ 2022 $width = $processor->get_attribute( 'width' ); 2023 if ( ! is_string( $width ) || '' === $width ) { 1998 2024 return $image; 1999 2025 } … … 2028 2054 list( $first_size ) = explode( ',', $sizes_attr, 2 ); 2029 2055 return 'auto' === strtolower( trim( $first_size, " \t\f\r\n" ) ); 2056 } 2057 2058 /** 2059 * Prints a CSS rule to fix potential visual issues with images using `sizes=auto`. 2060 * 2061 * This rule overrides the similar rule in the default user agent stylesheet, to avoid images that use e.g. 2062 * `width: auto` or `width: fit-content` to appear smaller. 2063 * 2064 * @since 6.7.1 2065 * @see https://html.spec.whatwg.org/multipage/rendering.html#img-contain-size 2066 * @see https://core.trac.wordpress.org/ticket/62413 2067 */ 2068 function wp_print_auto_sizes_contain_css_fix() { 2069 /** This filter is documented in wp-includes/media.php */ 2070 $add_auto_sizes = apply_filters( 'wp_img_tag_add_auto_sizes', true ); 2071 if ( ! $add_auto_sizes ) { 2072 return; 2073 } 2074 2075 ?> 2076 <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> 2077 <?php 2030 2078 } 2031 2079 -
trunk/tests/phpunit/tests/media.php
r59379 r59415 6202 6202 6203 6203 /** 6204 * Test generated markup for an image with no width does not get auto-sizes. 6205 * 6206 * @ticket 61847 6207 * @ticket 62413 6208 */ 6209 public function test_image_without_width_does_not_have_auto_sizes() { 6210 // Disable automatic width calculation. 6211 add_filter( 6212 'wp_get_attachment_image_src', 6213 function ( $img_data ) { 6214 return array( $img_data[0], null, null ); 6215 } 6216 ); 6217 6218 $markup = wp_get_attachment_image( self::$large_id, 'large', false, array( 'loading' => false ) ); 6219 6220 $this->assertStringNotContainsString( 6221 'width="', 6222 $markup, 6223 'Failed confirming the test markup did not include a width attribute.' 6224 ); 6225 6226 $this->assertStringNotContainsString( 6227 'sizes="auto, ', 6228 $markup, 6229 'Failed asserting that the sizes attribute for an image without a width does not include "auto".' 6230 ); 6231 } 6232 6233 /** 6204 6234 * Test content filtered markup with lazy loading gets auto-sizes. 6205 6235 * … … 6234 6264 wp_filter_content_tags( get_image_tag( self::$large_id, '', '', '', 'large' ) ), 6235 6265 'Failed asserting that the sizes attribute for a content image without lazy loading does not include "auto" with the expected sizes.' 6266 ); 6267 } 6268 6269 /** 6270 * Test content filtered markup with lazy loading does not get auto-sizes when disabled. 6271 * 6272 * @ticket 61847 6273 * @ticket 62413 6274 * 6275 * @covers ::wp_img_tag_add_auto_sizes 6276 */ 6277 public function test_content_image_does_not_have_auto_sizes_when_disabled() { 6278 // Force lazy loading attribute. 6279 add_filter( 'wp_img_tag_add_loading_attr', '__return_true' ); 6280 // Disable auto-sizes attribute. 6281 add_filter( 'wp_img_tag_add_auto_sizes', '__return_false' ); 6282 6283 $this->assertStringNotContainsString( 6284 'sizes="auto, ', 6285 wp_filter_content_tags( get_image_tag( self::$large_id, '', '', '', 'large' ) ), 6286 'Failed asserting that the sizes attribute for a content image with lazy loading does not include "auto" when disabled.' 6287 ); 6288 } 6289 6290 /** 6291 * Test generated image markup with lazy loading does not get auto-sizes when disabled. 6292 * 6293 * @ticket 61847 6294 * @ticket 62413 6295 * 6296 * @covers ::wp_img_tag_add_auto_sizes 6297 */ 6298 public function test_generated_image_does_not_have_auto_sizes_when_disabled() { 6299 // Disable auto-sizes attribute. 6300 add_filter( 'wp_img_tag_add_auto_sizes', '__return_false' ); 6301 6302 $this->assertStringNotContainsString( 6303 'sizes="auto, ', 6304 wp_get_attachment_image( self::$large_id, 'large', false, array( 'loading' => 'lazy' ) ), 6305 'Failed asserting that the sizes attribute for an image with lazy loading does not include "auto" when disabled.' 6236 6306 ); 6237 6307 } … … 6386 6456 return array( 6387 6457 'expected_with_single_quoted_attributes' => array( 6388 'input' => "<img src='https://example.com/foo-300x225.jpg' srcset='https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w' sizes='(max-width: 650px) 100vw, 650px' loading='lazy'>",6389 'expected' => "<img src='https://example.com/foo-300x225.jpg' srcset='https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w' sizes=\"auto, (max-width: 650px) 100vw, 650px\" loading='lazy'>",6458 'input' => "<img width='300' height='225' src='https://example.com/foo-300x225.jpg' srcset='https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w' sizes='(max-width: 650px) 100vw, 650px' loading='lazy'>", 6459 'expected' => "<img width='300' height='225' src='https://example.com/foo-300x225.jpg' srcset='https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w' sizes=\"auto, (max-width: 650px) 100vw, 650px\" loading='lazy'>", 6390 6460 ), 6391 6461 'expected_with_data_sizes_attribute' => array( 6462 'input' => '<img width="300" height="225" data-tshirt-sizes="S M L" src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="(max-width: 650px) 100vw, 650px" loading="lazy">', 6463 'expected' => '<img width="300" height="225" data-tshirt-sizes="S M L" src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="auto, (max-width: 650px) 100vw, 650px" loading="lazy">', 6464 ), 6465 'expected_with_data_sizes_attribute_already_present' => array( 6466 'input' => '<img width="300" height="225" data-tshirt-sizes="S M L" src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="AUTO, (max-width: 650px) 100vw, 650px" loading="lazy">', 6467 'expected' => '<img width="300" height="225" data-tshirt-sizes="S M L" src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="AUTO, (max-width: 650px) 100vw, 650px" loading="lazy">', 6468 ), 6469 'not_expected_with_loading_lazy_in_attr_value' => array( 6470 'input' => '<img width="300" height="225" src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="(max-width: 650px) 100vw, 650px" alt=\'This is the LCP image and it should not get loading="lazy"!\'>', 6471 'expected' => '<img width="300" height="225" src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="(max-width: 650px) 100vw, 650px" alt=\'This is the LCP image and it should not get loading="lazy"!\'>', 6472 ), 6473 'not_expected_with_data_loading_attribute_present' => array( 6474 'input' => '<img width="300" height="225" src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="(max-width: 650px) 100vw, 650px" data-removed-loading="lazy">', 6475 'expected' => '<img width="300" height="225" src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="(max-width: 650px) 100vw, 650px" data-removed-loading="lazy">', 6476 ), 6477 'expected_when_attributes_have_spaces_after_them' => array( 6478 'input' => '<img width="300" height="225" src = "https://example.com/foo-300x225.jpg" srcset = "https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes = "(max-width: 650px) 100vw, 650px" loading = "lazy">', 6479 'expected' => '<img width="300" height="225" src = "https://example.com/foo-300x225.jpg" srcset = "https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="auto, (max-width: 650px) 100vw, 650px" loading = "lazy">', 6480 ), 6481 'expected_when_attributes_are_upper_case' => array( 6482 'input' => '<IMG WIDTH="300" HEIGHT="225" SRC="https://example.com/foo-300x225.jpg" SRCSET="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" SIZES="(max-width: 650px) 100vw, 650px" LOADING="LAZY">', 6483 'expected' => '<IMG WIDTH="300" HEIGHT="225" SRC="https://example.com/foo-300x225.jpg" SRCSET="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="auto, (max-width: 650px) 100vw, 650px" LOADING="LAZY">', 6484 ), 6485 'expected_when_loading_lazy_lacks_quotes' => array( 6486 'input' => '<img width="300" height="225" src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="(max-width: 650px) 100vw, 650px" loading=lazy>', 6487 'expected' => '<img width="300" height="225" src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="auto, (max-width: 650px) 100vw, 650px" loading=lazy>', 6488 ), 6489 'expected_when_loading_lazy_has_whitespace' => array( 6490 'input' => '<img width="300" height="225" src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="(max-width: 650px) 100vw, 650px" loading=" lazy ">', 6491 'expected' => '<img width="300" height="225" src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="auto, (max-width: 650px) 100vw, 650px" loading=" lazy ">', 6492 ), 6493 'not_expected_when_sizes_auto_lacks_quotes' => array( 6494 'input' => '<img width="300" height="225" src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes=auto loading="lazy">', 6495 'expected' => '<img width="300" height="225" src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes=auto loading="lazy">', 6496 ), 6497 'not_expected_when_img_lacks_dimensions' => array( 6392 6498 'input' => '<img data-tshirt-sizes="S M L" src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="(max-width: 650px) 100vw, 650px" loading="lazy">', 6393 'expected' => '<img data-tshirt-sizes="S M L" src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="auto, (max-width: 650px) 100vw, 650px" loading="lazy">', 6394 ), 6395 'expected_with_data_sizes_attribute_already_present' => array( 6396 'input' => '<img data-tshirt-sizes="S M L" src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="AUTO, (max-width: 650px) 100vw, 650px" loading="lazy">', 6397 'expected' => '<img data-tshirt-sizes="S M L" src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="AUTO, (max-width: 650px) 100vw, 650px" loading="lazy">', 6398 ), 6399 'not_expected_with_loading_lazy_in_attr_value' => array( 6400 'input' => '<img src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="(max-width: 650px) 100vw, 650px" alt=\'This is the LCP image and it should not get loading="lazy"!\'>', 6401 'expected' => '<img src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="(max-width: 650px) 100vw, 650px" alt=\'This is the LCP image and it should not get loading="lazy"!\'>', 6402 ), 6403 'not_expected_with_data_loading_attribute_present' => array( 6404 'input' => '<img src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="(max-width: 650px) 100vw, 650px" data-removed-loading="lazy">', 6405 'expected' => '<img src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="(max-width: 650px) 100vw, 650px" data-removed-loading="lazy">', 6406 ), 6407 'expected_when_attributes_have_spaces_after_them' => array( 6408 'input' => '<img src = "https://example.com/foo-300x225.jpg" srcset = "https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes = "(max-width: 650px) 100vw, 650px" loading = "lazy">', 6409 'expected' => '<img src = "https://example.com/foo-300x225.jpg" srcset = "https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="auto, (max-width: 650px) 100vw, 650px" loading = "lazy">', 6410 ), 6411 'expected_when_attributes_are_upper_case' => array( 6412 'input' => '<IMG SRC="https://example.com/foo-300x225.jpg" SRCSET="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" SIZES="(max-width: 650px) 100vw, 650px" LOADING="LAZY">', 6413 'expected' => '<IMG SRC="https://example.com/foo-300x225.jpg" SRCSET="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="auto, (max-width: 650px) 100vw, 650px" LOADING="LAZY">', 6414 ), 6415 'expected_when_loading_lazy_lacks_quotes' => array( 6416 'input' => '<img src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="(max-width: 650px) 100vw, 650px" loading=lazy>', 6417 'expected' => '<img src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="auto, (max-width: 650px) 100vw, 650px" loading=lazy>', 6418 ), 6419 'expected_when_loading_lazy_has_whitespace' => array( 6420 'input' => '<img src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="(max-width: 650px) 100vw, 650px" loading=" lazy ">', 6421 'expected' => '<img src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="auto, (max-width: 650px) 100vw, 650px" loading=" lazy ">', 6422 ), 6423 'not_expected_when_sizes_auto_lacks_quotes' => array( 6424 'input' => '<img src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes=auto loading="lazy">', 6425 'expected' => '<img src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes=auto loading="lazy">', 6499 'expected' => '<img data-tshirt-sizes="S M L" src="https://example.com/foo-300x225.jpg" srcset="https://example.com/foo-300x225.jpg 300w, https://example.com/foo-1024x768.jpg 1024w, https://example.com/foo-768x576.jpg 768w, https://example.com/foo-1536x1152.jpg 1536w, https://example.com/foo-2048x1536.jpg 2048w" sizes="(max-width: 650px) 100vw, 650px" loading="lazy">', 6426 6500 ), 6427 6501 );
Note: See TracChangeset
for help on using the changeset viewer.