You appear to be a bot. Output may be restricted
Description
Test that multiple callbacks receive the correct number of args even when the number is less than, or greater than previous hooks.
Usage
Tests_Actions::test_action_args_3();
Parameters
Returns
void
Source
File name: wordpress-develop-tests/phpunit/tests/actions.php
Lines:
1 to 32 of 32
public function test_action_args_3() { $a1 = new MockAction(); $a2 = new MockAction(); $a3 = new MockAction(); $tag = __FUNCTION__; $val1 = __FUNCTION__ . '_val1'; $val2 = __FUNCTION__ . '_val2'; // $a1 accepts two arguments, $a2 doesn't, $a3 accepts two arguments. add_action( $tag, array( &$a1, 'action' ), 10, 2 ); add_action( $tag, array( &$a2, 'action' ) ); add_action( $tag, array( &$a3, 'action' ), 10, 2 ); // Call the action with two arguments. do_action( $tag, $val1, $val2 ); $call_count = $a1->get_call_count(); // $a1 should be called with both args. $this->assertSame( 1, $call_count ); $argsvar1 = $a1->get_args(); $this->assertSame( array( $val1, $val2 ), array_pop( $argsvar1 ) ); // $a2 should be called with one only. $this->assertSame( 1, $a2->get_call_count() ); $argsvar2 = $a2->get_args(); $this->assertSame( array( $val1 ), array_pop( $argsvar2 ) ); // $a3 should be called with both args. $this->assertSame( 1, $a3->get_call_count() ); $argsvar3 = $a3->get_args(); $this->assertSame( array( $val1, $val2 ), array_pop( $argsvar3 ) ); }