From 604c5e5bf52dddebdb9eed7b51547d0d457b8532 Mon Sep 17 00:00:00 2001 From: SohamPatel46 Date: Tue, 28 Jan 2025 16:48:40 +0530 Subject: [PATCH 01/12] Updates media query generator function to use range --- plugins/optimization-detective/helper.php | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/plugins/optimization-detective/helper.php b/plugins/optimization-detective/helper.php index 27073205d1..2e51360a70 100644 --- a/plugins/optimization-detective/helper.php +++ b/plugins/optimization-detective/helper.php @@ -40,17 +40,13 @@ function od_generate_media_query( ?int $minimum_viewport_width, ?int $maximum_vi _doing_it_wrong( __FUNCTION__, esc_html__( 'The minimum width cannot be greater than the maximum width.', 'optimization-detective' ), 'Optimization Detective 0.7.0' ); return null; } - $media_attributes = array(); - if ( null !== $minimum_viewport_width && $minimum_viewport_width > 0 ) { - $media_attributes[] = sprintf( '(min-width: %dpx)', $minimum_viewport_width ); - } - if ( null !== $maximum_viewport_width && PHP_INT_MAX !== $maximum_viewport_width ) { - $media_attributes[] = sprintf( '(max-width: %dpx)', $maximum_viewport_width ); - } - if ( count( $media_attributes ) === 0 ) { + $media_attributes = ''; + if ( ( null !== $minimum_viewport_width && $minimum_viewport_width > 0 ) && ( null !== $maximum_viewport_width && PHP_INT_MAX !== $maximum_viewport_width ) ) { + $media_attributes = sprintf( '( %dpx < width <= %dpx )', $minimum_viewport_width, $maximum_viewport_width ); + } else { return null; } - return join( ' and ', $media_attributes ); + return $media_attributes; } /** From cec835b123b7d1bd83ea5c110d0aa81d78bac45a Mon Sep 17 00:00:00 2001 From: SohamPatel46 Date: Thu, 30 Jan 2025 15:59:34 +0530 Subject: [PATCH 02/12] Try updating unit test expected conditions --- plugins/optimization-detective/tests/test-helper.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/optimization-detective/tests/test-helper.php b/plugins/optimization-detective/tests/test-helper.php index 3d9ae9c5ad..9b574ed820 100644 --- a/plugins/optimization-detective/tests/test-helper.php +++ b/plugins/optimization-detective/tests/test-helper.php @@ -34,27 +34,27 @@ public function data_to_test_od_generate_media_query(): array { 'mobile' => array( 'min_width' => 0, 'max_width' => 320, - 'expected' => '(max-width: 320px)', + 'expected' => null, ), 'mobile_alt' => array( 'min_width' => null, 'max_width' => 320, - 'expected' => '(max-width: 320px)', + 'expected' => null, ), 'tablet' => array( 'min_width' => 321, 'max_width' => 600, - 'expected' => '(min-width: 321px) and (max-width: 600px)', + 'expected' => '321px < width <= 600px)', ), 'desktop' => array( 'min_width' => 601, 'max_width' => PHP_INT_MAX, - 'expected' => '(min-width: 601px)', + 'expected' => null, ), 'desktop_alt' => array( 'min_width' => 601, 'max_width' => null, - 'expected' => '(min-width: 601px)', + 'expected' => null, ), 'no_widths' => array( 'min_width' => null, From 355e1b36caa0ecb703606748a7b40254900f3032 Mon Sep 17 00:00:00 2001 From: Soham Patel Date: Fri, 31 Jan 2025 12:30:15 +0530 Subject: [PATCH 03/12] Update missing conditions for css query Co-authored-by: Weston Ruter --- plugins/optimization-detective/helper.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/optimization-detective/helper.php b/plugins/optimization-detective/helper.php index 851cf924a3..6413d16d7f 100644 --- a/plugins/optimization-detective/helper.php +++ b/plugins/optimization-detective/helper.php @@ -47,8 +47,14 @@ function od_generate_media_query( ?int $minimum_viewport_width, ?int $maximum_vi return null; } $media_attributes = ''; - if ( ( null !== $minimum_viewport_width && $minimum_viewport_width > 0 ) && ( null !== $maximum_viewport_width && PHP_INT_MAX !== $maximum_viewport_width ) ) { + $has_min_width = ( null !== $minimum_viewport_width && $minimum_viewport_width > 0 ); + $has_max_width = ( null !== $maximum_viewport_width && PHP_INT_MAX !== $maximum_viewport_width ); + if ( $has_min_width && $has_max_width ) { $media_attributes = sprintf( '( %dpx < width <= %dpx )', $minimum_viewport_width, $maximum_viewport_width ); + } elseif ( $has_min_width ) { + $media_attributes[] = sprintf( '(min-width: %dpx)', $minimum_viewport_width ); + } elseif ( $has_max_width ) { + $media_attributes[] = sprintf( '(max-width: %dpx)', $maximum_viewport_width ); } else { return null; } From 9c335f2f8bcce23cc05b82a87101186077f63b0a Mon Sep 17 00:00:00 2001 From: SohamPatel46 Date: Fri, 31 Jan 2025 12:49:21 +0530 Subject: [PATCH 04/12] Update source conditions variable type --- plugins/optimization-detective/helper.php | 8 ++++---- plugins/optimization-detective/tests/test-helper.php | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/optimization-detective/helper.php b/plugins/optimization-detective/helper.php index 6413d16d7f..e56f620c36 100644 --- a/plugins/optimization-detective/helper.php +++ b/plugins/optimization-detective/helper.php @@ -47,14 +47,14 @@ function od_generate_media_query( ?int $minimum_viewport_width, ?int $maximum_vi return null; } $media_attributes = ''; - $has_min_width = ( null !== $minimum_viewport_width && $minimum_viewport_width > 0 ); - $has_max_width = ( null !== $maximum_viewport_width && PHP_INT_MAX !== $maximum_viewport_width ); + $has_min_width = ( null !== $minimum_viewport_width && $minimum_viewport_width > 0 ); + $has_max_width = ( null !== $maximum_viewport_width && PHP_INT_MAX !== $maximum_viewport_width ); if ( $has_min_width && $has_max_width ) { $media_attributes = sprintf( '( %dpx < width <= %dpx )', $minimum_viewport_width, $maximum_viewport_width ); } elseif ( $has_min_width ) { - $media_attributes[] = sprintf( '(min-width: %dpx)', $minimum_viewport_width ); + $media_attributes = sprintf( '(min-width: %dpx)', $minimum_viewport_width ); } elseif ( $has_max_width ) { - $media_attributes[] = sprintf( '(max-width: %dpx)', $maximum_viewport_width ); + $media_attributes = sprintf( '(max-width: %dpx)', $maximum_viewport_width ); } else { return null; } diff --git a/plugins/optimization-detective/tests/test-helper.php b/plugins/optimization-detective/tests/test-helper.php index 9b574ed820..d54dab2b9e 100644 --- a/plugins/optimization-detective/tests/test-helper.php +++ b/plugins/optimization-detective/tests/test-helper.php @@ -34,12 +34,12 @@ public function data_to_test_od_generate_media_query(): array { 'mobile' => array( 'min_width' => 0, 'max_width' => 320, - 'expected' => null, + 'expected' => '(max-width: 320px)', ), 'mobile_alt' => array( 'min_width' => null, 'max_width' => 320, - 'expected' => null, + 'expected' => '(max-width: 320px)', ), 'tablet' => array( 'min_width' => 321, @@ -49,12 +49,12 @@ public function data_to_test_od_generate_media_query(): array { 'desktop' => array( 'min_width' => 601, 'max_width' => PHP_INT_MAX, - 'expected' => null, + 'expected' => '(min-width: 601px)', ), 'desktop_alt' => array( 'min_width' => 601, 'max_width' => null, - 'expected' => null, + 'expected' => '(min-width: 601px)', ), 'no_widths' => array( 'min_width' => null, From 02a9cd44a27d35964bae0a8c630be1a9c9909444 Mon Sep 17 00:00:00 2001 From: SohamPatel46 Date: Fri, 31 Jan 2025 15:58:40 +0530 Subject: [PATCH 05/12] Update PHP unit tests snapshots --- .../all-embeds-inside-viewport/expected.html | 36 +++++++++---------- .../nested-figure-embed/expected.html | 8 ++--- .../expected.html | 4 +-- .../expected.html | 4 +-- .../expected.html | 4 +-- .../expected.html | 4 +-- .../expected.html | 4 +-- .../expected.html | 4 +-- .../expected.html | 4 +-- .../expected.html | 4 +-- .../expected.html | 8 ++--- .../expected.html | 4 +-- .../expected.html | 6 ++-- .../expected.html | 2 +- .../expected.html | 2 +- .../expected.html | 4 +-- .../expected.html | 2 +- .../expected.html | 2 +- .../tests/test-class-od-link-collection.php | 16 ++++----- .../tests/test-helper.php | 2 +- 20 files changed, 62 insertions(+), 62 deletions(-) diff --git a/plugins/embed-optimizer/tests/test-cases/all-embeds-inside-viewport/expected.html b/plugins/embed-optimizer/tests/test-cases/all-embeds-inside-viewport/expected.html index cb8b50e3c2..a9feee0f4b 100644 --- a/plugins/embed-optimizer/tests/test-cases/all-embeds-inside-viewport/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/all-embeds-inside-viewport/expected.html @@ -4,56 +4,56 @@ ... diff --git a/plugins/embed-optimizer/tests/test-cases/nested-figure-embed/expected.html b/plugins/embed-optimizer/tests/test-cases/nested-figure-embed/expected.html index 4b08b0df4e..83acb55cbe 100644 --- a/plugins/embed-optimizer/tests/test-cases/nested-figure-embed/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/nested-figure-embed/expected.html @@ -4,14 +4,14 @@ ... diff --git a/plugins/embed-optimizer/tests/test-cases/single-spotify-embed-outside-viewport-with-subsequent-script/expected.html b/plugins/embed-optimizer/tests/test-cases/single-spotify-embed-outside-viewport-with-subsequent-script/expected.html index 53c0433f23..eef9cb494d 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-spotify-embed-outside-viewport-with-subsequent-script/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-spotify-embed-outside-viewport-with-subsequent-script/expected.html @@ -4,8 +4,8 @@ ... diff --git a/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-inside-viewport/expected.html b/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-inside-viewport/expected.html index a416747251..3f9b85510f 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-inside-viewport/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-inside-viewport/expected.html @@ -4,8 +4,8 @@ ... diff --git a/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-outside-viewport-on-mobile/expected.html b/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-outside-viewport-on-mobile/expected.html index 6c44678b80..4838c592e3 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-outside-viewport-on-mobile/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-outside-viewport-on-mobile/expected.html @@ -4,8 +4,8 @@ ... diff --git a/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-outside-viewport/expected.html b/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-outside-viewport/expected.html index d55d88ef89..3eca7ad029 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-outside-viewport/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-outside-viewport/expected.html @@ -4,8 +4,8 @@ ... diff --git a/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-inside-viewport/expected.html b/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-inside-viewport/expected.html index d3009e5b11..77c2fb4ba2 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-inside-viewport/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-inside-viewport/expected.html @@ -4,8 +4,8 @@ ... diff --git a/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-outside-viewport-on-mobile/expected.html b/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-outside-viewport-on-mobile/expected.html index 3fd503ea94..1ef6758d8a 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-outside-viewport-on-mobile/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-outside-viewport-on-mobile/expected.html @@ -4,8 +4,8 @@ ... diff --git a/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-outside-viewport/expected.html b/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-outside-viewport/expected.html index 453e6609c1..487f36e602 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-outside-viewport/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-outside-viewport/expected.html @@ -4,8 +4,8 @@ ... diff --git a/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-inside-viewport/expected.html b/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-inside-viewport/expected.html index d159a1ddfd..4b9cb4a41d 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-inside-viewport/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-inside-viewport/expected.html @@ -4,8 +4,8 @@ ... diff --git a/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-outside-viewport-on-mobile/expected.html b/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-outside-viewport-on-mobile/expected.html index e207715e3f..af37ca6b53 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-outside-viewport-on-mobile/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-outside-viewport-on-mobile/expected.html @@ -4,12 +4,12 @@ ... - - + +
diff --git a/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-outside-viewport/expected.html b/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-outside-viewport/expected.html index 58f90072c4..eb6c6d364f 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-outside-viewport/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-outside-viewport/expected.html @@ -4,8 +4,8 @@ ... diff --git a/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-all-breakpoints/expected.html b/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-all-breakpoints/expected.html index 1c31d64e15..d0af6a72e4 100644 --- a/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-all-breakpoints/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-all-breakpoints/expected.html @@ -3,9 +3,9 @@ ... - - - + + + diff --git a/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-two-non-consecutive-breakpoints-and-one-is-stale/expected.html b/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-two-non-consecutive-breakpoints-and-one-is-stale/expected.html index f30af0fb86..64b8ba2506 100644 --- a/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-two-non-consecutive-breakpoints-and-one-is-stale/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-two-non-consecutive-breakpoints-and-one-is-stale/expected.html @@ -2,7 +2,7 @@ ... - +
diff --git a/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-two-non-consecutive-breakpoints/expected.html b/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-two-non-consecutive-breakpoints/expected.html index f64ff1dc56..a1e6db6595 100644 --- a/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-two-non-consecutive-breakpoints/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-two-non-consecutive-breakpoints/expected.html @@ -2,7 +2,7 @@ ... - + diff --git a/plugins/image-prioritizer/tests/test-cases/lcp-element-external-background-image-present-in-document-and-fully-populated-samples/expected.html b/plugins/image-prioritizer/tests/test-cases/lcp-element-external-background-image-present-in-document-and-fully-populated-samples/expected.html index 155079f792..b799f9ee3a 100644 --- a/plugins/image-prioritizer/tests/test-cases/lcp-element-external-background-image-present-in-document-and-fully-populated-samples/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/lcp-element-external-background-image-present-in-document-and-fully-populated-samples/expected.html @@ -5,8 +5,8 @@ - - + +
diff --git a/plugins/image-prioritizer/tests/test-cases/responsive-background-images/expected.html b/plugins/image-prioritizer/tests/test-cases/responsive-background-images/expected.html index 584e5ab160..1f84ecca1e 100644 --- a/plugins/image-prioritizer/tests/test-cases/responsive-background-images/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/responsive-background-images/expected.html @@ -5,7 +5,7 @@ - +
diff --git a/plugins/image-prioritizer/tests/test-cases/video-with-poster-lcp-element-on-mobile-and-desktop-but-not-tablet/expected.html b/plugins/image-prioritizer/tests/test-cases/video-with-poster-lcp-element-on-mobile-and-desktop-but-not-tablet/expected.html index 466cbec624..873928914a 100644 --- a/plugins/image-prioritizer/tests/test-cases/video-with-poster-lcp-element-on-mobile-and-desktop-but-not-tablet/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/video-with-poster-lcp-element-on-mobile-and-desktop-but-not-tablet/expected.html @@ -4,7 +4,7 @@ ... - +
diff --git a/plugins/optimization-detective/tests/test-class-od-link-collection.php b/plugins/optimization-detective/tests/test-class-od-link-collection.php index da274c1763..11faeabed9 100644 --- a/plugins/optimization-detective/tests/test-class-od-link-collection.php +++ b/plugins/optimization-detective/tests/test-class-od-link-collection.php @@ -79,9 +79,9 @@ public function data_provider_to_test_add_link(): array { ), ), 'expected_html' => ' - + ', - 'expected_header' => 'Link: ; rel="preload"; crossorigin="anonymous"; fetchpriority="high"; as="image"; media="screen and (min-width: 100px) and (max-width: 200px)"', + 'expected_header' => 'Link: ; rel="preload"; crossorigin="anonymous"; fetchpriority="high"; as="image"; media="screen and ( 100px < width <= 200px )"', 'expected_count' => 1, 'error' => '', ), @@ -122,9 +122,9 @@ public function data_provider_to_test_add_link(): array { ), 'expected_html' => ' - + ', - 'expected_header' => 'Link: ; rel="preload"; as="image"; media="screen", ; rel="preload"; crossorigin="anonymous"; fetchpriority="high"; as="image"; media="screen and (min-width: 100px) and (max-width: 300px)"', + 'expected_header' => 'Link: ; rel="preload"; as="image"; media="screen", ; rel="preload"; crossorigin="anonymous"; fetchpriority="high"; as="image"; media="screen and ( 100px < width <= 300px )"', 'expected_count' => 3, 'error' => '', ), @@ -140,9 +140,9 @@ public function data_provider_to_test_add_link(): array { ), ), 'expected_html' => ' - + ', - 'expected_header' => 'Link: ; rel="preconnect"; media="(min-width: 201px) and (max-width: 300px)"', + 'expected_header' => 'Link: ; rel="preconnect"; media="( 201px < width <= 300px )"', 'expected_count' => 1, 'error' => '', ), @@ -159,9 +159,9 @@ public function data_provider_to_test_add_link(): array { ), ), 'expected_html' => ' - + ', - 'expected_header' => 'Link: ; rel="preconnect"; media="tty and (min-width: 201px) and (max-width: 300px)"', + 'expected_header' => 'Link: ; rel="preconnect"; media="tty and ( 201px < width <= 300px )"', 'expected_count' => 1, 'error' => '', ), diff --git a/plugins/optimization-detective/tests/test-helper.php b/plugins/optimization-detective/tests/test-helper.php index d54dab2b9e..1bb30ed492 100644 --- a/plugins/optimization-detective/tests/test-helper.php +++ b/plugins/optimization-detective/tests/test-helper.php @@ -44,7 +44,7 @@ public function data_to_test_od_generate_media_query(): array { 'tablet' => array( 'min_width' => 321, 'max_width' => 600, - 'expected' => '321px < width <= 600px)', + 'expected' => '( 321px < width <= 600px )', ), 'desktop' => array( 'min_width' => 601, From a69bc0e96c7359e75bafdf471c5da16d0baef4d6 Mon Sep 17 00:00:00 2001 From: SohamPatel46 Date: Mon, 3 Feb 2025 13:44:19 +0530 Subject: [PATCH 06/12] Update media query to latest syntax --- plugins/optimization-detective/helper.php | 4 ++-- plugins/optimization-detective/tests/test-helper.php | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/optimization-detective/helper.php b/plugins/optimization-detective/helper.php index e56f620c36..b4cc8f9d57 100644 --- a/plugins/optimization-detective/helper.php +++ b/plugins/optimization-detective/helper.php @@ -52,9 +52,9 @@ function od_generate_media_query( ?int $minimum_viewport_width, ?int $maximum_vi if ( $has_min_width && $has_max_width ) { $media_attributes = sprintf( '( %dpx < width <= %dpx )', $minimum_viewport_width, $maximum_viewport_width ); } elseif ( $has_min_width ) { - $media_attributes = sprintf( '(min-width: %dpx)', $minimum_viewport_width ); + $media_attributes = sprintf( '( %dpx < width )', $minimum_viewport_width ); } elseif ( $has_max_width ) { - $media_attributes = sprintf( '(max-width: %dpx)', $maximum_viewport_width ); + $media_attributes = sprintf( '( width <= %dpx )', $maximum_viewport_width ); } else { return null; } diff --git a/plugins/optimization-detective/tests/test-helper.php b/plugins/optimization-detective/tests/test-helper.php index 1bb30ed492..dd7fa9f9ed 100644 --- a/plugins/optimization-detective/tests/test-helper.php +++ b/plugins/optimization-detective/tests/test-helper.php @@ -34,12 +34,12 @@ public function data_to_test_od_generate_media_query(): array { 'mobile' => array( 'min_width' => 0, 'max_width' => 320, - 'expected' => '(max-width: 320px)', + 'expected' => '( width <= 320px )', ), 'mobile_alt' => array( 'min_width' => null, 'max_width' => 320, - 'expected' => '(max-width: 320px)', + 'expected' => '( width <= 320px )', ), 'tablet' => array( 'min_width' => 321, @@ -49,12 +49,12 @@ public function data_to_test_od_generate_media_query(): array { 'desktop' => array( 'min_width' => 601, 'max_width' => PHP_INT_MAX, - 'expected' => '(min-width: 601px)', + 'expected' => '( 601px < width )', ), 'desktop_alt' => array( 'min_width' => 601, 'max_width' => null, - 'expected' => '(min-width: 601px)', + 'expected' => '( 601px < width )', ), 'no_widths' => array( 'min_width' => null, From a9bf3d16cdd4385db470a3164207f44014f3b737 Mon Sep 17 00:00:00 2001 From: Weston Ruter Date: Mon, 3 Feb 2025 17:12:57 -0800 Subject: [PATCH 07/12] Remove extra spaces from media feature --- plugins/optimization-detective/helper.php | 12 +++++------ .../tests/test-class-od-link-collection.php | 20 +++++++++---------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/plugins/optimization-detective/helper.php b/plugins/optimization-detective/helper.php index 7ac3802358..46656607cc 100644 --- a/plugins/optimization-detective/helper.php +++ b/plugins/optimization-detective/helper.php @@ -46,19 +46,17 @@ function od_generate_media_query( ?int $minimum_viewport_width, ?int $maximum_vi _doing_it_wrong( __FUNCTION__, esc_html__( 'The minimum width cannot be greater than or equal to the maximum width.', 'optimization-detective' ), 'Optimization Detective 0.7.0' ); return null; } - $media_attributes = ''; - $has_min_width = ( null !== $minimum_viewport_width && $minimum_viewport_width > 0 ); - $has_max_width = ( null !== $maximum_viewport_width && PHP_INT_MAX !== $maximum_viewport_width ); // Note: The use of PHP_INT_MAX is obsolete. + $has_min_width = ( null !== $minimum_viewport_width && $minimum_viewport_width > 0 ); + $has_max_width = ( null !== $maximum_viewport_width && PHP_INT_MAX !== $maximum_viewport_width ); // Note: The use of PHP_INT_MAX is obsolete. if ( $has_min_width && $has_max_width ) { - $media_attributes = sprintf( '( %dpx < width <= %dpx )', $minimum_viewport_width, $maximum_viewport_width ); + return sprintf( '(%dpx < width <= %dpx)', $minimum_viewport_width, $maximum_viewport_width ); } elseif ( $has_min_width ) { - $media_attributes = sprintf( '( %dpx < width )', $minimum_viewport_width ); + return sprintf( '(%dpx < width)', $minimum_viewport_width ); } elseif ( $has_max_width ) { - $media_attributes = sprintf( '( width <= %dpx )', $maximum_viewport_width ); + return sprintf( '(width <= %dpx)', $maximum_viewport_width ); } else { return null; } - return $media_attributes; } /** diff --git a/plugins/optimization-detective/tests/test-class-od-link-collection.php b/plugins/optimization-detective/tests/test-class-od-link-collection.php index 43461aa91b..1099525ec0 100644 --- a/plugins/optimization-detective/tests/test-class-od-link-collection.php +++ b/plugins/optimization-detective/tests/test-class-od-link-collection.php @@ -57,9 +57,9 @@ public function data_provider_to_test_add_link(): array { ), ), 'expected_html' => ' - + ', - 'expected_header' => 'Link: ; rel="preload"; crossorigin="anonymous"; fetchpriority="high"; as="image"; media="screen and ( width <= 100px )"', + 'expected_header' => 'Link: ; rel="preload"; crossorigin="anonymous"; fetchpriority="high"; as="image"; media="screen and (width <= 100px)"', 'expected_count' => 1, 'error' => '', ), @@ -79,9 +79,9 @@ public function data_provider_to_test_add_link(): array { ), ), 'expected_html' => ' - + ', - 'expected_header' => 'Link: ; rel="preload"; crossorigin="anonymous"; fetchpriority="high"; as="image"; media="screen and ( 100px < width <= 200px )"', + 'expected_header' => 'Link: ; rel="preload"; crossorigin="anonymous"; fetchpriority="high"; as="image"; media="screen and (100px < width <= 200px)"', 'expected_count' => 1, 'error' => '', ), @@ -122,9 +122,9 @@ public function data_provider_to_test_add_link(): array { ), 'expected_html' => ' - + ', - 'expected_header' => 'Link: ; rel="preload"; as="image"; media="screen", ; rel="preload"; crossorigin="anonymous"; fetchpriority="high"; as="image"; media="screen and ( 100px < width <= 300px )"', + 'expected_header' => 'Link: ; rel="preload"; as="image"; media="screen", ; rel="preload"; crossorigin="anonymous"; fetchpriority="high"; as="image"; media="screen and (100px < width <= 300px)"', 'expected_count' => 3, 'error' => '', ), @@ -174,9 +174,9 @@ public function data_provider_to_test_add_link(): array { ), ), 'expected_html' => ' - + ', - 'expected_header' => 'Link: ; rel="preconnect"; media="( 200px < width <= 300px )"', + 'expected_header' => 'Link: ; rel="preconnect"; media="(200px < width <= 300px)"', 'expected_count' => 1, 'error' => '', ), @@ -193,9 +193,9 @@ public function data_provider_to_test_add_link(): array { ), ), 'expected_html' => ' - + ', - 'expected_header' => 'Link: ; rel="preconnect"; media="tty and ( 200px < width <= 300px )"', + 'expected_header' => 'Link: ; rel="preconnect"; media="tty and (200px < width <= 300px)"', 'expected_count' => 1, 'error' => '', ), From d76c16dd023d265ebe1ba252aca9addff1d92daf Mon Sep 17 00:00:00 2001 From: Weston Ruter Date: Mon, 3 Feb 2025 17:20:16 -0800 Subject: [PATCH 08/12] Update expected data for test_od_generate_media_query --- plugins/optimization-detective/tests/test-helper.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/optimization-detective/tests/test-helper.php b/plugins/optimization-detective/tests/test-helper.php index 6d00c4ec28..4509624fa3 100644 --- a/plugins/optimization-detective/tests/test-helper.php +++ b/plugins/optimization-detective/tests/test-helper.php @@ -34,27 +34,27 @@ public function data_to_test_od_generate_media_query(): array { 'mobile' => array( 'min_width' => 0, 'max_width' => 320, - 'expected' => '( width <= 320px )', + 'expected' => '(width <= 320px)', ), 'mobile_alt' => array( 'min_width' => null, 'max_width' => 320, - 'expected' => '( width <= 320px )', + 'expected' => '(width <= 320px)', ), 'tablet' => array( 'min_width' => 320, 'max_width' => 600, - 'expected' => '( 321px < width <= 600px )', + 'expected' => '(320px < width <= 600px)', ), 'desktop' => array( 'min_width' => 600, 'max_width' => PHP_INT_MAX, - 'expected' => '( 601px < width )', + 'expected' => '(600px < width)', ), 'desktop_alt' => array( 'min_width' => 600, 'max_width' => null, - 'expected' => '( 601px < width )', + 'expected' => '(600px < width)', ), 'no_widths' => array( 'min_width' => null, From bec17cf8342b3bcd0927b7ace6ec343baa5f884d Mon Sep 17 00:00:00 2001 From: Weston Ruter Date: Mon, 3 Feb 2025 17:25:21 -0800 Subject: [PATCH 09/12] Update embed-optimizer test snapshots --- .../all-embeds-inside-viewport/expected.html | 72 +++++++++---------- .../nested-figure-embed/expected.html | 16 ++--- .../expected.html | 8 +-- .../expected.html | 8 +-- .../expected.html | 12 ++-- .../expected.html | 8 +-- .../expected.html | 8 +-- .../expected.html | 16 ++--- .../expected.html | 8 +-- .../expected.html | 6 +- .../expected.html | 8 +-- .../expected.html | 12 ++-- .../expected.html | 2 +- .../expected.html | 8 +-- 14 files changed, 96 insertions(+), 96 deletions(-) diff --git a/plugins/embed-optimizer/tests/test-cases/all-embeds-inside-viewport/expected.html b/plugins/embed-optimizer/tests/test-cases/all-embeds-inside-viewport/expected.html index a9feee0f4b..414c89813a 100644 --- a/plugins/embed-optimizer/tests/test-cases/all-embeds-inside-viewport/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/all-embeds-inside-viewport/expected.html @@ -3,58 +3,58 @@ ... diff --git a/plugins/embed-optimizer/tests/test-cases/nested-figure-embed/expected.html b/plugins/embed-optimizer/tests/test-cases/nested-figure-embed/expected.html index 83acb55cbe..398b40f1c6 100644 --- a/plugins/embed-optimizer/tests/test-cases/nested-figure-embed/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/nested-figure-embed/expected.html @@ -3,16 +3,16 @@ ... diff --git a/plugins/embed-optimizer/tests/test-cases/single-spotify-embed-outside-viewport-with-subsequent-script/expected.html b/plugins/embed-optimizer/tests/test-cases/single-spotify-embed-outside-viewport-with-subsequent-script/expected.html index eef9cb494d..034fcb0eb2 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-spotify-embed-outside-viewport-with-subsequent-script/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-spotify-embed-outside-viewport-with-subsequent-script/expected.html @@ -3,10 +3,10 @@ ... diff --git a/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-inside-viewport/expected.html b/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-inside-viewport/expected.html index 3f9b85510f..8ef634694e 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-inside-viewport/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-inside-viewport/expected.html @@ -3,10 +3,10 @@ ... diff --git a/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-outside-viewport-on-mobile/expected.html b/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-outside-viewport-on-mobile/expected.html index 4838c592e3..a6cd5e9714 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-outside-viewport-on-mobile/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-outside-viewport-on-mobile/expected.html @@ -3,13 +3,13 @@ ... - - + +
diff --git a/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-outside-viewport/expected.html b/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-outside-viewport/expected.html index 3eca7ad029..3f054568b3 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-outside-viewport/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-outside-viewport/expected.html @@ -3,10 +3,10 @@ ... diff --git a/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-inside-viewport/expected.html b/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-inside-viewport/expected.html index 77c2fb4ba2..d23b27a1f4 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-inside-viewport/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-inside-viewport/expected.html @@ -3,10 +3,10 @@ ... diff --git a/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-outside-viewport-on-mobile/expected.html b/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-outside-viewport-on-mobile/expected.html index 1ef6758d8a..6c0e67c46e 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-outside-viewport-on-mobile/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-outside-viewport-on-mobile/expected.html @@ -3,15 +3,15 @@ ... - - - - + + + +
diff --git a/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-outside-viewport/expected.html b/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-outside-viewport/expected.html index 487f36e602..a1c36945ee 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-outside-viewport/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-wordpress-tv-embed-outside-viewport/expected.html @@ -3,10 +3,10 @@ ... diff --git a/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-inside-viewport-with-only-mobile-url-metrics/expected.html b/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-inside-viewport-with-only-mobile-url-metrics/expected.html index 69aeac4693..1a61c952a7 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-inside-viewport-with-only-mobile-url-metrics/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-inside-viewport-with-only-mobile-url-metrics/expected.html @@ -3,10 +3,10 @@ ... - - + +
diff --git a/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-inside-viewport/expected.html b/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-inside-viewport/expected.html index 4b9cb4a41d..f100cd182e 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-inside-viewport/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-inside-viewport/expected.html @@ -3,10 +3,10 @@ ... diff --git a/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-outside-viewport-on-mobile/expected.html b/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-outside-viewport-on-mobile/expected.html index af37ca6b53..230e37be9c 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-outside-viewport-on-mobile/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-outside-viewport-on-mobile/expected.html @@ -3,13 +3,13 @@ ... - - + +
diff --git a/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-outside-viewport-with-only-mobile-url-metrics/expected.html b/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-outside-viewport-with-only-mobile-url-metrics/expected.html index 8d842390cd..649ee1cdbf 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-outside-viewport-with-only-mobile-url-metrics/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-outside-viewport-with-only-mobile-url-metrics/expected.html @@ -3,7 +3,7 @@ ... diff --git a/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-outside-viewport/expected.html b/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-outside-viewport/expected.html index eb6c6d364f..695897c274 100644 --- a/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-outside-viewport/expected.html +++ b/plugins/embed-optimizer/tests/test-cases/single-youtube-embed-outside-viewport/expected.html @@ -3,10 +3,10 @@ ... From 46d4ba299db6d5c784393a8219e73173c3918aeb Mon Sep 17 00:00:00 2001 From: Weston Ruter Date: Mon, 3 Feb 2025 17:28:53 -0800 Subject: [PATCH 10/12] Update image-prioritizer test snapshots --- .../expected.html | 2 +- .../expected.html | 10 +++++----- .../expected.html | 4 ++-- .../expected.html | 2 +- .../expected.html | 4 ++-- .../expected.html | 4 ++-- .../expected.html | 2 +- .../expected.html | 8 ++++---- .../expected.html | 2 +- .../expected.html | 2 +- .../expected.html | 2 +- .../expected.html | 2 +- .../responsive-background-images/expected.html | 6 +++--- .../expected.html | 2 +- .../expected.html | 4 ++-- .../expected.html | 6 +++--- .../expected.html | 2 +- 17 files changed, 32 insertions(+), 32 deletions(-) diff --git a/plugins/image-prioritizer/tests/test-cases/common-lcp-image-with-fully-incomplete-sample-data/expected.html b/plugins/image-prioritizer/tests/test-cases/common-lcp-image-with-fully-incomplete-sample-data/expected.html index 6a5d64be0e..2f1010582f 100644 --- a/plugins/image-prioritizer/tests/test-cases/common-lcp-image-with-fully-incomplete-sample-data/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/common-lcp-image-with-fully-incomplete-sample-data/expected.html @@ -2,7 +2,7 @@ ... - +
diff --git a/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-all-breakpoints/expected.html b/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-all-breakpoints/expected.html index d0af6a72e4..dd322130f9 100644 --- a/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-all-breakpoints/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-all-breakpoints/expected.html @@ -2,11 +2,11 @@ ... - - - - - + + + + +
diff --git a/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-non-consecutive-viewport-groups-with-missing-data-for-middle-group/expected.html b/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-non-consecutive-viewport-groups-with-missing-data-for-middle-group/expected.html index 255e096a89..aa4c663120 100644 --- a/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-non-consecutive-viewport-groups-with-missing-data-for-middle-group/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-non-consecutive-viewport-groups-with-missing-data-for-middle-group/expected.html @@ -3,8 +3,8 @@ ... - - + +
diff --git a/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-two-non-consecutive-breakpoints-and-one-is-stale/expected.html b/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-two-non-consecutive-breakpoints-and-one-is-stale/expected.html index 64b8ba2506..479bef4094 100644 --- a/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-two-non-consecutive-breakpoints-and-one-is-stale/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-two-non-consecutive-breakpoints-and-one-is-stale/expected.html @@ -2,7 +2,7 @@ ... - +
diff --git a/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-two-non-consecutive-breakpoints/expected.html b/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-two-non-consecutive-breakpoints/expected.html index a1e6db6595..02fb9e4168 100644 --- a/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-two-non-consecutive-breakpoints/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/different-lcp-elements-for-two-non-consecutive-breakpoints/expected.html @@ -2,8 +2,8 @@ ... - - + +
diff --git a/plugins/image-prioritizer/tests/test-cases/fetch-priority-high-on-lcp-image-common-on-mobile-and-desktop-with-url-metrics-missing-in-other-groups/expected.html b/plugins/image-prioritizer/tests/test-cases/fetch-priority-high-on-lcp-image-common-on-mobile-and-desktop-with-url-metrics-missing-in-other-groups/expected.html index ba24685f4c..96be7b3a49 100644 --- a/plugins/image-prioritizer/tests/test-cases/fetch-priority-high-on-lcp-image-common-on-mobile-and-desktop-with-url-metrics-missing-in-other-groups/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/fetch-priority-high-on-lcp-image-common-on-mobile-and-desktop-with-url-metrics-missing-in-other-groups/expected.html @@ -2,8 +2,8 @@ ... - - + +
diff --git a/plugins/image-prioritizer/tests/test-cases/lcp-element-external-background-image-complete-samples-but-element-absent/expected.html b/plugins/image-prioritizer/tests/test-cases/lcp-element-external-background-image-complete-samples-but-element-absent/expected.html index 16279e8784..e9f1e31630 100644 --- a/plugins/image-prioritizer/tests/test-cases/lcp-element-external-background-image-complete-samples-but-element-absent/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/lcp-element-external-background-image-complete-samples-but-element-absent/expected.html @@ -3,7 +3,7 @@ ... - +
diff --git a/plugins/image-prioritizer/tests/test-cases/lcp-element-external-background-image-present-in-document-and-fully-populated-samples/expected.html b/plugins/image-prioritizer/tests/test-cases/lcp-element-external-background-image-present-in-document-and-fully-populated-samples/expected.html index b799f9ee3a..4feb0dced2 100644 --- a/plugins/image-prioritizer/tests/test-cases/lcp-element-external-background-image-present-in-document-and-fully-populated-samples/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/lcp-element-external-background-image-present-in-document-and-fully-populated-samples/expected.html @@ -3,10 +3,10 @@ ... - - - - + + + +
diff --git a/plugins/image-prioritizer/tests/test-cases/lcp-element-external-background-image-present-in-document-and-partially-populated-samples/expected.html b/plugins/image-prioritizer/tests/test-cases/lcp-element-external-background-image-present-in-document-and-partially-populated-samples/expected.html index 58216fe72c..1cb1bc454b 100644 --- a/plugins/image-prioritizer/tests/test-cases/lcp-element-external-background-image-present-in-document-and-partially-populated-samples/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/lcp-element-external-background-image-present-in-document-and-partially-populated-samples/expected.html @@ -3,7 +3,7 @@ ... - +
diff --git a/plugins/image-prioritizer/tests/test-cases/multiple-videos-with-desktop-metrics-missing/expected.html b/plugins/image-prioritizer/tests/test-cases/multiple-videos-with-desktop-metrics-missing/expected.html index c3ccef4936..1b993b85e5 100644 --- a/plugins/image-prioritizer/tests/test-cases/multiple-videos-with-desktop-metrics-missing/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/multiple-videos-with-desktop-metrics-missing/expected.html @@ -2,7 +2,7 @@ ... - +
diff --git a/plugins/image-prioritizer/tests/test-cases/only-mobile-and-desktop-groups-are-populated/expected.html b/plugins/image-prioritizer/tests/test-cases/only-mobile-and-desktop-groups-are-populated/expected.html index 1323295b46..5a72433931 100644 --- a/plugins/image-prioritizer/tests/test-cases/only-mobile-and-desktop-groups-are-populated/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/only-mobile-and-desktop-groups-are-populated/expected.html @@ -5,7 +5,7 @@ - +
diff --git a/plugins/image-prioritizer/tests/test-cases/picture-element-as-lcp-tablet-and-desktop-metrics-missing/expected.html b/plugins/image-prioritizer/tests/test-cases/picture-element-as-lcp-tablet-and-desktop-metrics-missing/expected.html index d3119732ba..b8afa42a9f 100644 --- a/plugins/image-prioritizer/tests/test-cases/picture-element-as-lcp-tablet-and-desktop-metrics-missing/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/picture-element-as-lcp-tablet-and-desktop-metrics-missing/expected.html @@ -2,7 +2,7 @@ ... - +
diff --git a/plugins/image-prioritizer/tests/test-cases/responsive-background-images/expected.html b/plugins/image-prioritizer/tests/test-cases/responsive-background-images/expected.html index 1f84ecca1e..d347a09eeb 100644 --- a/plugins/image-prioritizer/tests/test-cases/responsive-background-images/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/responsive-background-images/expected.html @@ -3,9 +3,9 @@ ... - - - + + +
diff --git a/plugins/image-prioritizer/tests/test-cases/url-metric-only-captured-for-one-breakpoint/expected.html b/plugins/image-prioritizer/tests/test-cases/url-metric-only-captured-for-one-breakpoint/expected.html index 0e045721b8..a98ce9eced 100644 --- a/plugins/image-prioritizer/tests/test-cases/url-metric-only-captured-for-one-breakpoint/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/url-metric-only-captured-for-one-breakpoint/expected.html @@ -3,7 +3,7 @@ ... - + diff --git a/plugins/image-prioritizer/tests/test-cases/video-with-poster-lcp-element-on-desktop-only/expected.html b/plugins/image-prioritizer/tests/test-cases/video-with-poster-lcp-element-on-desktop-only/expected.html index e269f04ac5..4a9cd31260 100644 --- a/plugins/image-prioritizer/tests/test-cases/video-with-poster-lcp-element-on-desktop-only/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/video-with-poster-lcp-element-on-desktop-only/expected.html @@ -2,8 +2,8 @@ ... - - + +
diff --git a/plugins/image-prioritizer/tests/test-cases/video-with-poster-lcp-element-on-mobile-and-desktop-but-not-tablet/expected.html b/plugins/image-prioritizer/tests/test-cases/video-with-poster-lcp-element-on-mobile-and-desktop-but-not-tablet/expected.html index 873928914a..07a0087856 100644 --- a/plugins/image-prioritizer/tests/test-cases/video-with-poster-lcp-element-on-mobile-and-desktop-but-not-tablet/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/video-with-poster-lcp-element-on-mobile-and-desktop-but-not-tablet/expected.html @@ -2,9 +2,9 @@ ... - - - + + +
diff --git a/plugins/image-prioritizer/tests/test-cases/video-without-poster-lcp-element-on-desktop-only/expected.html b/plugins/image-prioritizer/tests/test-cases/video-without-poster-lcp-element-on-desktop-only/expected.html index 45a608b956..2d51d9aed9 100644 --- a/plugins/image-prioritizer/tests/test-cases/video-without-poster-lcp-element-on-desktop-only/expected.html +++ b/plugins/image-prioritizer/tests/test-cases/video-without-poster-lcp-element-on-desktop-only/expected.html @@ -2,7 +2,7 @@ ... - +
From ea7b2bce0ff3c3ef3ee99d67ef61c793f404b312 Mon Sep 17 00:00:00 2001 From: Weston Ruter Date: Mon, 3 Feb 2025 17:36:07 -0800 Subject: [PATCH 11/12] Fix edge case for generating embed min-height when there are no breakpoints --- .../class-embed-optimizer-tag-visitor.php | 15 ++++++++++--- .../buffer.html | 16 ++++++++++++++ .../expected.html | 21 +++++++++++++++++++ .../set-up.php | 15 +++++++++++++ 4 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 plugins/embed-optimizer/tests/test-cases/single-twitter-embed-inside-viewport-one-group/buffer.html create mode 100644 plugins/embed-optimizer/tests/test-cases/single-twitter-embed-inside-viewport-one-group/expected.html create mode 100644 plugins/embed-optimizer/tests/test-cases/single-twitter-embed-inside-viewport-one-group/set-up.php diff --git a/plugins/embed-optimizer/class-embed-optimizer-tag-visitor.php b/plugins/embed-optimizer/class-embed-optimizer-tag-visitor.php index 5f657cd9fd..affed74d24 100644 --- a/plugins/embed-optimizer/class-embed-optimizer-tag-visitor.php +++ b/plugins/embed-optimizer/class-embed-optimizer-tag-visitor.php @@ -185,12 +185,21 @@ private function reduce_layout_shifts( OD_Tag_Visitor_Context $context ): void { $style_rules = array(); foreach ( $minimums as $minimum ) { - $style_rules[] = sprintf( - '@media %s { #%s { min-height: %dpx; } }', - od_generate_media_query( $minimum['group']->get_minimum_viewport_width(), $minimum['group']->get_maximum_viewport_width() ), + $style_rule = sprintf( + '#%s { min-height: %dpx; }', $element_id, $minimum['height'] ); + + $media_feature = od_generate_media_query( $minimum['group']->get_minimum_viewport_width(), $minimum['group']->get_maximum_viewport_width() ); + if ( null !== $media_feature ) { + $style_rule = sprintf( + '@media %s { %s }', + $media_feature, + $style_rule + ); + } + $style_rules[] = $style_rule; } $processor->append_head_html( sprintf( "\n", join( "\n", $style_rules ) ) ); diff --git a/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-inside-viewport-one-group/buffer.html b/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-inside-viewport-one-group/buffer.html new file mode 100644 index 0000000000..ede2a7272c --- /dev/null +++ b/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-inside-viewport-one-group/buffer.html @@ -0,0 +1,16 @@ + + + + ... + + +
+
+
+ + +
+
+
+ + diff --git a/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-inside-viewport-one-group/expected.html b/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-inside-viewport-one-group/expected.html new file mode 100644 index 0000000000..c5f6ff7cd8 --- /dev/null +++ b/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-inside-viewport-one-group/expected.html @@ -0,0 +1,21 @@ + + + + ... + + + + + +
+
+
+ + +
+
+
+ + diff --git a/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-inside-viewport-one-group/set-up.php b/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-inside-viewport-one-group/set-up.php new file mode 100644 index 0000000000..8ba2f10064 --- /dev/null +++ b/plugins/embed-optimizer/tests/test-cases/single-twitter-embed-inside-viewport-one-group/set-up.php @@ -0,0 +1,15 @@ +populate_url_metrics( + array( + array( + 'xpath' => '/HTML/BODY/DIV[@class=\'wp-site-blocks\']/*[1][self::FIGURE]/*[1][self::DIV]', + 'isLCP' => true, + 'intersectionRatio' => 1, + 'resizedBoundingClientRect' => array_merge( $test_case->get_sample_dom_rect(), array( 'height' => 500 ) ), + ), + ) + ); +}; From 4c01373ff2785cf6bf31ceab85ad98fdd4e8e8d9 Mon Sep 17 00:00:00 2001 From: Weston Ruter Date: Mon, 3 Feb 2025 17:51:19 -0800 Subject: [PATCH 12/12] Fix logic inversion in isViewportNeeded --- plugins/optimization-detective/detect.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/optimization-detective/detect.js b/plugins/optimization-detective/detect.js index a0d2ef0a76..bf2645392c 100644 --- a/plugins/optimization-detective/detect.js +++ b/plugins/optimization-detective/detect.js @@ -119,7 +119,7 @@ function isViewportNeeded( viewportWidth, urlMetricGroupStatuses ) { ( null === maximumViewportWidth || viewportWidth <= maximumViewportWidth ) ) { - return complete; + return ! complete; } } return false;