Ticket #52572: 52572.3.diff
File 52572.3.diff, 4.6 KB (added by , 2 years ago) |
---|
-
src/wp-includes/cron.php
398 398 * } 399 399 * @param bool $wp_error Whether to return a WP_Error on failure. 400 400 */ 401 $pre = apply_filters( 'pre_reschedule_event', null, $event );401 $pre = apply_filters( 'pre_reschedule_event', null, $event, $wp_error ); 402 402 403 403 if ( null !== $pre ) { 404 404 if ( $wp_error && false === $pre ) { -
tests/phpunit/tests/cron.php
775 775 * @ticket 49961 776 776 */ 777 777 public function test_schedule_short_circuit_with_error_returns_false_when_wp_error_is_set_to_false() { 778 $return_error = function() { 778 $return_error = function( $pre, $event, $wp_error ) { 779 $this->assertFalse( $wp_error ); 780 779 781 return new WP_Error( 780 782 'my_error', 781 783 'An error ocurred' … … 783 785 }; 784 786 785 787 // Add filters which return a WP_Error: 786 add_filter( 'pre_schedule_event', $return_error );787 add_filter( 'pre_reschedule_event', $return_error );788 add_filter( 'pre_schedule_event', $return_error, 10, 3 ); 789 add_filter( 'pre_reschedule_event', $return_error, 10, 3 ); 788 790 789 791 // Schedule events without the `$wp_error` parameter: 790 792 $single_event = wp_schedule_single_event( time(), 'hook', array() ); … … 801 803 * @ticket 49961 802 804 */ 803 805 public function test_schedule_short_circuit_with_error_returns_error_when_wp_error_is_set_to_true() { 804 $return_error = function() { 806 $return_error = function( $pre, $event, $wp_error ) { 807 $this->assertTrue( $wp_error ); 808 805 809 return new WP_Error( 806 810 'my_error', 807 811 'An error ocurred' … … 809 813 }; 810 814 811 815 // Add filters which return a WP_Error: 812 add_filter( 'pre_schedule_event', $return_error );813 add_filter( 'pre_reschedule_event', $return_error );816 add_filter( 'pre_schedule_event', $return_error, 10, 3 ); 817 add_filter( 'pre_reschedule_event', $return_error, 10, 3 ); 814 818 815 819 // Schedule events with the `$wp_error` parameter: 816 820 $single_event = wp_schedule_single_event( time(), 'hook', array(), true ); … … 876 880 * @expectedDeprecated wp_clear_scheduled_hook 877 881 */ 878 882 public function test_deprecated_argument_usage_of_wp_clear_scheduled_hook() { 879 add_filter( 880 'pre_clear_scheduled_hook', 881 function( $pre, $hook, $args, $wp_error ) { 882 $this->assertSame( array( 1, 2, 3 ), $args ); 883 $this->assertFalse( $wp_error ); 883 $return_pre = function( $pre, $hook, $args, $wp_error ) { 884 $this->assertSame( array( 1, 2, 3 ), $args ); 885 $this->assertFalse( $wp_error ); 884 886 885 return $pre; 886 }, 887 10, 888 4 889 ); 887 return $pre; 888 }; 889 890 add_filter( 'pre_clear_scheduled_hook', $return_pre, 10, 4 ); 890 891 891 892 $cleared = wp_clear_scheduled_hook( 'hook', 1, 2, 3 ); 892 893 … … 920 921 public function test_clear_scheduled_hook_returns_custom_pre_filter_error_when_wp_error_is_set_to_true() { 921 922 add_filter( 922 923 'pre_unschedule_event', 923 function( $pre ) { 924 function( $pre, $timestamp, $hook, $args, $wp_error ) { 925 $this->assertTrue( $wp_error ); 926 924 927 return new WP_Error( 'error_code', 'error message' ); 925 } 928 }, 929 10, 930 5 926 931 ); 927 932 928 933 wp_schedule_single_event( strtotime( '+1 hour' ), 'test_hook' ); … … 950 955 * @ticket 49961 951 956 */ 952 957 public function test_unschedule_short_circuit_with_error_returns_false_when_wp_error_is_set_to_false() { 953 $return_error = function() { 958 $return_error = function( $pre, $hook, $wp_error ) { 959 $this->assertFalse( $wp_error ); 960 954 961 return new WP_Error( 955 962 'my_error', 956 963 'An error ocurred' … … 958 965 }; 959 966 960 967 // Add a filter which returns a WP_Error: 961 add_filter( 'pre_unschedule_hook', $return_error );968 add_filter( 'pre_unschedule_hook', $return_error, 10, 3 ); 962 969 963 970 // Unschedule a hook without the `$wp_error` parameter: 964 971 $result = wp_unschedule_hook( 'hook' ); … … 971 978 * @ticket 49961 972 979 */ 973 980 public function test_unschedule_short_circuit_with_error_returns_error_when_wp_error_is_set_to_true() { 974 $return_error = function() { 981 $return_error = function( $pre, $hook, $wp_error ) { 982 $this->assertTrue( $wp_error ); 983 975 984 return new WP_Error( 976 985 'my_error', 977 986 'An error ocurred' … … 979 988 }; 980 989 981 990 // Add a filter which returns a WP_Error: 982 add_filter( 'pre_unschedule_hook', $return_error );991 add_filter( 'pre_unschedule_hook', $return_error, 10, 3 ); 983 992 984 993 // Unschedule a hook with the `$wp_error` parameter: 985 994 $result = wp_unschedule_hook( 'hook', true );