Make WordPress Core

Ticket #51665: 51665.3.diff

File 51665.3.diff, 2.2 KB (added by johnbillion, 15 months ago)
  • src/wp-includes/class-wp-image-editor-imagick.php

     
    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/includes/bootstrap.php

     
    7373tests_reset__SERVER();
    7474
    7575define( 'WP_TESTS_TABLE_PREFIX', $table_prefix );
    76 define( 'DIR_TESTDATA', __DIR__ . '/../data' );
     76define( 'DIR_TESTDATA', dirname( __DIR__ ) . '/data' );
    7777define( 'DIR_TESTROOT', realpath( dirname( __DIR__ ) ) );
    7878
    7979define( 'WP_LANG_DIR', realpath( DIR_TESTDATA . '/languages' ) );
  • tests/phpunit/tests/image/editorImagick.php

     
    604604                }
    605605                unlink( $temp_file );
    606606        }
     607
     608        /**
     609         * @ticket 51665
     610         */
     611        public function test_directory_creation() {
     612                $file      = DIR_TESTDATA . '/images/a2-small.jpg';
     613                $directory = DIR_TESTDATA . '/images/nonexistent-directory';
     614                $editor    = new WP_Image_Editor_Imagick( $file );
     615
     616                $this->assertFileNotExists( $directory );
     617
     618                $loaded = $editor->load();
     619                $this->assertNotWPError( $loaded );
     620
     621                $resized = $editor->resize( 100, 100, true );
     622                $this->assertNotWPError( $resized );
     623
     624                $saved = $editor->save( $directory . '/a2-small-cropped.jpg' );
     625                $this->assertNotWPError( $saved );
     626
     627                unlink( $directory . '/a2-small-cropped.jpg' );
     628                rmdir( $directory );
     629        }
    607630}