WordPress.org

Make WordPress Core

Ticket #51665: 51665.4.diff

File 51665.4.diff, 1.8 KB (added by mikeschroder, 15 months ago)

use realpath() in tests

  • src/wp-includes/class-wp-image-editor-imagick.php

    diff --git src/wp-includes/class-wp-image-editor-imagick.php src/wp-includes/class-wp-image-editor-imagick.php
    index ab9d302070f..a03ccf9760f 100644
    class WP_Image_Editor_Imagick extends WP_Image_Editor { 
    741741                                return true;
    742742                        }
    743743                } else {
     744                        $dir_name   = dirname( $filename );
     745                        $dir_exists = wp_mkdir_p( $dir_name );
     746
     747                        if ( ! $dir_exists ) {
     748                                return new WP_Error(
     749                                        'image_save_error',
     750                                        sprintf(
     751                                                /* translators: %s: Directory path. */
     752                                                __( 'Unable to create directory %s. Is its parent directory writable by the server?' ),
     753                                                esc_html( $dir_name )
     754                                        )
     755                                );
     756                        }
     757
    744758                        try {
    745759                                return $image->writeImage( $filename );
    746760                        } catch ( Exception $e ) {
  • tests/phpunit/tests/image/editorImagick.php

    diff --git tests/phpunit/tests/image/editorImagick.php tests/phpunit/tests/image/editorImagick.php
    index 8bb2cd1d9a1..c5fa17272c2 100644
    class Tests_Image_Editor_Imagick extends WP_Image_UnitTestCase { 
    597597                }
    598598                unlink( $temp_file );
    599599        }
     600
     601        /**
     602         * @ticket 51665
     603         */
     604        public function test_directory_creation() {
     605                $file      = realpath( DIR_TESTDATA ) . '/images/a2-small.jpg';
     606                $directory = realpath( DIR_TESTDATA ) . '/images/nonexistent-directory';
     607                $editor    = new WP_Image_Editor_Imagick( $file );
     608
     609                $this->assertFileNotExists( $directory );
     610
     611                $loaded = $editor->load();
     612                $this->assertNotWPError( $loaded );
     613
     614                $resized = $editor->resize( 100, 100, true );
     615                $this->assertNotWPError( $resized );
     616
     617                $saved = $editor->save( $directory . '/a2-small-cropped.jpg' );
     618                $this->assertNotWPError( $saved );
     619
     620                unlink( $directory . '/a2-small-cropped.jpg' );
     621                rmdir( $directory );
     622        }
    600623}