Make WordPress Core


Ignore:
Timestamp:
12/15/2014 09:24:21 PM (12 years ago)
Author:
johnbillion
Message:

Add tests which ensure the wp_editor_set_quality and jpeg_quality filters only apply if they are added before the corresponding WP_Image_Editor is instantiated.

Props DH-Shredder
See #29856

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/image/editor.php

    r29834 r30873  
    5252                // Get an editor
    5353                $editor = wp_get_image_editor( DIR_TESTDATA . '/images/canola.jpg' );
     54                $editor->set_mime_type( "image/jpeg" ); // Ensure mime-specific filters act properly.
    5455
    5556                // Check default value
    5657                $this->assertEquals( 90, $editor->get_quality() );
    5758
    58                 // Ensure set_quality works
     59                // Ensure the quality filters do not have precedence if created after editor instantiation.
     60                $func_100_percent = create_function( '', "return 100;" );
     61                add_filter( 'wp_editor_set_quality', $func_100_percent );
     62                $this->assertEquals( 90, $editor->get_quality() );
     63
     64                $func_95_percent = create_function( '', "return 95;" );
     65                add_filter( 'jpeg_quality', $func_95_percent );
     66                $this->assertEquals( 90, $editor->get_quality() );
     67
     68                // Ensure set_quality() works and overrides the filters
    5969                $this->assertTrue( $editor->set_quality( 75 ) );
    6070                $this->assertEquals( 75, $editor->get_quality() );
    6171
    62                 // Ensure the quality filter works
    63                 $func = create_function( '', "return 100;");
    64                 add_filter( 'wp_editor_set_quality', $func );
    65                 $this->assertTrue( $editor->set_quality( 70 ) );
    66                 $this->assertEquals( 70, $editor->get_quality() );
     72                // Get a new editor to clear default quality state
     73                unset( $editor );
     74                $editor = wp_get_image_editor( DIR_TESTDATA . '/images/canola.jpg' );
     75                $editor->set_mime_type( "image/jpeg" ); // Ensure mime-specific filters act properly.
     76
     77                // Ensure jpeg_quality filter applies if it exists before editor instantiation.
     78                $this->assertEquals( 95, $editor->get_quality() );
     79
     80                // Get a new editor to clear jpeg_quality state
     81                remove_filter( 'jpeg_quality', $func_95_percent );
     82                unset( $editor );
     83                $editor = wp_get_image_editor( DIR_TESTDATA . '/images/canola.jpg' );
     84
     85                // Ensure wp_editor_set_quality filter applies if it exists before editor instantiation.
     86                $this->assertEquals( 100, $editor->get_quality() );
    6787
    6888                // Clean up
    69                 remove_filter( 'wp_editor_set_quality', $func );
     89                remove_filter( 'wp_editor_set_quality', $func_100_percent );
    7090        }
    7191
Note: See TracChangeset for help on using the changeset viewer.