<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[35355] trunk: Media: in `wp_get_attachment_image_sizes()`, to streamline and for performance:</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/35355">35355</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/35355","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>wonderboymusic</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2015-10-22 16:45:37 +0000 (Thu, 22 Oct 2015)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Media: in `wp_get_attachment_image_sizes()`, to streamline and for performance:

* Change the 3rd arg from `args` to `width`
* Change `wp_image_sizes_args` filter to `wp_get_attachment_image_sizes`

Updates unit tests.

Props joemcgill.
Fixes <a href="https://core.trac.wordpress.org/ticket/34379">#34379</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcwpincludesmediaphp">trunk/src/wp-includes/media.php</a></li>
<li><a href="#trunktestsphpunittestsmediaphp">trunk/tests/phpunit/tests/media.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcwpincludesmediaphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/media.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/media.php   2015-10-22 16:37:31 UTC (rev 35354)
+++ trunk/src/wp-includes/media.php     2015-10-22 16:45:37 UTC (rev 35355)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -812,13 +812,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $attr = wp_parse_args($attr, $default_attr);
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Generate srcset and sizes if not already present.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ( empty( $attr['srcset'] ) && $srcset = wp_get_attachment_image_srcset( $attachment_id, $size ) ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if ( empty( $attr['srcset'] ) && ( $srcset = wp_get_attachment_image_srcset( $attachment_id, $size ) ) && ( $sizes = wp_get_attachment_image_sizes( $attachment_id, $size, $width ) ) ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                         $attr['srcset'] = $srcset;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $sizes_args = array(
-                               'height' => $height,
-                               'width'  => $width,
-                       );
-                       $attr['sizes'] = wp_get_attachment_image_sizes( $attachment_id, $size, $sizes_args );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+                       if ( empty( $attr['sizes'] ) ) {
+                               $attr['sizes'] = $sizes;
+                       }
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -866,9 +865,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @since 4.4.0
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @param  int    $attachment_id Image attachment ID.
- * @param  string $size          Optional. Name of image size. Default 'medium'.
- * @return array|bool $images {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @param int          $attachment_id Image attachment ID.
+ * @param array|string $size          Image size. Accepts any valid image size, or an array of width and height
+ *                                    values in pixels (in that order). Default 'medium'.
+ * @return array|bool $sources {
</ins><span class="cx" style="display: block; padding: 0 10px">  *     Array image candidate values containing a URL, descriptor type, and
</span><span class="cx" style="display: block; padding: 0 10px">  *     descriptor value. False if none exist.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -975,7 +975,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @param array        $sources       An array of image urls and widths.
</span><span class="cx" style="display: block; padding: 0 10px">         * @param int          $attachment_id Attachment ID for image.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param array|string $size          Size of image, either array or string.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param array|string $size          Image size. Accepts any valid image size, or an array of width and height
+        *                                    values in pixels (in that order). Default 'medium'.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        return apply_filters( 'wp_get_attachment_image_srcset_array', $sources, $attachment_id, $size );
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -985,8 +986,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @since 4.4.0
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @param int    $attachment_id Image attachment ID.
- * @param string $size          Optional. Name of image size. Default 'medium'.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @param int          $attachment_id Image attachment ID.
+ * @param array|string $size          Image size. Accepts any valid image size, or an array of width and height
+ *                                    values in pixels (in that order). Default 'medium'.
</ins><span class="cx" style="display: block; padding: 0 10px">  * @return string|bool A 'srcset' value string or false.
</span><span class="cx" style="display: block; padding: 0 10px">  */
</span><span class="cx" style="display: block; padding: 0 10px"> function wp_get_attachment_image_srcset( $attachment_id, $size = 'medium' ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1009,7 +1011,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @param string       $srcset        A source set formated for a `srcset` attribute.
</span><span class="cx" style="display: block; padding: 0 10px">         * @param int          $attachment_id Attachment ID for image.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param array|string $size          Size of image, either array or string.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param array|string $size          Image size. Accepts any valid image size, or an array of width and height
+        *                                    values in pixels (in that order). Default 'medium'.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        return apply_filters( 'wp_get_attachment_image_srcset', rtrim( $srcset, ', ' ), $attachment_id, $size );
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1019,23 +1022,23 @@
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @since 4.4.0
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @param int    $attachment_id Image attachment ID.
- * @param string $size          Optional. Name of image size. Default value: 'medium'.
- * @param array  $args {
- *     Optional. Arguments to retrieve attachments.
- *
- *     @type array|string $sizes An array or string containing of size information.
- *     @type int          $width A single width value used in the default `sizes` string.
- * }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @param int          $attachment_id Image attachment ID.
+ * @param array|string $size          Image size. Accepts any valid image size, or an array of width and height
+ *                                    values in pixels (in that order). Default 'medium'.
+ * @param int          $width         Optional. Display width of the image.
</ins><span class="cx" style="display: block; padding: 0 10px">  * @return string|bool A valid source size value for use in a 'sizes' attribute or false.
</span><span class="cx" style="display: block; padding: 0 10px">  */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-function wp_get_attachment_image_sizes( $attachment_id, $size = 'medium', $args = null ) {
-       $img_width = 0;
-       // Try to get the image width from $args.
-       if ( is_array( $args ) && ! empty( $args['width'] ) ) {
-               $img_width = (int) $args['width'];
-       } elseif ( $img = image_get_intermediate_size( $attachment_id, $size ) ) {
-               list( $img_width ) = image_constrain_size_for_editor( $img['width'], $img['height'], $size );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+function wp_get_attachment_image_sizes( $attachment_id, $size = 'medium', $width = null ) {
+       // Try to get the image width from $args parameter.
+       if ( is_numeric( $width ) ) {
+               $img_width = (int) $width;
+       // Next, use see if a width value was passed in the $size parameter.
+       } elseif ( is_array( $size ) ) {
+               $img_width = $size[0];
+       // Finally, use the $size name to return the width of the image.
+       } else {
+               $image = image_get_intermediate_size( $attachment_id, $size );
+               $img_width = $image ? $image['width'] : false;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        // Bail early if $image_width isn't set.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1043,76 +1046,21 @@
</span><span class="cx" style="display: block; padding: 0 10px">                return false;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        // Set the image width in pixels.
-       $img_width = $img_width . 'px';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // Setup the default sizes attribute.
+       $sizes = sprintf( '(max-width: %1$dpx) 100vw, %1$dpx', $img_width );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        // Set up our default values.
-       $defaults = array(
-               'sizes' => array(
-                       array(
-                               'size_value' => '100vw',
-                               'mq_value'   => $img_width,
-                               'mq_name'    => 'max-width'
-                       ),
-                       array(
-                               'size_value' => $img_width
-                       ),
-               )
-       );
-
-       $args = wp_parse_args( $args, $defaults );
-
</del><span class="cx" style="display: block; padding: 0 10px">         /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Filter arguments used to create 'sizes' attribute.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Filter the output of wp_get_attachment_image_sizes().
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 4.4.0
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param array   $args          An array of arguments used to create a 'sizes' attribute.
-        * @param int     $attachment_id Post ID of the original image.
-        * @param string  $size          Name of the image size being used.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param string       $sizes         A source size value for use in a 'sizes' attribute.
+        * @param int          $attachment_id Post ID of the original image.
+        * @param array|string $size          Image size. Accepts any valid image size, or an array of width and height
+        *                                    values in pixels (in that order). Default 'medium'.
+        * @param int          $width         Display width of the image.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $args = apply_filters( 'wp_image_sizes_args', $args, $attachment_id, $size );
-
-       // If sizes is passed as a string, just use the string.
-       if ( is_string( $args['sizes'] ) ) {
-               $size_list = $args['sizes'];
-
-       // Otherwise, breakdown the array and build a sizes string.
-       } elseif ( is_array( $args['sizes'] ) ) {
-
-               $size_list = '';
-
-               foreach ( $args['sizes'] as $size ) {
-
-                       // Use 100vw as the size value unless something else is specified.
-                       $size_value = ( $size['size_value'] ) ? $size['size_value'] : '100vw';
-
-                       // If a media length is specified, build the media query.
-                       if ( ! empty( $size['mq_value'] ) ) {
-
-                               $media_length = $size['mq_value'];
-
-                               // Use max-width as the media condition unless min-width is specified.
-                               $media_condition = ( ! empty( $size['mq_name'] ) ) ? $size['mq_name'] : 'max-width';
-
-                               // If a media_length was set, create the media query.
-                               $media_query = '(' . $media_condition . ": " . $media_length . ') ';
-
-                       } else {
-                               // If no media length was set, $media_query is blank.
-                               $media_query = '';
-                       }
-
-                       // Add to the source size list string.
-                       $size_list .= $media_query . $size_value . ', ';
-               }
-
-               // Remove the trailing comma and space from the end of the string.
-               $size_list = substr( $size_list, 0, -2 );
-       }
-
-       // Return the sizes value as $size_list or false.
-       return ( $size_list ) ? $size_list : false;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ return apply_filters( 'wp_get_attachment_image_sizes', $sizes, $attachment_id, $size, $width );
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1177,10 +1125,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">        $id     = preg_match( '/wp-image-([0-9]+)/i', $image, $match_id     ) ? (int) $match_id[1]     : false;
</span><span class="cx" style="display: block; padding: 0 10px">        $size   = preg_match( '/size-([^\s|"]+)/i',   $image, $match_size   ) ? $match_size[1]         : false;
</span><span class="cx" style="display: block; padding: 0 10px">        $width  = preg_match( '/ width="([0-9]+)"/',  $image, $match_width  ) ? (int) $match_width[1]  : false;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        $height = preg_match( '/ height="([0-9]+)"/', $image, $match_height ) ? (int) $match_height[1] : false;
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        if ( $id && false === $size ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $size = array( $width, $height );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $height = preg_match( '/ height="([0-9]+)"/', $image, $match_height ) ? (int) $match_height[1] : false;
+
+               if ( $width && $height ) {
+                       $size = array( $width, $height );
+               }
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /*
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1215,20 +1166,8 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        // If ID and size, try for 'srcset' and 'sizes' and update the markup.
-       if ( $id && $size && $srcset = wp_get_attachment_image_srcset( $id, $size ) ) {
-
-               /*
-                * Pass the 'height' and 'width' to 'wp_get_attachment_image_sizes()' to avoid
-                * recalculating the image size.
-                */
-               $args = array(
-                       'height' => $height,
-                       'width'  => $width,
-               );
-
-               $sizes = wp_get_attachment_image_sizes( $id, $size, $args );
-
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // If ID and size exist, try for 'srcset' and 'sizes' and update the markup.
+       if ( $id && $size && ( $srcset = wp_get_attachment_image_srcset( $id, $size ) ) && ( $sizes = wp_get_attachment_image_sizes( $id, $size, $width ) ) ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 // Format the srcset and sizes string and escape attributes.
</span><span class="cx" style="display: block; padding: 0 10px">                $srcset_and_sizes = sprintf( ' srcset="%s" sizes="%s"', esc_attr( $srcset ), esc_attr( $sizes) );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span></span></pre></div>
<a id="trunktestsphpunittestsmediaphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/phpunit/tests/media.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/tests/media.php       2015-10-22 16:37:31 UTC (rev 35354)
+++ trunk/tests/phpunit/tests/media.php 2015-10-22 16:45:37 UTC (rev 35355)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -898,19 +898,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 33641
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        function test_wp_get_attachment_image_sizes() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                global $content_width;
-
</del><span class="cx" style="display: block; padding: 0 10px">                 // Test sizes against the default WP sizes.
</span><span class="cx" style="display: block; padding: 0 10px">                $intermediates = array('thumbnail', 'medium', 'large');
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                foreach( $intermediates as $int ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        $width = get_option( $int . '_size_w' );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        // The sizes width gets constrained to $content_width by default.
-                       if ( $content_width > 0 ) {
-                               $width = ( $width > $content_width ) ? $content_width : $width;
-                       }
-
</del><span class="cx" style="display: block; padding: 0 10px">                         $expected = '(max-width: ' . $width . 'px) 100vw, ' . $width . 'px';
</span><span class="cx" style="display: block; padding: 0 10px">                        $sizes = wp_get_attachment_image_sizes( self::$large_id, $int );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -921,27 +914,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 33641
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        function test_wp_get_attachment_image_sizes_with_args() {
-               $args = array(
-                       'sizes' => array(
-                               array(
-                                       'size_value'    => '10em',
-                                       'mq_value'              => '60em',
-                                       'mq_name'                       => 'min-width'
-                               ),
-                               array(
-                                       'size_value'    => '20em',
-                                       'mq_value'              => '30em',
-                                       'mq_name'                       => 'min-width'
-                               ),
-                               array(
-                                       'size_value'    => 'calc(100vm - 30px)'
-                               ),
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ function test_wp_get_attachment_image_sizes_with_width() {
+               $width = 350;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $expected = '(min-width: 60em) 10em, (min-width: 30em) 20em, calc(100vm - 30px)';
-               $sizes = wp_get_attachment_image_sizes( self::$large_id, 'medium', $args );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $expected = '(max-width: 350px) 100vw, 350px';
+               $sizes = wp_get_attachment_image_sizes( self::$large_id, 'medium', $width );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $this->assertSame( $expected, $sizes );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -949,29 +926,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="cx" style="display: block; padding: 0 10px">         * @ticket 33641
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        function test_wp_get_attachment_image_sizes_with_filtered_args() {
-               // Add our test filter.
-               add_filter( 'wp_image_sizes_args', array( $this, '_test_wp_image_sizes_args' ) );
-
-               $sizes = wp_get_attachment_image_sizes( self::$large_id, 'medium' );
-
-               remove_filter( 'wp_image_sizes_args', array( $this, '_test_wp_image_sizes_args' ) );
-
-               // Evaluate that the sizes returned is what we expected.
-               $this->assertSame( $sizes, '100vm');
-       }
-
-       /**
-        * A simple test filter for wp_get_attachment_image_sizes().
-        */
-       function _test_wp_image_sizes_args( $args ) {
-               $args['sizes'] = "100vm";
-               return $args;
-       }
-
-       /**
-        * @ticket 33641
-        */
</del><span class="cx" style="display: block; padding: 0 10px">         function test_wp_make_content_images_responsive() {
</span><span class="cx" style="display: block; padding: 0 10px">                $srcset = sprintf( 'srcset="%s"', wp_get_attachment_image_srcset( self::$large_id, 'medium' ) );
</span><span class="cx" style="display: block; padding: 0 10px">                $sizes = sprintf( 'sizes="%s"', wp_get_attachment_image_sizes( self::$large_id, 'medium' ) );
</span></span></pre>
</div>
</div>

</body>
</html>