diff --git a/WordPress/Tests/Helpers/WPHookHelper/GetHookNameParamUnitTest.inc b/WordPress/Tests/Helpers/WPHookHelper/GetHookNameParamUnitTest.inc new file mode 100644 index 0000000000..e1992e34b8 --- /dev/null +++ b/WordPress/Tests/Helpers/WPHookHelper/GetHookNameParamUnitTest.inc @@ -0,0 +1,24 @@ +getTargetToken( $testMarker, \T_STRING ); + $functionName = self::$phpcsFile->getTokens()[ $stackPtr ]['content']; + $parameters = PassedParameters::getParameters( self::$phpcsFile, $stackPtr ); + + $result = WPHookHelper::get_hook_name_param( $functionName, $parameters ); + + if ( is_array( $result ) ) { + // The details of the parameter are populated by PassedParameters::getParameters(). + // Here we only verify which parameter was selected. + $result = $result['clean']; + } + + $this->assertSame( $expectedResult, $result ); + } + + /** + * Data provider. + * + * @see testGetHookNameParam() + * + * @return array> + */ + public static function dataGetHookNameParam() { + return array( + 'not_a_hook_function' => array( + 'testMarker' => '/* testNotAHookFunction */', + 'expectedResult' => false, + ), + 'hook_name_param_missing' => array( + 'testMarker' => '/* testHookNameParamMissing */', + 'expectedResult' => false, + ), + 'lowercase_name' => array( + 'testMarker' => '/* testLowercaseName */', + 'expectedResult' => "'my_action'", + ), + 'mixedcase_name' => array( + 'testMarker' => '/* testMixedCaseName */', + 'expectedResult' => "'my_filter'", + ), + 'named_parameter' => array( + 'testMarker' => '/* testNamedParameter */', + 'expectedResult' => "'my_action'", + ), + ); + } +} diff --git a/WordPress/Tests/NamingConventions/ValidHookNameUnitTest.php b/WordPress/Tests/NamingConventions/ValidHookNameUnitTest.php index 98649fb620..763760f1c3 100644 --- a/WordPress/Tests/NamingConventions/ValidHookNameUnitTest.php +++ b/WordPress/Tests/NamingConventions/ValidHookNameUnitTest.php @@ -17,7 +17,7 @@ * @since 0.10.0 * @since 0.13.0 Class name changed: this class is now namespaced. * - * @covers \WordPressCS\WordPress\Helpers\WPHookHelper + * @covers \WordPressCS\WordPress\Helpers\WPHookHelper::get_functions * @covers \WordPressCS\WordPress\Sniffs\NamingConventions\ValidHookNameSniff */ final class ValidHookNameUnitTest extends AbstractSniffUnitTest {