wordpress-develop/tests/phpunit/tests/actions/closures.php
Gary Pendergast 8f95800d52 Code is Poetry.
WordPress' code just... wasn't.
This is now dealt with.

Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS.
Fixes #41057.



git-svn-id: https://develop.svn.wordpress.org/trunk@42343 602fd350-edb4-49c9-b593-d223f7449a82
2017-11-30 23:09:33 +00:00

43 lines
897 B
PHP

<?php
/**
* Test do_action() and related functions
*
* @group hooks
*/
class Tests_Actions_Closures extends WP_UnitTestCase {
/**
* @ticket 10493
*/
function test_action_closure() {
$tag = 'test_action_closure';
$closure = function( $a, $b ) {
$GLOBALS[ $a ] = $b;
};
add_action( $tag, $closure, 10, 2 );
$this->assertSame( 10, has_action( $tag, $closure ) );
$context = array( 'val1', 'val2' );
do_action( $tag, $context[0], $context[1] );
$this->assertSame( $GLOBALS[ $context[0] ], $context[1] );
$tag2 = 'test_action_closure_2';
$closure2 = function() {
$GLOBALS['closure_no_args'] = true;
};
add_action( $tag2, $closure2 );
$this->assertSame( 10, has_action( $tag2, $closure2 ) );
do_action( $tag2 );
$this->assertTrue( $GLOBALS['closure_no_args'] );
remove_action( $tag, $closure );
remove_action( $tag2, $closure2 );
}
}