Unit tests for has_filter() not resetting the array pointer.
props pento. fixes #29070. see [29472]. git-svn-id: https://develop.svn.wordpress.org/trunk@29665 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
1cde8312b6
commit
d8b80c3254
|
@ -105,6 +105,7 @@ function add_filter( $tag, $function_to_add, $priority = 10, $accepted_args = 1
|
||||||
* return value.
|
* return value.
|
||||||
*/
|
*/
|
||||||
function has_filter($tag, $function_to_check = false) {
|
function has_filter($tag, $function_to_check = false) {
|
||||||
|
// Don't reset the internal array pointer
|
||||||
$wp_filter = $GLOBALS['wp_filter'];
|
$wp_filter = $GLOBALS['wp_filter'];
|
||||||
|
|
||||||
$has = ! empty( $wp_filter[ $tag ] );
|
$has = ! empty( $wp_filter[ $tag ] );
|
||||||
|
|
|
@ -293,4 +293,25 @@ class Tests_Filters extends WP_UnitTestCase {
|
||||||
remove_all_filters( $tag, 12 );
|
remove_all_filters( $tag, 12 );
|
||||||
$this->assertFalse( has_filter( $tag ) );
|
$this->assertFalse( has_filter( $tag ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ticket 29070
|
||||||
|
*/
|
||||||
|
function test_has_filter_doesnt_reset_wp_filter() {
|
||||||
|
add_action( 'action_test_has_filter_doesnt_reset_wp_filter', '__return_null', 1 );
|
||||||
|
add_action( 'action_test_has_filter_doesnt_reset_wp_filter', '__return_null', 2 );
|
||||||
|
add_action( 'action_test_has_filter_doesnt_reset_wp_filter', '__return_null', 3 );
|
||||||
|
add_action( 'action_test_has_filter_doesnt_reset_wp_filter', array( $this, '_action_test_has_filter_doesnt_reset_wp_filter' ), 4 );
|
||||||
|
|
||||||
|
do_action( 'action_test_has_filter_doesnt_reset_wp_filter' );
|
||||||
|
}
|
||||||
|
function _action_test_has_filter_doesnt_reset_wp_filter() {
|
||||||
|
global $wp_filter;
|
||||||
|
|
||||||
|
has_action( 'action_test_has_filter_doesnt_reset_wp_filter', '_function_that_doesnt_exist' );
|
||||||
|
|
||||||
|
$filters = current( $wp_filter['action_test_has_filter_doesnt_reset_wp_filter'] );
|
||||||
|
$the_ = current( $filters );
|
||||||
|
$this->assertEquals( $the_['function'], array( $this, '_action_test_has_filter_doesnt_reset_wp_filter' ) );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue