diff --git a/CHANGELOG.md b/CHANGELOG.md index 567d5d8c..323198f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file, per [the Ke ## [Unreleased] - TBD +## [2.3.1] - 2024-12-05 +### Fixed +- Revert changes made to how we determine custom dimensions for SVGs (props [@dkotter](https://github.com/dkotter), [@martinpl](https://github.com/martinpl), [@subfighter3](https://github.com/subfighter3), [@smerriman](https://github.com/smerriman), [@gigatyrant](https://github.com/gigatyrant), [@jeffpaul](https://github.com/jeffpaul), [@iamdharmesh](https://github.com/iamdharmesh) via [#238](https://github.com/10up/safe-svg/pull/238)). + ## [2.3.0] - 2024-11-25 **Note that this release bumps the WordPress minimum version from 6.4 to 6.5.** @@ -388,6 +392,7 @@ All notable changes to this project will be documented in this file, per [the Ke - Initial Release. [Unreleased]: https://github.com/10up/safe-svg/compare/trunk...develop +[2.3.1]: https://github.com/10up/safe-svg/compare/2.3.0...2.3.1 [2.3.0]: https://github.com/10up/safe-svg/compare/2.2.6...2.3.0 [2.2.6]: https://github.com/10up/safe-svg/compare/2.2.5...2.2.6 [2.2.5]: https://github.com/10up/safe-svg/compare/2.2.4...2.2.5 diff --git a/CREDITS.md b/CREDITS.md index f1f30e42..ad00d951 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -12,7 +12,7 @@ The following individuals are responsible for curating the list of issues, respo Thank you to all the people who have already contributed to this repository via bug reports, code, design, ideas, project management, translation, testing, etc. -[Daryll Doyle (@darylldoyle)](https://github.com/darylldoyle), [Lewis Cowles (@LewisCowles1986)](https://github.com/LewisCowles1986), [Daniel M. Hendricks (@dmhendricks)](https://github.com/dmhendricks), [Dan Pock (@mallardduck)](https://github.com/mallardduck), [K. Adam White (@kadamwhite)](https://github.com/kadamwhite), [Joe Hoyle (@joehoyle)](https://github.com/joehoyle), [Jeffrey Paul (@jeffpaul)](https://github.com/jeffpaul), [Brandon Berg (@BBerg10up)](https://github.com/BBerg10up), [Max Lyuchin (@cadic)](https://github.com/cadic), [Mehidi Hassan (@mehidi258)](https://github.com/mehidi258), [Dharmesh Patel (@iamdharmesh)](https://github.com/iamdharmesh), [Timothy Decker (@amdd-tim)](https://github.com/amdd-tim), [Brooke Campbell](https://www.linkedin.com/in/brookecampbelldesign/), [Mehul Kaklotar (@mehulkaklotar)](https://github.com/mehulkaklotar), [@smerriman](https://github.com/smerriman), [Darin Kotter (@dkotter)](https://github.com/dkotter), [Manuel Friedli (@fritteli)](https://github.com/fritteli), [David Hamann (@davidhamann)](https://github.com/davidhamann), [@j-hoffmann](https://github.com/j-hoffmann), [Peter Wilson (@peterwilsoncc)](https://github.com/peterwilsoncc), [Torsten Landsiedel (@Zodiac1978)](https://github.com/Zodiac1978), [Axel DUCORON (@aksld)](https://github.com/aksld), [Mario Rader (@r8r)](https://github.com/r8r), [Jeremy Turowetz (@jerturowetz)](https://github.com/jerturowetz), [Robert O'Rourke (@roborourke)](https://github.com/roborourke), [Dominik Schilling (@ocean90)](https://github.com/ocean90), [Adam Wills (@AdamWills)](https://github.com/AdamWills), [Faisal Alvi (@faisal-alvi)](https://github.com/faisal-alvi), [Siddharth Thevaril (@Sidsector9)](https://github.com/Sidsector9), [Cory Hughart (@cr0ybot)](https://github.com/cr0ybot), [Cory Birdsong (@cbirdsong)](https://github.com/cbirdsong), [Vikram Moparthy (@vikrampm1)](https://github.com/vikrampm1), [Garth Gutenberg (@ggutenberg)](https://github.com/ggutenberg), [Jayedul Kabir (@jayedul)](https://github.com/jayedul), [Marcel Freinbichler (@freinbichler)](https://github.com/freinbichler), [IanDelMar (@IanDelMar)](https://github.com/IanDelMar), [Ravinder Kumar (@ravinderk)](https://github.com/ravinderk), [GitHub Dependabot (@dependabot)](https://github.com/apps/dependabot), [Santiago Dimattia (@sdmtt)](https://github.com/sdmtt), [Ben Marshall (@bmarshall511)](https://github.com/bmarshall511), [Viktor Szépe (@szepeviktor)](https://github.com/szepeviktor), [Dhanendran Rajagopal (@dhanendran)](https://github.com/dhanendran), [Curtis Loisel (@csloisel)](https://github.com/csloisel), [Giorgos Sarigiannidis (@gsarig)](https://github.com/gsarig), [Fabian Kägy (@fabiankaegy)](https://github.com/fabiankaegy), [Quamruz Zaman (@zamanq)](https://github.com/zamanq), [Sumit Bagthariya (@qasumitbagthariya)](https://github.com/qasumitbagthariya), [Toby Schrapel (@tobeycodes)](https://github.com/tobeycodes), [Shazahan Kabir Saju (@sksaju)](https://github.com/sksaju), [Chris Abraham (@cjyabraham)](https://github.com/cjyabraham), [Hercilio Martins Ortiz (@Hercilio1)](https://github.com/Hercilio1), [Peter Sorensen (@psorensen)](https://github.com/psorensen), [Dave Adams (@tictag)](https://github.com/tictag), [Cormac Nicholson (@metashield-ie)](https://github.com/metashield-ie), [Konstantinos Galanakis (@kmgalanakis)](https://github.com/kmgalanakis), [(@liz1kiweno)](https://github.com/liz1kiweno), [Carlos G. (@cguidog)](https://github.com/cguidog), [Drazen Bebic (@drazenbebic)](https://github.com/drazenbebic), [Kirtan Gajjar (@kirtangajjar)](https://github.com/kirtangajjar), [Sudip Dadhaniya (@sudip-md)](https://github.com/sudip-md), [Ankit K Gupta (@ankitguptaindia)](https://github.com/ankitguptaindia), [Alex Concha (@xknown)](https://github.com/xknown), [Manoj Siddoji (@manojsiddoji)](https://github.com/manojsiddoji), [Gabriel Glogoški (@gabriel-glo)](https://github.com/gabriel-glo), [Jeremy Moore (@jeremymoore)](https://github.com/jeremymoore), [Tyler Bailey (@TylerB24890)](https://github.com/TylerB24890), [Rolf Siebers (@rolf-yoast)](https://github.com/rolf-yoast), [Colin Swinney (@colinswinney)](https://github.com/colinswinney). +[Daryll Doyle (@darylldoyle)](https://github.com/darylldoyle), [Lewis Cowles (@LewisCowles1986)](https://github.com/LewisCowles1986), [Daniel M. Hendricks (@dmhendricks)](https://github.com/dmhendricks), [Dan Pock (@mallardduck)](https://github.com/mallardduck), [K. Adam White (@kadamwhite)](https://github.com/kadamwhite), [Joe Hoyle (@joehoyle)](https://github.com/joehoyle), [Jeffrey Paul (@jeffpaul)](https://github.com/jeffpaul), [Brandon Berg (@BBerg10up)](https://github.com/BBerg10up), [Max Lyuchin (@cadic)](https://github.com/cadic), [Mehidi Hassan (@mehidi258)](https://github.com/mehidi258), [Dharmesh Patel (@iamdharmesh)](https://github.com/iamdharmesh), [Timothy Decker (@amdd-tim)](https://github.com/amdd-tim), [Brooke Campbell](https://www.linkedin.com/in/brookecampbelldesign/), [Mehul Kaklotar (@mehulkaklotar)](https://github.com/mehulkaklotar), [@smerriman](https://github.com/smerriman), [Darin Kotter (@dkotter)](https://github.com/dkotter), [Manuel Friedli (@fritteli)](https://github.com/fritteli), [David Hamann (@davidhamann)](https://github.com/davidhamann), [@j-hoffmann](https://github.com/j-hoffmann), [Peter Wilson (@peterwilsoncc)](https://github.com/peterwilsoncc), [Torsten Landsiedel (@Zodiac1978)](https://github.com/Zodiac1978), [Axel DUCORON (@aksld)](https://github.com/aksld), [Mario Rader (@r8r)](https://github.com/r8r), [Jeremy Turowetz (@jerturowetz)](https://github.com/jerturowetz), [Robert O'Rourke (@roborourke)](https://github.com/roborourke), [Dominik Schilling (@ocean90)](https://github.com/ocean90), [Adam Wills (@AdamWills)](https://github.com/AdamWills), [Faisal Alvi (@faisal-alvi)](https://github.com/faisal-alvi), [Siddharth Thevaril (@Sidsector9)](https://github.com/Sidsector9), [Cory Hughart (@cr0ybot)](https://github.com/cr0ybot), [Cory Birdsong (@cbirdsong)](https://github.com/cbirdsong), [Vikram Moparthy (@vikrampm1)](https://github.com/vikrampm1), [Garth Gutenberg (@ggutenberg)](https://github.com/ggutenberg), [Jayedul Kabir (@jayedul)](https://github.com/jayedul), [Marcel Freinbichler (@freinbichler)](https://github.com/freinbichler), [IanDelMar (@IanDelMar)](https://github.com/IanDelMar), [Ravinder Kumar (@ravinderk)](https://github.com/ravinderk), [GitHub Dependabot (@dependabot)](https://github.com/apps/dependabot), [Santiago Dimattia (@sdmtt)](https://github.com/sdmtt), [Ben Marshall (@bmarshall511)](https://github.com/bmarshall511), [Viktor Szépe (@szepeviktor)](https://github.com/szepeviktor), [Dhanendran Rajagopal (@dhanendran)](https://github.com/dhanendran), [Curtis Loisel (@csloisel)](https://github.com/csloisel), [Giorgos Sarigiannidis (@gsarig)](https://github.com/gsarig), [Fabian Kägy (@fabiankaegy)](https://github.com/fabiankaegy), [Quamruz Zaman (@zamanq)](https://github.com/zamanq), [Sumit Bagthariya (@qasumitbagthariya)](https://github.com/qasumitbagthariya), [Toby Schrapel (@tobeycodes)](https://github.com/tobeycodes), [Shazahan Kabir Saju (@sksaju)](https://github.com/sksaju), [Chris Abraham (@cjyabraham)](https://github.com/cjyabraham), [Hercilio Martins Ortiz (@Hercilio1)](https://github.com/Hercilio1), [Peter Sorensen (@psorensen)](https://github.com/psorensen), [Dave Adams (@tictag)](https://github.com/tictag), [Cormac Nicholson (@metashield-ie)](https://github.com/metashield-ie), [Konstantinos Galanakis (@kmgalanakis)](https://github.com/kmgalanakis), [(@liz1kiweno)](https://github.com/liz1kiweno), [Carlos G. (@cguidog)](https://github.com/cguidog), [Drazen Bebic (@drazenbebic)](https://github.com/drazenbebic), [Kirtan Gajjar (@kirtangajjar)](https://github.com/kirtangajjar), [Sudip Dadhaniya (@sudip-md)](https://github.com/sudip-md), [Ankit K Gupta (@ankitguptaindia)](https://github.com/ankitguptaindia), [Alex Concha (@xknown)](https://github.com/xknown), [Manoj Siddoji (@manojsiddoji)](https://github.com/manojsiddoji), [Gabriel Glogoški (@gabriel-glo)](https://github.com/gabriel-glo), [Jeremy Moore (@jeremymoore)](https://github.com/jeremymoore), [Tyler Bailey (@TylerB24890)](https://github.com/TylerB24890), [Rolf Siebers (@rolf-yoast)](https://github.com/rolf-yoast), [Colin Swinney (@colinswinney)](https://github.com/colinswinney), [Marcin Panniak (@martinpl)](https://github.com/martinpl), [Pyetro Tarsitano (@subfighter3)](https://github.com/subfighter3), [Romain Allard (@gigatyrant)](https://github.com/gigatyrant). ## Libraries diff --git a/package-lock.json b/package-lock.json index 6fe8109b..16085309 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@10up/safe-svg", - "version": "2.3.0", + "version": "2.3.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@10up/safe-svg", - "version": "2.3.0", + "version": "2.3.1", "license": "GPL-2.0-or-later", "dependencies": { "react-svg": "^16.1.18", diff --git a/package.json b/package.json index 49eab678..a631f5b7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@10up/safe-svg", - "version": "2.3.0", + "version": "2.3.1", "description": "Enable SVG uploads and sanitize them to stop XML/SVG vulnerabilities in your WordPress website", "homepage": "https://github.com/10up/safe-svg#readme", "license": "GPL-2.0-or-later", diff --git a/readme.txt b/readme.txt index b32cf9cb..e876c672 100644 --- a/readme.txt +++ b/readme.txt @@ -3,7 +3,7 @@ Contributors: 10up, enshrined, jeffpaul Tags: svg, security, media, vector, mime Requires at least: 6.5 Tested up to: 6.7 -Stable tag: 2.3.0 +Stable tag: 2.3.1 License: GPL-2.0-or-later License URI: https://spdx.org/licenses/GPL-2.0-or-later.html @@ -65,6 +65,9 @@ They take one argument that must be returned. See below for examples: == Changelog == += 2.3.1 - 2024-12-05 = +* **Fixed:** Revert changes made to how we determine custom dimensions for SVGs (props [@dkotter](https://github.com/dkotter), [@martinpl](https://github.com/martinpl), [@subfighter3](https://github.com/subfighter3), [@smerriman](https://github.com/smerriman), [@gigatyrant](https://github.com/gigatyrant), [@jeffpaul](https://github.com/jeffpaul), [@iamdharmesh](https://github.com/iamdharmesh) via [#238](https://github.com/10up/safe-svg/pull/238)). + = 2.3.0 - 2024-11-25 = * **Added:** New setting that allows large SVG files (roughly 10MB or greater) to be uploaded and sanitized properly (props [@kirtangajjar](https://github.com/kirtangajjar), [@faisal-alvi](https://github.com/faisal-alvi), [@darylldoyle](https://github.com/darylldoyle), [@manojsiddoji](https://github.com/manojsiddoji), [@dkotter](https://github.com/dkotter) via [#201](https://github.com/10up/safe-svg/pull/201)). * **Added:** New `get_svg_dimensions` function in order to reduce code duplication (props [@gabriel-glo](https://github.com/gabriel-glo), [@jeremymoore](https://github.com/jeremymoore), [@darylldoyle](https://github.com/darylldoyle), [@iamdharmesh](https://github.com/iamdharmesh), [@dkotter](https://github.com/dkotter) via [#216](https://github.com/10up/safe-svg/pull/216)). diff --git a/safe-svg.php b/safe-svg.php index 6486b051..4f01f81c 100644 --- a/safe-svg.php +++ b/safe-svg.php @@ -3,7 +3,7 @@ * Plugin Name: Safe SVG * Plugin URI: https://wordpress.org/plugins/safe-svg/ * Description: Enable SVG uploads and sanitize them to stop XML/SVG vulnerabilities in your WordPress website - * Version: 2.3.0 + * Version: 2.3.1 * Requires at least: 6.5 * Requires PHP: 7.4 * Author: 10up @@ -24,7 +24,7 @@ exit; // Exit if accessed directly. } -define( 'SAFE_SVG_VERSION', '2.3.0' ); +define( 'SAFE_SVG_VERSION', '2.3.1' ); define( 'SAFE_SVG_PLUGIN_DIR', __DIR__ ); define( 'SAFE_SVG_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); @@ -256,7 +256,7 @@ public function check_for_svg( $file ) { return $file; } - $file_name = isset( $file['name'] ) ? $file['name'] : ''; + $file_name = isset( $file['name'] ) ? $file['name'] : ''; // Allow SVGs to be uploaded when this function runs. add_filter( 'upload_mimes', array( $this, 'allow_svg' ) ); @@ -269,7 +269,7 @@ public function check_for_svg( $file ) { // This is because wp_check_filetype_and_ext() is called multiple times during the upload process. add_filter( 'pre_move_uploaded_file', array( $this, 'pre_move_uploaded_file' ) ); - $type = ! empty( $wp_filetype['type'] ) ? $wp_filetype['type'] : ''; + $type = ! empty( $wp_filetype['type'] ) ? $wp_filetype['type'] : ''; if ( 'image/svg+xml' === $type ) { if ( ! $this->current_user_can_upload_svg() ) { @@ -444,9 +444,9 @@ public function fix_admin_preview( $response, $attachment, $meta ) { */ public function one_pixel_fix( $image, $attachment_id, $size, $icon ) { if ( get_post_mime_type( $attachment_id ) === 'image/svg+xml' ) { - $dimensions = $this->get_svg_dimensions( $attachment_id, $size ); + $dimensions = $this->svg_dimensions( $attachment_id, $size ); - if ( is_array( $dimensions ) && isset( $dimensions['height'], $dimensions['width'] ) ) { + if ( $dimensions ) { $image[1] = $dimensions['width']; $image[2] = $dimensions['height']; } else { @@ -499,12 +499,22 @@ public function load_custom_admin_style() { */ public function get_image_tag_override( $html, $id, $alt, $title, $align, $size ) { $mime = get_post_mime_type( $id ); + if ( 'image/svg+xml' === $mime ) { - $dimensions = $this->get_svg_dimensions( $id, $size ); + if ( is_array( $size ) ) { + $width = $size[0]; + $height = $size[1]; + } elseif ( 'full' === $size && $dimensions = $this->svg_dimensions( $id ) ) { // phpcs:ignore WordPress.CodeAnalysis.AssignmentInCondition.Found, Squiz.PHP.DisallowMultipleAssignments.FoundInControlStructure + $width = $dimensions['width']; + $height = $dimensions['height']; + } else { + $width = get_option( "{$size}_size_w", false ); + $height = get_option( "{$size}_size_h", false ); + } - if ( is_array( $dimensions ) && isset( $dimensions['height'], $dimensions['width'] ) ) { - $html = str_replace( 'width="1" ', sprintf( 'width="%s" ', $dimensions['width'] ), $html ); - $html = str_replace( 'height="1" ', sprintf( 'height="%s" ', $dimensions['height'] ), $html ); + if ( $height && $width ) { + $html = str_replace( 'width="1" ', sprintf( 'width="%s" ', $width ), $html ); + $html = str_replace( 'height="1" ', sprintf( 'height="%s" ', $height ), $html ); } else { $html = str_replace( 'width="1" ', '', $html ); $html = str_replace( 'height="1" ', '', $html ); @@ -765,37 +775,6 @@ protected function str_ends_with( $haystack, $needle ) { $len = strlen( $needle ); return 0 === substr_compare( $haystack, $needle, -$len, $len ); } - - /** - * Return custom width or height of the SVG image. - * - * @param int $id Image attachment ID. - * @param string|array $size Size of image. Image size or array of width and height values - * (in that order). Default 'thumbnail'. - * - * @return array|bool Width or height of the SVG image, or false if not found. - */ - protected function get_svg_dimensions( $id, $size ) { - $dimensions = $this->svg_dimensions( $id ); - - if ( is_array( $size ) ) { - $width = $size[0]; - $height = $size[1]; - } elseif ( 'full' === $size && is_array( $dimensions ) && isset( $dimensions['width'], $dimensions['height'] ) ) { - $width = $dimensions['width']; - $height = $dimensions['height']; - } else { - $width = get_option( "{$size}_size_w", false ); - $height = get_option( "{$size}_size_h", false ); - } - - if ( $dimensions ) { - $dimensions['width'] = $width; - $dimensions['height'] = $height; - } - - return $dimensions; - } } } diff --git a/tests/cypress/e2e/safe-svg.cy.js b/tests/cypress/e2e/safe-svg.cy.js index 00e7cb7d..5e033b99 100644 --- a/tests/cypress/e2e/safe-svg.cy.js +++ b/tests/cypress/e2e/safe-svg.cy.js @@ -16,21 +16,21 @@ describe('Safe SVG Tests', () => { }); it('Admin can add SVG block to a post', () => { - cy.uploadMedia('.wordpress-org/icon.svg'); - - cy.createPost( { - title: 'SVG Block Test', - beforeSave: () => { - cy.insertBlock( 'safe-svg/svg-icon' ); - cy.getBlockEditor().find( '.block-editor-media-placeholder' ).contains( 'button', 'Media Library' ).click(); - cy.get( '#menu-item-browse' ).click(); - cy.get( '.attachments-wrapper li:first .thumbnail' ).click(); - cy.get( '.media-modal .media-button-select' ).click(); - }, - } ).then( post => { - cy.visit( `/wp-admin/post.php?post=${post.id}&action=edit` ); - cy.getBlockEditor().find( '.wp-block-safe-svg-svg-icon' ); - } ); + cy.uploadMedia('.wordpress-org/icon.svg'); + + cy.createPost( { + title: 'SVG Block Test', + beforeSave: () => { + cy.insertBlock( 'safe-svg/svg-icon' ); + cy.getBlockEditor().find( '.block-editor-media-placeholder' ).contains( 'button', 'Media Library' ).click(); + cy.get( '#menu-item-browse' ).click(); + cy.get( '.attachments-wrapper li:first .thumbnail' ).click(); + cy.get( '.media-modal .media-button-select' ).click(); + }, + } ).then( post => { + cy.visit( `/wp-admin/post.php?post=${post.id}&action=edit` ); + cy.getBlockEditor().find( '.wp-block-safe-svg-svg-icon' ); + } ); } ); /** @@ -49,8 +49,8 @@ describe('Safe SVG Tests', () => { // Test cy.uploadMedia('tests/cypress/fixtures/custom.svg'); cy.get('#media-items .media-item a.edit-attachment').invoke('attr', 'href').then(editLink => { - cy.visit(editLink); - } ); + cy.visit(editLink); + } ); cy.get('input#attachment_url').invoke('val') .then(url => { cy.request(url) @@ -74,8 +74,8 @@ describe('Safe SVG Tests', () => { cy.uploadMedia('tests/cypress/fixtures/custom.svg'); cy.get('#media-items .media-item a.edit-attachment').invoke('attr', 'href').then(editLink => { - cy.visit( editLink ); - }); + cy.visit( editLink ); + }); cy.get('input#attachment_url').invoke('val') .then(url => { cy.request(url) @@ -105,4 +105,41 @@ describe('Safe SVG Tests', () => { cy.activatePlugin('safe-svg-cypress-optimizer-test-plugin'); cy.createPost('Hello World'); }); + + it('Output of wp_get_attachment_image should use full svg dimensions', () => { + // Activate test plugin. + cy.activatePlugin('safe-svg-cypress-test-plugin'); + + // Visit the home page. + cy.visit('/'); + + // Verify that the SVG images are displayed with the correct dimensions. + cy.get('#thumbnail-image').should('have.attr', 'width', '256').should('have.attr', 'height', '256'); + cy.get('#medium-image').should('have.attr', 'width', '256').should('have.attr', 'height', '256'); + cy.get('#large-image').should('have.attr', 'width', '256').should('have.attr', 'height', '256'); + cy.get('#full-image').should('have.attr', 'width', '256').should('have.attr', 'height', '256'); + cy.get('#custom-image').should('have.attr', 'width', '256').should('have.attr', 'height', '256'); + + // Deactivate the test plugin. + cy.deactivatePlugin('safe-svg-cypress-test-plugin'); + }); + + it('Output of get_image_tag should use custom dimensions', () => { + // Activate test plugin. + cy.activatePlugin('safe-svg-cypress-test-plugin'); + + // Visit the home page. + cy.visit('/'); + + // Verify that the SVG images are displayed with the correct dimensions. + // TODO: these are the sizes returned but seems they are not correct. get_image_tag_override needs to be fixed. + cy.get('.size-thumbnail.wp-image-6').should('have.attr', 'width', '150').should('have.attr', 'height', '150'); + cy.get('.size-medium.wp-image-6').should('have.attr', 'width', '300').should('have.attr', 'height', '300'); + cy.get('.size-large.wp-image-6').should('have.attr', 'width', '1024').should('have.attr', 'height', '1024'); + cy.get('.size-full.wp-image-6').should('have.attr', 'width', '256').should('have.attr', 'height', '256'); + cy.get('.size-100x120.wp-image-6').should('have.attr', 'width', '100').should('have.attr', 'height', '100'); + + // Deactivate the test plugin. + cy.deactivatePlugin('safe-svg-cypress-test-plugin'); + }); }); diff --git a/tests/cypress/test-plugin/e2e-test-plugin.php b/tests/cypress/test-plugin/e2e-test-plugin.php index b01810b3..0689e06a 100644 --- a/tests/cypress/test-plugin/e2e-test-plugin.php +++ b/tests/cypress/test-plugin/e2e-test-plugin.php @@ -21,3 +21,19 @@ function ( $tags ) { return $tags; } ); + +add_action( + 'wp_body_open', + function () { + echo wp_get_attachment_image( 6, 'thumbnail', false, [ 'id' => 'thumbnail-image' ] ); + echo wp_get_attachment_image( 6, 'medium', false, [ 'id' => 'medium-image' ] ); + echo wp_get_attachment_image( 6, 'large', false, [ 'id' => 'large-image' ] ); + echo wp_get_attachment_image( 6, 'full', false, [ 'id' => 'full-image' ] ); + echo wp_get_attachment_image( 6, [ 100, 120 ], false, [ 'id' => 'custom-image' ] ); + echo get_image_tag( 6, '', '', '', 'thumbnail' ); + echo get_image_tag( 6, '', '', '', 'medium' ); + echo get_image_tag( 6, '', '', '', 'large' ); + echo get_image_tag( 6, '', '', '', 'full' ); + echo get_image_tag( 6, '', '', '', [ 100, 120 ] ); + } +); diff --git a/tests/unit/test-safe-svg.php b/tests/unit/test-safe-svg.php index a7b4c562..1272d8df 100644 --- a/tests/unit/test-safe-svg.php +++ b/tests/unit/test-safe-svg.php @@ -275,7 +275,7 @@ public function test_one_pixel_fix() { ); // Test SVG Dimensions - $image_sizes = $this->instance->one_pixel_fix( array(), 1, 'full', false ); + $image_sizes = $this->instance->one_pixel_fix( array(), 1, 'thumbnail', false ); if ( ! empty( $image_sizes ) ) { $image_sizes = array_map( 'intval', $image_sizes ); } @@ -307,8 +307,8 @@ public function test_one_pixel_fix() { } $this->assertSame( array( - 1 => 500, - 2 => 500, + 1 => 600, + 2 => 600, ), $image_sizes );