WordPress.org

Make WordPress Core

Ticket #44083: 44083.5.diff

File 44083.5.diff, 3.0 KB (added by donmhico, 10 months ago)

Correct @since to adhere to WPCS.

  • src/wp-includes/functions.php

    diff --git src/wp-includes/functions.php src/wp-includes/functions.php
    index 019f8b6bf6..7755589431 100644
    function wp_get_original_referer() { 
    17671767 * Will attempt to set permissions on folders.
    17681768 *
    17691769 * @since 2.0.1
     1770 * @since 5.3.0 Added `before_create_directory` and `after_create_directory` hooks.
    17701771 *
    17711772 * @param string $target Full path to attempt to create.
    17721773 * @return bool Whether the path was created. True if path already exists.
    function wp_mkdir_p( $target ) { 
    18131814        } else {
    18141815                $dir_perms = 0777;
    18151816        }
     1817       
     1818        /**
     1819        * Fires before the directory is created.
     1820        *
     1821        * @since 5.3.0
     1822        *
     1823        * @param string $target Full path to attempt to create.
     1824        * @param int $dir_perms Directory permisions
     1825        */
     1826        do_action( 'before_create_directory', $target, $dir_perms );
    18161827
    18171828        if ( @mkdir( $target, $dir_perms, true ) ) {
    1818 
     1829               
    18191830                /*
    18201831                 * If a umask is set that modifies $dir_perms, we'll have to re-set
    18211832                 * the $dir_perms correctly with chmod()
    function wp_mkdir_p( $target ) { 
    18271838                        }
    18281839                }
    18291840
     1841                /**
     1842                * Fires after the directory is created and the permissions are set.
     1843                *
     1844                * @since 5.3.0
     1845                *
     1846                * @param string $target Full path to the created directory.
     1847                * @param int $dir_perms Directory permisions
     1848                */
     1849                do_action( 'after_create_directory', $target, $dir_perms );
     1850               
    18301851                return true;
    18311852        }
    18321853
  • tests/phpunit/tests/functions.php

    diff --git tests/phpunit/tests/functions.php tests/phpunit/tests/functions.php
    index 2191af7ddb..1666a00b61 100644
    class Tests_Functions extends WP_UnitTestCase { 
    16551655                        array( '03:61:59', false ), // Out of bound.
    16561656                );
    16571657        }
     1658
     1659        /**
     1660         * @ticket 44083
     1661         */
     1662        function test_before_and_after_create_directory_actions() {
     1663                WP_Filesystem();
     1664
     1665                // Test folder to be created/
     1666                $test_folder = DIR_TESTROOT . '/test_44083_folder';
     1667
     1668                // Create a test option.
     1669                update_option( 'test_44083_option', 1 );
     1670
     1671                // Hook a function in {@see 'before_create_directory'} filter.
     1672                add_action( 'before_create_directory', function( $target ) {
     1673                        // Perform check.
     1674                        $this->assertSame( 1, get_option( 'test_44083_option', null ) );
     1675
     1676                        // Update test option.
     1677                        update_option( 'test_44083_option', 2 );
     1678                });
     1679
     1680                // Hook a function in {@see 'after_create_directory'} filter.
     1681                add_action( 'after_create_directory', function( $target ) use ( $test_folder ) {
     1682                        global $wp_filesystem;
     1683
     1684                        // Perform check.
     1685                        $this->assertSame( 2, get_option( 'test_44083_option', null ) );
     1686
     1687                        // Delete test option.
     1688                        delete_option( 'test_44083_option' );
     1689
     1690                        // Delete the test folder created.
     1691                        $wp_filesystem->delete( $test_folder );
     1692                });
     1693
     1694                $create_test_folder = wp_mkdir_p( $test_folder );
     1695
     1696                if ( $create_test_folder ) {
     1697                        // If the folder was created, then the 'after_create_directory' hook should be fired.
     1698                        $this->assertFalse( file_exists( $test_folder ) );
     1699                       
     1700                        $this->assertFalse( get_option( 'test_44083_option' ) );
     1701                }
     1702        }
     1703
    16581704}