Changeset 40130
- Timestamp:
- 02/27/2017 03:38:30 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-admin/includes/image.php
r39617 r40130 252 252 253 253 if ( ! is_wp_error( $editor ) ) { // No support for this type of file 254 $uploaded = $editor->save( $file, 'image/jpeg' ); 254 /* 255 * PDFs may have the same file filename as JPEGs. 256 * Ensure the PDF preview image does not overwrite any JPEG images that already exist. 257 */ 258 $dirname = dirname( $file ) . '/'; 259 $ext = '.' . pathinfo( $file, PATHINFO_EXTENSION ); 260 $preview_file = $dirname . wp_unique_filename( $dirname, wp_basename( $file, $ext ) . '-pdf.jpg' ); 261 262 $uploaded = $editor->save( $preview_file, 'image/jpeg' ); 255 263 unset( $editor ); 256 264 -
trunk/tests/phpunit/tests/image/functions.php
r39617 r40130 19 19 20 20 include_once( DIR_TESTDATA . '/../includes/mock-image-editor.php' ); 21 22 // Ensure no legacy / failed tests detritus. 23 $folder = '/tmp/wordpress-gsoc-flyer*.{jpg,pdf}'; 24 25 foreach ( glob( $folder, GLOB_BRACE ) as $file ) { 26 unlink( $file ); 27 } 21 28 } 22 29 … … 374 381 'sizes' => array( 375 382 'thumbnail' => array( 376 'file' => "wordpress-gsoc-flyer- 116x150.jpg",383 'file' => "wordpress-gsoc-flyer-pdf-116x150.jpg", 377 384 'width' => 116, 378 385 'height' => 150, … … 380 387 ), 381 388 'medium' => array( 382 'file' => "wordpress-gsoc-flyer- 232x300.jpg",389 'file' => "wordpress-gsoc-flyer-pdf-232x300.jpg", 383 390 'width' => 232, 384 391 'height' => 300, … … 386 393 ), 387 394 'large' => array( 388 'file' => "wordpress-gsoc-flyer- 791x1024.jpg",395 'file' => "wordpress-gsoc-flyer-pdf-791x1024.jpg", 389 396 'width' => 791, 390 397 'height' => 1024, … … 392 399 ), 393 400 'full' => array( 394 'file' => "wordpress-gsoc-flyer .jpg",401 'file' => "wordpress-gsoc-flyer-pdf.jpg", 395 402 'width' => 1088, 396 403 'height' => 1408, … … 404 411 405 412 unlink( $test_file ); 413 foreach ( $metadata['sizes'] as $size ) { 414 unlink ( '/tmp/' . $size['file'] ); 415 } 406 416 } 407 417 … … 428 438 429 439 $expected = array( 430 'file' => 'wordpress-gsoc-flyer- 77x100.jpg',440 'file' => 'wordpress-gsoc-flyer-pdf-77x100.jpg', 431 441 'width' => 77, 432 442 'height' => 100, … … 442 452 443 453 unlink( $test_file ); 454 foreach ( $metadata['sizes'] as $size ) { 455 unlink ( '/tmp/' . $size['file'] ); 456 } 444 457 } 445 458 … … 450 463 return $fallback_sizes; 451 464 } 465 466 /** 467 * Test PDF preview doesn't overwrite existing JPEG. 468 * @ticket 39875 469 */ 470 public function test_pdf_preview_doesnt_overwrite_existing_jpeg() { 471 // Dummy JPEGs. 472 $jpg1_path = '/tmp/test.jpg'; // Straight. 473 file_put_contents( $jpg1_path, 'asdf' ); 474 $jpg2_path = '/tmp/test-pdf.jpg'; // With PDF marker. 475 file_put_contents( $jpg2_path, 'fdsa' ); 476 477 // PDF with same name as JPEG. 478 $pdf_path = '/tmp/test.pdf'; 479 copy( DIR_TESTDATA . '/images/wordpress-gsoc-flyer.pdf', $pdf_path ); 480 481 $attachment_id = $this->factory->attachment->create_object( $pdf_path, 0, array( 482 'post_mime_type' => 'application/pdf', 483 ) ); 484 485 $metadata = wp_generate_attachment_metadata( $attachment_id, $pdf_path ); 486 $preview_path = '/tmp/' . $metadata['sizes']['full']['file']; 487 488 // PDF preview didn't overwrite PDF. 489 $this->assertNotEquals( $pdf_path, $preview_path ); 490 // PDF preview didn't overwrite JPG with same name. 491 $this->assertNotEquals( $jpg1_path, $preview_path ); 492 $this->assertSame( 'asdf', file_get_contents( $jpg1_path ) ); 493 // PDF preview didn't overwrite PDF preview with same name. 494 $this->assertNotEquals( $jpg2_path, $preview_path ); 495 $this->assertSame( 'fdsa', file_get_contents( $jpg2_path ) ); 496 497 // Cleanup. 498 unlink( $jpg1_path ); 499 unlink( $jpg2_path ); 500 unlink( $pdf_path ); 501 foreach ( $metadata['sizes'] as $size ) { 502 unlink( '/tmp/' . $size['file'] ); 503 } 504 } 452 505 }
Note: See TracChangeset
for help on using the changeset viewer.