Ticket #32171: 32171.3.diff
| File 32171.3.diff, 2.8 KB (added by , 10 years ago) |
|---|
-
src/wp-admin/includes/image-edit.php
diff --git src/wp-admin/includes/image-edit.php src/wp-admin/includes/image-edit.php index c614a77..9533d0c 100644
function wp_save_image( $post_id ) { 825 825 $success = $delete = $nocrop = true; 826 826 } 827 827 828 /* 829 * We need to remove any existing resized image files because 830 * a new crop could generate different image file sizes and 831 * different file names, so the new resized images won't 832 * necessarily overwrite the existing resized image files 833 * https://core.trac.wordpress.org/ticket/32171 834 */ 835 if ( defined( 'IMAGE_EDIT_OVERWRITE' ) && IMAGE_EDIT_OVERWRITE && ! empty( $meta['sizes'] ) ) { 836 foreach ( $meta['sizes'] as $size ) { 837 if ( ! empty( $size['file'] ) && preg_match( '/-e[0-9]{13}-/', $size['file'] ) ) { 838 $delete_file = path_join( $path_parts['dirname'], $size['file'] ); 839 wp_delete_file( $delete_file ); 840 } 841 } 842 } 843 828 844 if ( isset( $sizes ) ) { 829 845 $_sizes = array(); 830 846 -
tests/phpunit/tests/ajax/MediaEdit.php
diff --git tests/phpunit/tests/ajax/MediaEdit.php tests/phpunit/tests/ajax/MediaEdit.php index 7ef9469..2ec0756 100644
class Tests_Ajax_MediaEdit extends WP_Ajax_UnitTestCase { 51 51 $this->assertArrayHasKey('sizes', $media_meta, 'cropped attachment should have size data'); 52 52 $this->assertArrayHasKey('medium', $media_meta['sizes'], 'cropped attachment should have data for medium size'); 53 53 } 54 55 /** 56 * @ticket 32171 57 */ 58 public function testImageEditOverwriteConstant() { 59 define( 'IMAGE_EDIT_OVERWRITE', true ); 60 61 include_once( ABSPATH . 'wp-admin/includes/image-edit.php' ); 62 63 $filename = DIR_TESTDATA . '/images/canola.jpg'; 64 $contents = file_get_contents( $filename ); 65 66 $upload = wp_upload_bits( basename( $filename ), null, $contents ); 67 $id = $this->_make_attachment( $upload ); 68 69 $_REQUEST['action'] = 'image-editor'; 70 $_REQUEST['context'] = 'edit-attachment'; 71 $_REQUEST['postid'] = $id; 72 $_REQUEST['target'] = 'all'; 73 $_REQUEST['do'] = 'save'; 74 $_REQUEST['history'] = '[{"c":{"x":5,"y":8,"w":289,"h":322}}]'; 75 76 $ret = wp_save_image( $id ); 77 78 $media_meta = wp_get_attachment_metadata( $id ); 79 $sizes1 = $media_meta['sizes']; 80 81 $_REQUEST['history'] = '[{"c":{"x":5,"y":8,"w":189,"h":322}}]'; 82 83 $ret = wp_save_image( $id ); 84 85 $media_meta = wp_get_attachment_metadata( $id ); 86 $sizes2 = $media_meta['sizes']; 87 88 $file_path = dirname( get_attached_file( $id ) ); 89 90 foreach ( $sizes1 as $key => $size ) { 91 if ( $sizes2[ $key ]['file'] !== $size['file'] ) { 92 $files_that_shouldnt_exist[] = $file_path . '/' . $size['file']; 93 } 94 } 95 96 foreach ( $files_that_shouldnt_exist as $file ) { 97 $this->assertFalse( file_exists( $file ), 'IMAGE_EDIT_OVERWRITE is leaving garbage image files behind.' ); 98 } 99 } 54 100 }
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)